Оценка качества RAG-системы (RAGAS, precision, recall, faithfulness)

Мы — команда AI-инженеров с 5+ летним опытом в NLP и 20+ внедрениями RAG. Без систематической **RAGAS оценки** качества RAG-система остаётся чёрным ящиком: вы не знаете, сколько галлюцинаций генерирует модель и как много релевантного контекста теряется. RAGAS (RAG Assessment) — самый популярный фрей

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    997
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1264
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1002

Мы — команда AI-инженеров с 5+ летним опытом в NLP и 20+ внедрениями RAG. Без систематической RAGAS оценки качества RAG-система остаётся чёрным ящиком: вы не знаете, сколько галлюцинаций генерирует модель и как много релевантного контекста теряется. RAGAS (RAG Assessment) — самый популярный фреймворк для автоматической оценки, использующий LLM как судью и не требующий ручной разметки. На одном из проектов мы сократили ручную проверку ответов на 80%, сэкономив команде более 40% времени и существенно сократив бюджет на оценку. За 3–6 недель настраиваем полный pipeline оценки, интегрируем его в CI/CD и доводим метрики до 0.9+. Свяжитесь с нами для аудита вашей RAG-системы.

Что такое RAGAS и зачем он нужен?

RAGAS — это opensource-фреймворк для оценки качества RAG-систем. Он автоматически генерирует тестовые наборы на основе ваших документов и оценивает ответы LLM по пяти ключевым метрикам. Без RAGAS вы оцениваете качество вручную или не оцениваете вовсе, что ведёт к неконтролируемым галлюцинациям и потере контекста. RAGAS делает оценку объективной и воспроизводимой. Подробнее о фреймворке — на GitHub.

Метрики RAGAS

Метрика Что измеряет Диапазон
Context Precision Доля retrieved контекста, который реально нужен для ответа 0–1
Context Recall Доля необходимого контекста, которая была retrieved 0–1
Faithfulness Соответствие ответа retrieved контексту (нет галлюцинаций) 0–1
Answer Relevancy Насколько ответ релевантен вопросу 0–1
Answer Correctness Фактическая правильность ответа (требует ground truth) 0–1

Как интерпретировать метрики RAGAS?

Context Precision ниже 0.7 сигнализирует: система извлекает много нерелевантного контекста. Решения — улучшить reranking, добавить фильтрацию по метаданным, уменьшить top_k.

Context Recall ниже 0.7: система не находит нужные документы. Решения — улучшить chunking, попробовать hybrid search, дообучить embedding модель.

Faithfulness ниже 0.8 — критический сигнал: модель галлюцинирует, выдумывает информацию, не подкреплённую контекстом. Решения — улучшить system prompt, добавить инструкцию «отвечай только на основе контекста», снизить temperature. Это самая важная метрика для юридических и медицинских RAG-систем.

Answer Relevancy ниже 0.8: ответы не по делу. Решения — улучшить prompt, добавить few-shot примеры желаемого формата.

Как внедрить RAGAS за 4 шага

  1. Подготовьте документы и создайте тестовый набор (минимум 200 вопросов). RAGAS автоматически сгенерирует вопросы разной сложности.
  2. Запустите baseline оценку по всем метрикам. Это займёт 1–2 дня.
  3. Проанализируйте результаты и выполните итерации оптимизации (улучшение retrieval, промпта, chunking).
  4. Интегрируйте continuous evaluation в CI/CD — теперь каждый коммит будет проверяться на падение качества.

Процесс настройки занимает 2–3 дня, генерация тестов — 1–2 дня, полный цикл с улучшениями — от 3 до 6 недель.

Установка и базовое использование RAGAS

