Как использовать готовые языковые модели для оценки качества ответов
Что проверяют
Понимаете ли вы подход LLM-as-a-judge: где он заменяет ручную разметку, а где начинает врать. Следом почти всегда спрашивают, как вы убедились, что модель-судья согласна с людьми, и чем она лучше или хуже классических метрик.
Как отвечать
Начните с ограничения старых метрик. BLEU и ROUGE считают совпадение n-грамм с эталоном: верный ответ другими словами получает низкий балл, а гладкая выдумка с нужными словами высокий. Модель-судья оценивает то, что n-граммы не видят: фактическую точность, полноту, следование инструкции, опору на контекст.
Каркас решения:
- формат оценки: поточечный (балл от 1 до 5 по рубрике) или попарный (какой из двух ответов лучше). Попарный стабильнее, поточечный удобнее для мониторинга качества во времени;
- рубрика в промпте: критерии для каждого балла и несколько размеченных примеров. Сначала короткое обоснование, потом оценка, ответ в JSON, чтобы парсить без регулярок;
- с эталоном и без: судье можно дать эталонный ответ или найденные в RAG документы, тогда он проверяет, подтверждается ли ответ источником (faithfulness);
- калибровка: разметьте людьми от 100 до 200 примеров и посчитайте согласие судьи с ними, например каппу Коэна или корреляцию Спирмена. Без этого баллам судьи верить нельзя;
- инструменты: RAGAS и DeepEval для RAG и диалогов, оценочные модули в MLflow, открытые модели через Hugging Face Transformers или vLLM, если данные нельзя отправлять во внешний API. Дешёвые проверки закрывают BERTScore и NLI-классификаторы на противоречие.
Где спотыкаются
Не знают о смещениях судьи. В попарном сравнении модель склонна выбирать первый ответ, любит длинные ответы и завышает баллы текстам своего же семейства. Лечится прогоном в обоих порядках и судьёй из другого семейства моделей.
Отчитываются средним баллом судьи как истиной, ни разу не сверив его с человеческой разметкой. Первый же вопрос «а сколько совпадений с людьми?» ставит такой ответ в тупик.
Не фиксируют условия. Температура выше нуля и плавающая версия модели по API дают разные баллы на одних и тех же данных, и сравнение двух релизов теряет смысл.