Посимвольное сравнение ответа с эталоном для LLM-агента не работает — и это не мнение, а математический факт. Фреймворк RAGAS решает проблему через семантическое сравнение: агент разбирает ответ на атомарные утверждения и проверяет каждое по смыслу. Вторая часть серии разбирает две метрики — Factual Correctness и Summarization Score — с промптами, формулами и настройками.
Контекст
Генеративные нейросети фундаментально вероятностны. При агрессивной температуре один запрос может вернуть десятки разных формулировок одного и того же правильного ответа. Это означает: классический инженерный подход «запустил тест — сравнил вывод с эталоном» здесь ломается сразу.
RAGAS — open-source Python-фреймворк, изначально создававшийся для оценки RAG-пайплайнов, а сегодня де-факто ставший стандартом измерения качества LLM-систем в целом. Его ключевая идея: использовать саму LLM для извлечения смысла из ответа, а потом семантически сравнивать извлечённые факты с эталоном.
В основе любой метрики RAGAS лежит GoldenSet — набор эталонных пар «вопрос → правильный ответ», собранных вручную или полуавтоматически. Без него никакие вычисления невозможны. Большинство команд откладывают сборку GoldenSet и обнаруживают деградацию агента не в тестах, а через жалобы пользователей.
Аналитика
Factual Correctness отвечает на вопрос: «Что агент утверждает — правда или нет?» Метрика работает в два шага. Сначала промпт ClaimDecompositionPrompt разбивает фактический ответ на атомарные утверждения. Затем второй промпт проверяет каждое утверждение: можно ли его напрямую вывести из эталона (1) или нет (0). На выходе — Precision, Recall и F-beta. Параметры atomicity=high, coverage=high дают максимальную точность ценой скорости; значение beta регулирует, что важнее — Recall или Precision.
Summarization Score работает тоньше. Метрика извлекает ключевые сущности из оригинального текста (люди, организации, даты, суммы), генерирует по ним вопросы с ответами «да/нет» и проверяет, отвечает ли суммаризация на эти вопросы. Плюс к этому — Conciseness Score, штрафующий за избыточную длину: без него идеальный балл получала бы дословная копия исходника. Параметр coeff (по умолчанию 0.5) определяет баланс между полнотой и краткостью.
Для AI-first компаний это означает возможность выстроить воспроизводимый CI/CD для LLM-компонентов. Падение Factual Correctness после обновления промпта — это регрессия, которую можно поймать автоматически до деплоя. Без метрик эту регрессию замечают пользователи — обычно в самый неподходящий момент.
Нам нужна методология, способная извлечь из фактического ответа смысловую нагрузку и корректно сравнить её с эталоном. Проще всего сделать это, используя саму LLM.
Кейсы применения в бизнесе
B2B SaaS стартап с AI-ассистентом поддержки. Агент отвечает на вопросы о продукте. После каждого изменения базы знаний запускается RAGAS: Factual Correctness на GoldenSet из 50–100 вопросов, порог — 0.85. Падение ниже блокирует деплой. Команда перестаёт бояться обновлять документацию и ловит деградацию до, а не после попадания в продакшн.
Корпорация с legacy-системами и внутренним knowledge base. Тысячи внутренних документов суммаризируются в карточки для HR-агента. Summarization Score с coeff=0.3 (акцент на полноту) проверяет, не потерял ли агент ключевые даты, должности и суммы. Это снижает риск ошибок при автоматической обработке запросов сотрудников — особенно там, где одно пропущенное число меняет смысл.
SMB и локальный бизнес в КР и СНГ. Интернет-магазин строит FAQ-бота по описаниям товаров. GoldenSet собирают из реальных вопросов в Telegram-поддержке. Factual Correctness позволяет убедиться, что бот не галлюцинирует характеристики (цвет, размер, цену). Даже 30 эталонных примеров дают ощутимый сигнал о качестве.
Кейсы в личной жизни
Разработчик, строящий персонального AI-ассистента по кодовой базе. Собирает 20 вопросов с эталонными ответами, раз в неделю прогоняет Factual Correctness. Видит, какие промпты деградируют при обновлении контекста — за 15 минут, а не через месяц в продакшне.
Контент-мейкер, суммаризирующий интервью для Shorts. Summarization Score с coeff=0.5 показывает, когда модель срезает ключевые цитаты и когда делает конспект слишком близким к исходнику. Помогает выбрать лучшую модель для конкретного типа контента.
Студент или исследователь, работающий с научными статьями. Агент конспектирует тексты. Через RAGAS проверяется, не теряет ли суммаризация ключевые термины и числа — в технических и медицинских текстах одно пропущенное значение меняет весь смысл.
Как применить сегодня
- Установи RAGAS:
pip install ragas— фреймворк open-source. - Собери минимальный GoldenSet: 20–50 пар «вопрос → эталонный ответ» из реальных кейсов своей системы.
- Запусти Factual Correctness с параметрами atomicity=high, coverage=high — получи baseline точности агента.
- Для агентов с суммаризацией добавь Summarization Score и настрой coeff: 0.3 — важна полнота, 0.7 — важна краткость.
- Интегрируй в CI: порог по Factual Correctness как gate перед деплоем нового промпта или обновлённой модели.