from ragas import evaluate from ragas.metrics import ( context_precision, context_recall, faithfulness, answer_relevancy, answer_correctness, ) from datasets import Dataset # Подготовка датасета для оценки eval_data = { "question": [ "Каков срок действия договора?", "Кто несёт ответственность за задержку поставки?", ], "answer": [ "Договор действует до 31 декабря.", "Поставщик несёт ответственность за задержку сверх 5 рабочих дней.", ], "contexts": [ ["2.1. Настоящий Договор вступает в силу с момента подписания и действует до 31 декабря..."], ["4.3. В случае задержки поставки более чем на 5 рабочих дней Поставщик..."], ], "ground_truths": [ "Договор действует до 31 декабря.", "Ответственность несёт Поставщик при задержке более 5 рабочих дней.", ], } dataset = Dataset.from_dict(eval_data) # Оценка from langchain_openai import ChatOpenAI, OpenAIEmbeddings from ragas.llms import LangchainLLMWrapper from ragas.embeddings import LangchainEmbeddingsWrapper evaluator_llm = LangchainLLMWrapper(ChatOpenAI(model="gpt-4o")) evaluator_embeddings = LangchainEmbeddingsWrapper(OpenAIEmbeddings()) results = evaluate( dataset, metrics=[context_precision, context_recall, faithfulness, answer_relevancy], llm=evaluator_llm, embeddings=evaluator_embeddings, ) print(results) # {'context_precision': 0.88, 'context_recall': 0.82, 'faithfulness': 0.94, 'answer_relevancy': 0.91} 

Автоматизированный тестовый набор: Testset Generation

RAGAS умеет генерировать тестовый набор из ваших документов:

from ragas.testset.generator import TestsetGenerator from ragas.testset.evolutions import simple, reasoning, multi_context generator = TestsetGenerator.with_openai() # Генерация тестов разной сложности testset = generator.generate_with_langchain_docs( documents=your_documents, test_size=100, distributions={ simple: 0.5, # Простые вопросы по одному документу reasoning: 0.3, # Требующие рассуждений multi_context: 0.2, # Требующие нескольких документов } ) testset.to_pandas().to_csv("evaluation_testset.csv", index=False) 

Практический кейс: итерации над RAG-системой юридического чат-бота

Из нашей практики: заказчик — юридическая компания с корпусом из 10 000 договоров. Исходный RAG на GPT-4o-mini и ChromaDB показывал низкие метрики. Мы провели три итерации оптимизации.

Исходное состояние (v1):

Метрика v1
Context Precision 0.61
Context Recall 0.68
Faithfulness 0.74
Answer Relevancy 0.79

Итерация 1: добавили hybrid search (sparse + dense). Context Recall вырос с 0.68 до 0.81 (+19 %).

Итерация 2: добавили Contextual Compression и reranker. Context Precision улучшилась с 0.61 до 0.84 (+38 %), Faithfulness — с 0.74 до 0.91 (+23 %).

Итерация 3: доработали system prompt с явным запретом галлюцинаций. Faithfulness достигла 0.95, Answer Relevancy — 0.88.

Финальное состояние (v4):

Метрика v4
Context Precision 0.84
Context Recall 0.81
Faithfulness 0.95
Answer Relevancy 0.88

RAGAS позволил автоматизировать оценку, что в 10 раз быстрее ручного ревью асессорами. Экономия бюджета на оценку составила десятки тысяч долларов на каждом проекте.

Continuous Evaluation в CI/CD

import pytest @pytest.fixture(scope="session") def rag_evaluation_results(): """Запускает RAGAS оценку на тестовом наборе""" return evaluate(evaluation_dataset, metrics=[faithfulness, context_recall]) def test_faithfulness_above_threshold(rag_evaluation_results): assert rag_evaluation_results["faithfulness"] >= 0.85, \ f"Faithfulness {rag_evaluation_results['faithfulness']:.2f} below threshold 0.85" def test_context_recall_above_threshold(rag_evaluation_results): assert rag_evaluation_results["context_recall"] >= 0.75 

Что входит в нашу работу по оценке RAG

  • Настройка RAGAS pipeline под вашу инфраструктуру.
  • Генерация репрезентативного тестового набора (200+ вопросов).
  • Baseline оценка по 5 метрикам.
  • 2–3 итерации по улучшению с конкретными рекомендациями.
  • Интеграция continuous evaluation в ваш CI/CD.
  • Отчёт с результатами и планом дальнейшей оптимизации.

Получите консультацию по оценке вашей RAG-системы — мы оценим проект и предложим план работ. Закажите аудит метрик прямо сейчас.