RAG
Today

Метрики качества RAG (шпаргалка)

RAG (Retrieval-Augmented Generation) оценивают на двух уровнях: насколько хорошо нашли нужные документы и насколько хорошо сгенерировали ответ.

Метрики поиска (Retrieval)

Precision@K (точность) - какая доля из K найденных документов реально полезна.

Пример: система нашла 5 документов, из них 3 релевантны. Precision@5 = 3/5 = 0.6. То есть 40% мусора.

Recall@K (полнота) - какую долю всех нужных документов мы нашли.

Пример: в базе 10 релевантных документов, система нашла 3 из них. Recall = 3/10 = 0.3. Мы упустили 70% полезной информации.

MRR (Mean Reciprocal Rank) - насколько высоко в выдаче оказался первый правильный документ.

Пример: первый релевантный документ на 3-й позиции - 1/3 = 0.33. Если бы на 1-й - 1/1 = 1.0. Чем выше, тем лучше.

Метрики генерации (Generation)

Faithfulness (верность контексту) - не выдумывает ли модель то, чего нет в найденных документах.

Пример: в документе написано "выручка выросла на 15%", а модель отвечает "выручка выросла на 25%". Faithfulness низкий, модель "галлюцинирует".

Answer Relevancy (релевантность ответа) - отвечает ли модель на заданный вопрос.

Пример: вопрос "Какая цена подписки?", а модель рассказывает про историю компании. Ответ не релевантен.

Context Relevancy (релевантность контекста) - насколько найденные куски текста вообще относятся к вопросу. Если в контекст попал мусор, модели сложнее дать хороший ответ.

Сквозные (end-to-end) метрики

Answer Correctness - просто правильный ли ответ, сравнивают с эталоном. Это итоговая оценка всей системы.

RAGAS - популярный фреймворк, который объединяет Faithfulness, Answer Relevancy и Context Relevancy в единый скор.

Как это работает на практике

Представьте чат-бот по документации банка:

  • Бот не находит нужный регламент - Recall низкий.
  • Бот находит 10 документов, но 8 не по теме - Precision низкий.
  • Бот нашел правильный документ, но выдумал цифры - Faithfulness низкий.
  • Бот отвечает правильно, но не на тот вопрос - Answer Relevancy низкий.

Главное: метрики помогают понять, где именно ломается система - на этапе поиска или на этапе генерации, и что нужно чинить.