TL;DR
RAGalyst — исследование, которое вводит три ключевые метрики для оценки качества ответов RAG-систем: Answer Correctness (насколько ответ совпадает с эталоном), Answerability (можно ли ответить только по данному контексту) и Faithfulness (насколько ответ обоснован контекстом). Вместо простого сравнения слов, метрики используют LLM для оценки семантической близости — модель понимает смысл, а не только совпадение фраз.
Главная проблема существующих методов оценки RAG: традиционные метрики (BLEU, ROUGE) сравнивают буквальное совпадение слов. Если модель ответила правильно, но другими словами — метрика занижает оценку. Если ответ бессмысленный, но содержит ключевые слова — оценка завышается. LLM-based метрики решают это, оценивая смысл: модель сравнивает два текста и выставляет оценку от 0 до 1, учитывая перефразирование и синонимы. Исследователи оптимизировали промпты для этих метрик и добились корреляции 0.89 с оценками людей — это значит, что LLM оценивает почти так же, как человек.
Метод работает через три проверки: (1) Answer Correctness — LLM сравнивает сгенерированный ответ с эталоном и оценивает совпадение по смыслу (0-1), (2) Answerability — LLM проверяет, достаточно ли контекста для ответа (да/нет), (3) Faithfulness — LLM проверяет, не добавил ли ответ информацию извне контекста (0-1). Каждая метрика — это отдельный промпт с чёткими критериями оценки.
Схема метода
Три независимые проверки через промпты:
МЕТРИКА 1: Answer Correctness
Вход: вопрос + эталонный ответ + сгенерированный ответ
→ LLM оценивает семантическое совпадение (0.0-1.0)
МЕТРИКА 2: Answerability
Вход: вопрос + контекст
→ LLM проверяет достаточность контекста (0 или 1)
МЕТРИКА 3: Faithfulness
Вход: контекст + ответ
→ LLM проверяет обоснованность контекстом (0.0-1.0)
Каждая метрика — отдельный запрос. Можно использовать все три или выборочно.
Пример применения
Задача: Ты готовишь питч для инвестора и попросил ChatGPT с загруженным PDF исследования рынка ответить "Какой среднегодовой темп роста рынка онлайн-образования в России?". ChatGPT ответил: "По данным отчёта, рынок растёт на 15-18% в год". Нужно проверить: (1) правильно ли это по тексту, (2) был ли ответ в PDF, (3) не добавил ли ChatGPT данных из своей памяти.
Промпт для Answer Correctness:
Оцени насколько сгенерированный ответ соответствует эталонному по смыслу.
Выставь оценку от 0.0 (полностью не совпадает) до 1.0 (идентичны по смыслу).
Учитывай перефразирование и синонимы.
Вопрос: Какой среднегодовой темп роста рынка онлайн-образования в России?
Эталонный ответ (из PDF):
"Согласно исследованию НИУ ВШЭ, CAGR рынка онлайн-образования
составляет 15-18% за период 2020-2024."
Сгенерированный ответ (от ChatGPT):
"По данным отчёта, рынок растёт на 15-18% в год."
Оценка (0.0-1.0):
Обоснование:
Промпт для Answerability:
Можно ли полностью ответить на вопрос, используя ТОЛЬКО данный контекст?
Ответь 0 (нельзя) или 1 (можно).
Вопрос: Какой среднегодовой темп роста рынка онлайн-образования в России?
Контекст из PDF:
"Согласно исследованию НИУ ВШЭ, CAGR рынка онлайн-образования
составляет 15-18% за период 2020-2024. Основные драйверы роста..."
Ответ (0 или 1):
Объяснение:
Промпт для Faithfulness:
Проверь, вся ли информация в ответе обоснована контекстом.
Оцени от 0.0 (полностью не обоснован) до 1.0 (полностью из контекста).
Контекст из PDF:
"Согласно исследованию НИУ ВШЭ, CAGR рынка онлайн-образования
составляет 15-18% за период 2020-2024."
Ответ от ChatGPT:
"По данным отчёта, рынок растёт на 15-18% в год."
Оценка (0.0-1.0):
Какие утверждения обоснованы контекстом:
Какие утверждения НЕ из контекста:
Результат:
Модель выдаст три оценки с обоснованиями. Answer Correctness покажет насколько ответ совпадает с оригиналом (ожидаемо 0.8-0.9 — смысл тот же, но формулировка чуть короче). Answerability вернёт 1 — в контексте есть всё для ответа. Faithfulness покажет 1.0 — все цифры из контекста, ничего не добавлено. Если бы ChatGPT написал "рынок растёт быстрее чем в Европе" — Faithfulness упал бы, показав что добавлена информация извне.
Почему это работает
Слабость простых метрик: BLEU и ROUGE считают буквальное совпадение слов. Если модель ответила "15-18 процентов ежегодно" вместо "15-18% в год" — метрика занижает оценку, хотя смысл идентичен. Если модель выдала "рынок образования 15-18% данные отчёт" — метрика завышает оценку, хотя предложение бессмысленно.
Сильная сторона LLM: Модели хорошо понимают семантику — могут сравнить два текста и определить насколько они близки по смыслу, игнорируя различия в формулировках. GPT-4 понимает, что "CAGR 15-18%" и "растёт на 15-18% в год" — это одно и то же.
Как метод использует это: Вместо подсчёта совпадающих слов, метод даёт LLM чёткие критерии оценки: "сравни смысл, учитывай перефразирование, выставь оценку 0-1". Исследователи оптимизировали промпты через DSPy (автоматическая генерация инструкций + few-shot примеры), добившись корреляции 0.89 с оценками людей. Это значит: LLM оценивает качество почти так же, как человек-эксперт.
Три метрики покрывают разные аспекты: - Answer Correctness — проверяет точность (правильные ли факты) - Answerability — проверяет полноту контекста (хватает ли данных) - Faithfulness — проверяет галлюцинации (не выдумал ли модель)
Рычаги управления: - Шкала оценки — можешь заменить 0-1 на 1-10 для более детальной градации - Критерии — добавь "учитывай тональность" или "игнорируй порядок пунктов" под свою задачу - Выбор метрик — для быстрой проверки достаточно Faithfulness, для строгой валидации используй все три - Температура — исследование использует 0 для консистентности, но для разнообразия можешь повысить до 0.3
Шаблон промпта
Для Answer Correctness:
Оцени насколько сгенерированный ответ соответствует эталонному по смыслу.
Выставь оценку от 0.0 до 1.0, где:
- 0.0 = полностью не совпадает или противоречит
- 0.5 = частично совпадает, но есть значимые расхождения
- 1.0 = идентичны по смыслу (даже если формулировка другая)
Учитывай перефразирование, синонимы, разный порядок информации.
Игнорируй мелкие стилистические различия.
Вопрос: {вопрос}
Эталонный ответ: {ground_truth}
Сгенерированный ответ: {generated_answer}
Оценка (0.0-1.0):
Обоснование:
Плейсхолдеры:
- {вопрос} — исходный вопрос
- {ground_truth} — правильный ответ (из документа, экспертный)
- {generated_answer} — ответ от RAG/LLM
Для Answerability:
Можно ли ПОЛНОСТЬЮ ответить на вопрос, используя ТОЛЬКО данный контекст?
Не используй внешние знания для оценки.
Ответь:
- 1 = да, контекст содержит всю необходимую информацию
- 0 = нет, нужна дополнительная информация или контекст неполон
Вопрос: {вопрос}
Контекст: {context}
Ответ (0 или 1):
Объяснение:
Плейсхолдеры:
- {вопрос} — вопрос для проверки
- {context} — текст из документа/чанка
Для Faithfulness:
Проверь, вся ли информация в ответе обоснована данным контекстом.
Оцени от 0.0 до 1.0, где:
- 0.0 = ответ полностью из внешних знаний
- 0.5 = половина информации из контекста, половина добавлена
- 1.0 = вся информация взята из контекста
Контекст: {context}
Ответ: {answer}
Оценка (0.0-1.0):
Какие утверждения обоснованы контекстом:
Какие утверждения НЕ из контекста:
Плейсхолдеры:
- {context} — исходный текст документа
- {answer} — ответ для проверки
Комбинированная проверка (все три метрики):
Проведи комплексную оценку RAG-ответа по трём критериям:
1. ANSWER CORRECTNESS (0.0-1.0): Насколько ответ совпадает с эталоном по смыслу
2. ANSWERABILITY (0 или 1): Достаточно ли контекста для ответа
3. FAITHFULNESS (0.0-1.0): Вся ли информация из контекста
Вопрос: {вопрос}
Контекст: {context}
Эталонный ответ: {ground_truth}
Сгенерированный ответ: {generated_answer}
---
ОЦЕНКИ:
Answer Correctness:
Обоснование:
Answerability:
Объяснение:
Faithfulness:
Что из контекста:
Что добавлено:
---
ИТОГ: Можно доверять этому ответу? (да/нет и почему)
Ограничения
⚠️ Субъективные критерии: Метрики оценивают фактическую точность, но не качество изложения. Если нужен креативный или эмпатичный ответ — эти метрики не подходят, они проверяют только соответствие фактам.
⚠️ Зависимость от качества эталона: Answer Correctness требует правильного эталонного ответа. Если эталон неточен — оценка будет неверной. Для проверки без эталона используй только Answerability и Faithfulness.
⚠️ Стоимость проверки: Каждая метрика = отдельный запрос к LLM. Для массовой проверки (сотни ответов) это затратно по токенам. Для разовой валидации — норм, для автоматизированного тестирования — нужен бюджет.
⚠️ Переусложнение для простых случаев: Если просто хочешь узнать "ответил ли ChatGPT по делу" — достаточно прочитать. Метрики полезны когда: (а) проверяешь много ответов, (б) нужна объективная оценка, (в) сравниваешь разные варианты RAG-настроек.
Как исследовали
Команда из University of Houston проверяла, могут ли LLM оценивать качество RAG-ответов так же надёжно, как люди. Взяли два публичных датасета с человеческой разметкой: STS-B (5800 пар предложений с оценками семантической близости от людей) и SQuAD 2.0 (150,000 вопросов, половина из которых намеренно не имеют ответа в контексте).
Сначала протестировали базовую версию метрик — написали промпты вручную и проверили корреляцию с оценками людей. Получили 0.87 для Answer Correctness и 0.70 для Answerability. Это уже лучше чем cosine similarity (0.62), но недостаточно.
Потом оптимизировали промпты через DSPy — фреймворк, который автоматически улучшает инструкции в промпте через coordinate ascent и Bayesian optimization. Система генерирует десятки вариантов промпта, тестирует на части датасета, отбирает лучшие. Добавили few-shot примеры (8 примеров в промпт) — это дало ещё +0.7% к корреляции.
Результат: Финальная версия Answer Correctness достигла корреляции 0.894 с оценками людей (на STS-B test set из 500 примеров). Answerability достигла 0.752 (на SQuAD 2.0). Для сравнения: RAGAS (популярный фреймворк для оценки RAG) показал 0.836 на тех же данных.
Что удивило: Разные модели показали разброс в корреляции от 0.60 до 0.87 на одном и том же промпте. Gemini 2.5 Pro оказался лучшим для Answerability (0.752), а GPT-4o-mini — для Answer Correctness (0.894). Это значит: выбор модели-судьи критичен, нельзя просто взять любую LLM для оценки.
Инсайт для практики: Оптимизация промптов через few-shot + автоматический подбор инструкций даёт +2-3% корреляции с людьми — разница между "можно использовать" и "надёжно как эксперт". Если используешь метрики для важных решений (выбор RAG-конфигурации, валидация перед продом) — стоит потратить время на калибровку промптов под свою задачу через примеры.
Ресурсы
RAGalyst: Automated Human-Aligned Agentic Evaluation for Domain-Specific RAG
Joshua Gao, Quoc Huy Pham, Subin Varghese, Silwal Saurav, Vedhus Hoskere
University of Houston
Github • Сайт проекта
Связанные концепции из исследования: - DSPy — фреймворк для автоматической оптимизации промптов (COPRO, MIPROv2 optimizers) - STS-B и SQuAD 2.0 — бенчмарки для валидации метрик оценки - RAGAS — альтернативный фреймворк для оценки RAG-систем
