Обычная ситуация: есть набор файлов в корпоративном хранилище. Поверх него подключили RAG.
Как понять, что RAG нормально работает: система действительно находит нужный контекст и не галлюцинирует в ответах?
Самый очевидный способ проверки — отдать RAG экспертам, попросить придумать вопросы, оценить ответы и дать комментарии. На практике это долго, дорого и плохо масштабируется.
В индустрии чаще используют синтетическую оценку качества: делаем оценочный датасет + на нем измеряем метрики качества, а экспертов привлекаем как “smoke test”.
1. Берем файлы и просим большую модель сгенерировать вопрос на каждый слайд / страницу и просим сразу дать ответ на этот вопрос . Шаблон промпта оставил в комментариях. В итоге получим набор из вопросов, ответов и контекста.
2. Дальше этот датасет очищаем. Грузим Q/A в Langfuse в режим human annotation. Затем даем экспертам или изучаем сами на адекватность вопросов и ответов. Затем создаем dataset из очищенных данных. В итоге получаем быстрособранный объективный , покрывающий бОльшую часть кейсов датасет, на котором можно оценить реальное качество.
3. Оцениваем качество. Будем использовать подход LLM as a judge. Для быстрого результата можно отойти от 2х этапной оценки (оценка ретрива и оценка генерации), так как нам нужно понять отвечает ли на вопрос rag или нет, а не отлаживать систему. Оценка будет состоять из одного вызова LLM, промпт будет выглядеть примерно так:
Сравни ground truth ответ и ответ сгенерированный RAG-системой. Требования для сравнения: (нужно указать как сравнивать и требования по стилю ответа). В результате нужно выдать два поля: result, reason. Если ответ верный и соответствует требованиям, то result true, reason none . Иначе result false, reason - “некоторая строка, которая описывает причину отказа».
Запускаем оценку на части датасета и смотрим адекватность оценки нашего судьи, по необходимости корректируем судью.
В итоге мы получили размеренные вопросы, правильные ответы к ним и механизм автоматической проверки ответов. Запускаем оценку на нужном датасете и получаем набор правильных и неправильных ответов. Оценкой будет количество правильных ответов / на суммарное количество элементов в датасете. Так можно запустить оценку на нескольких RAG-системах и объективно выбрать лучшую для конкретной задачи.
#александр_опрышко