0Pricing
AI Agents · Урок

Оценка RAG (RAGAS, Recall@K)

Измеряйте достоверность, релевантность ответа, точность контекста и recall@K, чтобы понимать, улучшают ли изменения систему.

«Оценка RAG (RAGAS, Recall@K)» — бесплатный урок AI Agents на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.

Нельзя улучшить то, что нельзя измерить

У RAG много параметров: размер фрагмента, top-K, модель повторного ранжирования, запрос и модель. Без метрик любые изменения превращаются в догадки.

Ключевые метрики для RAG

  1. Поиск: получили ли мы правильные фрагменты?
  2. Фактическая обоснованность: опирается ли ответ на найденные фрагменты?
  3. Релевантность ответа: отвечает ли он на вопрос?
  4. Полнота и точность контекста: доля полезных найденных фрагментов

Recall@K

Создайте эталонный набор пар (вопрос, список идентификаторов релевантных фрагментов). Измерьте, как часто среди K лучших найденных фрагментов присутствует хотя бы один релевантный:

def recall_at_k(eval_set, k=5):
    hits = 0
    for item in eval_set:
        retrieved = retriever(item['question'], k=k)
        if any(c.id in item['relevant_ids'] for c in retrieved):
            hits += 1
    return hits / len(eval_set)

Precision@K

Какая доля найденных фрагментов релевантна?

def precision_at_k(eval_set, k=5):
    total_relevant = 0
    total_retrieved = 0
    for item in eval_set:
        retrieved = retriever(item['question'], k=k)
        total_relevant += sum(1 for c in retrieved if c.id in item['relevant_ids'])
        total_retrieved += k
    return total_relevant / total_retrieved

MRR (средний обратный ранг)

На какой позиции находится FIRST релевантный документ?

def mrr(eval_set, k=10):
    total = 0
    for item in eval_set:
        retrieved = retriever(item['question'], k=k)
        for rank, c in enumerate(retrieved, start=1):
            if c.id in item['relevant_ids']:
                total += 1 / rank
                break
    return total / len(eval_set)

Фактическая обоснованность (LLM в роли судьи)

Используйте LLM, чтобы проверить, подтверждается ли каждое утверждение в ответе контекстом:

judge_prompt = '''
Given the context and answer, identify each factual claim in the answer.
For each claim, judge whether the context supports it.
Return {claims: [{claim, supported: true/false}]}.
'''
result = judge_llm.invoke(judge_prompt.format(context=ctx, answer=ans))

Релевантность ответа

Обратная оценка: спросите LLM «Может ли этот ответ быть ответом на данный вопрос?» Это помогает выявлять ответы не по теме.

Фреймворк RAGAS

RAGAS автоматизирует описанные выше метрики:

# pip install ragas
from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy, context_precision, context_recall

results = evaluate(
    dataset,            # HF dataset with question, contexts, answer, ground_truth
    metrics=[faithfulness, answer_relevancy, context_precision, context_recall]
)
print(results)

Создание эталонного набора

От 20 до 200 кортежей (вопрос, ожидаемый ответ, релевантные фрагменты), отобранных людьми. Включите:

  • Распространённые запросы
  • Граничные случаи
  • Нестандартные входные данные, например вопросы вне набора документов

Синтетические наборы для оценки

Начальная генерация: попросите LLM создать пары вопросов и ответов на основе ваших документов. Качество ниже, зато это быстро:

synth_prompt = 'Read this document and write 3 questions a user might ask, with answers from the doc:\n{doc}'
# Use as a starting point; humans curate later.
print(synth_prompt)

Наборы данных LangSmith и Langfuse

Оба инструмента позволяют превратить рабочие трассировки в наборы данных для оценки. Выберите 50 реальных вопросов, на которые были даны плохие ответы, отметьте правильные ответы и используйте полученный набор как эталон.

Не оптимизируйте одну метрику чрезмерно

Максимизация Recall@K может ухудшить Precision@K из-за слишком большого числа ложноположительных результатов. Отслеживайте несколько метрик и составной показатель.

A/B-тесты в рабочей среде

Когда у вас появится автономная оценка, согласующаяся с удовлетворённостью пользователей, вы сможете тестировать изменения в рабочей среде и сравнивать как метрики, так и оценки пользователей.

Определение Recall@K

Что означает Recall@5 = 0.8?

Повторение

Создайте эталонный набор. Измеряйте Recall@K, Precision@K, MRR, фактическую обоснованность и релевантность ответа. Используйте RAGAS для автоматизации. Итеративно улучшайте систему на основе метрик.

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

Урок «Оценка RAG (RAGAS, Recall@K)» бесплатный?

Да — полный текст урока «Оценка RAG (RAGAS, Recall@K)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.

Чему я научусь в уроке «Оценка RAG (RAGAS, Recall@K)»?

Измеряйте достоверность, релевантность ответа, точность контекста и recall@K, чтобы понимать, улучшают ли изменения систему. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AI Agents?

Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Оценка RAG (RAGAS, Recall@K)»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AI Agents?

Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Переранжирование с помощью кросс-энкодеров
  2. HyDE: гипотетические эмбеддинги документов
  3. Многовекторный поиск (ColBERT)
  4. Оценка RAG (RAGAS, Recall@K)
← Назад к AI Agents