LLM-судья для поиска галлюцинаций в Braintrust

Урок 10 из 299 курса «OpenAI Cookbook»: официальный курс OpenAI Academy (ОпенАИ) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

О чём урок

Допустим, вы работаете над ботом для обслуживания клиентов и пытаетесь оценить качество его ответов. Рассмотрим вопрос, например: "Какова ваша политика возврата?" Если правильный ответ: "Вы можете вернуть товары в течение 30 дней с момента покупки", но ваш бот генерирует: "Вы можете вернуть товары в течение 30 дней", как бы вы оценили, является ли это хорошим ответом? Эвристика, такая как строковое расстояние Levenshtein, указала бы, что ответ неверен. Однако лучший подход — использовать LLM-as-a-judge для оценки точности ответа. LLM-as-a-judge — это техника, которая использует LLM для оценки качества ответов. LLM могут рассуждать о языке за пределами поверхностных сравнений строк, что позволяет им более точно оценивать ответы. В этом руководстве мы рассмотрим, как создать оценщик LLM-as-a-judge, который может обнаруживать галлюцинации с помощью Braintrust, сторонней платформы для оценки, совместимой с моделями OpenAI. Установим несколько базовых зависимостей. Мы будем использовать набор данных CoQA (через DuckDB), Braintrust для evals, и модели OpenAI. Обратите внимание, что Braintrust является сторонней платформой для оценки, и вам следует ознакомиться с их условиями обслуживания и политикой конфиденциальности, прежде чем продолжить. Далее инициализируем клиент OpenAI. Мы будем использовать клиент AsyncOpenAI, чтобы мы могли распараллеливать наши запросы. Функция braintrust.wrap_openai оборачивает клиент OpenAI, чтобы включить логирование вызовов LLM в Braintrust. Мы будем использовать Braintrust для облегчения оценок ниже. Прежде чем продолжить, вам следует зарегистрировать аккаунт Braintrust и установить BRAINTRUST_API_KEY в вашей среде на действительный API key. Мы будем использовать набор данных CoQA, который содержит разнообразные отрывки, вопросы и ответы. Поскольку CoQA довольно большой, мы рассмотрим только первые несколько отрывков. Как и в случае с любым публичным набором данных, существует вероятность того, что базовые LLM запомнили некоторые аспекты набора данных, поэтому при разработке собственных оценщиков рекомендуется тестировать их, используя ваши собственные частные данные. Данные содержат ряд отрывков, каждый из которых сопровождается несколькими вопросами и ответами.

План урока

  1. Установка зависимостей
  2. Исследование набора данных
  3. Добавление галлюцинаций
  4. Создание оценщиков
  5. LLM-as-a-judge #1: Числовой оценщик
  6. LLM-as-a-judge #2: Добавление рассуждений
  7. LLM-as-a-judge #3: Классификация вместо оценки
  8. Кодификация этого шаблона

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Урок входит в темы

Полезные гиды