вычислители Retrieval-Augmented поколения (RAG)

Система создания Retrieval-Augmented (RAG) пытается создать наиболее релевантный ответ, согласованный с документами приземления в ответ на запрос пользователя. Запрос пользователя активирует поиск в корпусе документов заземления, чтобы обеспечить контекст заземления для модели ИИ для создания ответа.

Evaluator Best practice Use when Purpose Output
Document Retrieval Process evaluation Качество получения является узким местом для RAG, и у вас есть метки релевантности запросов (земная истина) для точной метрики качества поиска для отладки и оптимизации параметров. Измеряет метрики качества поиска (Fidelity, NDCG, XDCG, Max Релевантность, Отверстия), сравнивая извлеченные документы с метками истины на земле Составной состав: Fidelity, NDCG, XDCG, Max Релевантность, Отверстия (с pass/Fail)
Retrieval Process evaluation Вы хотите оценить качество текста извлекаемого контекста, но у вас нет оснований для истины Измеряет, насколько релевантны полученные фрагменты контекста для решения запроса с помощью судьи LLM Двоичный файл: передача и сбой на основе порогового значения (1-5 шкалы)
Groundedness System evaluation Вы хотите четкое определение основания, которое работает с входными данными агента, и принести собственные модели GPT в качестве судьи LLM-судья Измеряет, насколько хорошо сформированный ответ соответствует заданному контексту без создания содержимого (аспект точности) Двоичный файл: передача и сбой на основе порогового значения (1-5 шкалы)
Groundedness Pro (предварительная версия) System evaluation Вы хотите строгое определение приземления, созданное на основе Безопасность содержимого ИИ Azure, и использовать нашу модель обслуживания Определяет, соответствует ли ответ строго контексту с помощью службы Безопасность содержимого ИИ Azure Binary: True/False
Relevance System evaluation Вы хотите оценить, насколько хорошо ответ RAG обращается к запросу, но не имеет оснований для истины Измеряет точность, полноту и прямую релевантность ответа на запрос Двоичный файл: передача и сбой на основе порогового значения (1-5 шкалы)
Полнота ответа (предварительная версия) System evaluation Вы хотите убедиться, что ответ RAG не пропускает критически важные сведения (аспект отзыва) из вашей истины Измеряет, насколько полностью ответ охватывает ожидаемые сведения по сравнению с земной правдой Двоичный файл: передача и сбой на основе порогового значения (1-5 шкалы)

Подумайте о заземленности и полноте ответа следующим образом:

  • Заземленность фокусируется на аспекте точности отклика. Он не содержит содержимое за пределами контекста заземления.
  • Полнота отклика сосредоточена на аспекте отзыва ответа. Она не пропускает критически важные сведения по сравнению с ожидаемым ответом или правдой земли.

System evaluation

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

  • Заземленность — соответствует ли ответ в предоставленном контексте без фабрики?
  • Заземление pro — строго ли ответ соответствует контексту (Безопасность содержимого ИИ Azure)?
  • Релевантность— точно ли ответ отвечает запросу пользователя?
  • Полнота ответа (предварительная версия) — охватывает ли ответ все критически важные сведения из правды?

Examples:

Process evaluation

Оценка процесса оценивает качество шага извлечения документов в системах RAG. Шаг извлечения имеет решающее значение для предоставления соответствующего контекста языковой модели:

  • Получение. Насколько релевантны полученные фрагменты контекста для запроса?
  • Извлечение документа . Насколько хорошо извлекаемые метки правды (требует qrels)?

Дополнительные примеры см. в примерах вычислителя качества.

Использование средств оценки RAG

Вычислители RAG оценивают, насколько хорошо системы ИИ извлекают и используют контекст для создания заземленных ответов. Каждому вычислителю требуются определенные сопоставления данных и параметры:

Evaluator Required inputs Required parameters
Groundedness response, context (рекомендуется); query необязательно для расширенной оценки; или queryresponseдля режима ответа агента deployment_name
Groundedness Pro (предварительная версия) query, , responsecontext (none)
Relevance query, response deployment_name
Полнота ответа (предварительная версия) ground_truth, response deployment_name
Retrieval query, context deployment_name
Document Retrieval retrieval_ground_truth, retrieved_documents (none)

Example input

Тестовый набор данных должен содержать поля, на которые ссылаются сопоставления данных:

{"query": "What are the store hours?", "context": "Our store is open Monday-Friday 9am-6pm and Saturday 10am-4pm.", "response": "The store is open weekdays from 9am to 6pm and Saturdays from 10am to 4pm."}
{"query": "What is the return policy?", "context": "Items can be returned within 30 days with original receipt for full refund.", "response": "You can return items within 30 days if you have your receipt."}

Context format

Поле context представляет собой обычную строку, содержащую полученный контекст, предоставленный модели. Для получения нескольких блоков объединение блоков в одну строку с помощью разделителя, например \n\n между блоками:

{"query": "What is the return policy?", "context": "Items can be returned within 30 days with receipt.\n\nGift items are eligible for store credit only.", "response": "You can return items within 30 days with your receipt."}

Note

Для оценки агента с {{sample.output_items}}context помощью поля является необязательным, если ответ содержит сообщения об вызове средства. Средство оценки может извлечь контекст из результатов вызова средства.

Configuration example

Синтаксис сопоставления данных:

  • {{item.field_name}} ссылается на поля из тестового набора данных (например, {{item.query}}).
  • {{sample.output_items}} ссылается на ответы агента, созданные или извлеченные во время оценки. Используйте это при оценке с помощью целевого объекта агента или источника данных ответа агента. Для оценки агента необязательный вариант, context если ответ содержит вызовы средства, вычислитель может извлечь контекст из результатов вызова средства.

Tip

Для получения наилучших результатов заземления укажите все три поля — queryи responsecontext. Поле query является необязательным, но повышает точность оценки при наличии.

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "groundedness",
        "evaluator_name": "builtin.groundedness",
        "initialization_parameters": {"deployment_name": model_deployment},
        "data_mapping": {
            "context": "{{item.context}}",
            "response": "{{item.response}}",
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "relevance",
        "evaluator_name": "builtin.relevance",
        "initialization_parameters": {"deployment_name": model_deployment},
        "data_mapping": {"query": "{{item.query}}", "response": "{{item.response}}"},
    },
    {
        "type": "azure_ai_evaluator",
        "name": "retrieval",
        "evaluator_name": "builtin.retrieval",
        "initialization_parameters": {"deployment_name": model_deployment},
        "data_mapping": {"query": "{{item.query}}", "context": "{{item.context}}"},
    },
]

Дополнительные сведения о выполнении вычислений и настройке источников данных см. в статье о выполнении вычислений из пакета SDK .

Example output

Эти оценщики возвращают оценки от 1 до 5, где 1 очень плохо и 5 отлично. Пороговое значение по умолчанию равно 3. Оценки с пороговым значением или выше считаются прохождением. Ключевые поля выходных данных:

{
    "type": "azure_ai_evaluator",
    "name": "Groundedness",
    "metric": "groundedness",
    "score": 4,
    "label": "pass",
    "reason": "The response is well-grounded in the provided context without fabricating content.",
    "threshold": 3,
    "passed": true
}

Приземление Pro использует службу Безопасность содержимого ИИ Azure и возвращает логический результат вместо числовой оценки:

{
    "type": "azure_ai_evaluator",
    "name": "Groundedness Pro",
    "metric": "groundedness_pro",
    "label": "pass",
    "reason": "The response is strictly consistent with the provided context.",
    "passed": true
}

Document retrieval

Из-за ее вышестоящей роли в RAG качество извлечения важно. Если качество извлечения плохое, и ответ требует знаний, относящихся к корпусу, меньше шансов, что ваша языковая модель дает удовлетворительный ответ. Самое точное измерение — использовать document_retrieval средство оценки для оценки качества извлечения и оптимизации параметров поиска для RAG.

  • Средство оценки извлечения документов измеряет, насколько хорошо RAG извлекает правильные документы из хранилища документов. В качестве составного вычислителя, полезного для сценария RAG с конечной точки, он вычисляет список полезных метрик качества поиска для отладки конвейеров RAG:

    Metric Category Description
    Fidelity Search Fidelity Насколько хорошо первые фрагменты n отражают содержимое для заданного запроса: количество хороших документов, возвращаемых из общего количества известных хороших документов в наборе данных
    NDCG Search NDCG Как хорошо ранжирование в идеальном порядке, где все соответствующие элементы находятся в верхней части списка
    XDCG Search XDCG Насколько хороши результаты в документах top-k независимо от оценки других документов индекса
    Максимальная релевантность N Поиск максимальной релевантности Максимальная релевантность в блоках top-k
    Holes Сменяемость меток поиска Количество документов с отсутствующими решениями о релевантности запросов или основанием
  • Чтобы оптимизировать RAG в сценарии, называемом очисткой параметров, можно использовать эти метрики для калибровки параметров поиска для оптимальных результатов RAG. Создайте различные результаты извлечения для различных параметров поиска, таких как алгоритмы поиска (вектор, семантика), top_k и размеры блоков, которые вы хотите проверить. Затем используйте document_retrieval для поиска параметров поиска, которые дают наивысшее качество извлечения.

Пример извлечения документов

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "document_retrieval",
        "evaluator_name": "builtin.document_retrieval",
        "initialization_parameters": {
            "ground_truth_label_min": 1,  # SDK default: 0
            "ground_truth_label_max": 5,  # SDK default: 4
        },
        "data_mapping": {
            "retrieval_ground_truth": "{{item.retrieval_ground_truth}}",
            "retrieved_documents": "{{item.retrieved_documents}}",
        },
    },
]

Содержит retrieval_ground_truth оценки релевантности с метками человека для каждого документа:

retrieval_ground_truth = [
    {"document_id": "1", "query_relevance_label": 4},
    {"document_id": "2", "query_relevance_label": 2},
]

Содержит retrieved_documents оценки из системы поиска:

retrieved_documents = [
    {"document_id": "2", "relevance_score": 45.1},
    {"document_id": "6", "relevance_score": 35.8},
]

Выходные данные извлечения документов

Средство document_retrieval оценки возвращает несколько метрик для качества получения:

[
    {
        "type": "azure_ai_evaluator",
        "name": "Document Retrieval",
        "metric": "ndcg@3",
        "score": 0.646,
        "label": "pass",
        "passed": true
    },
    {
        "type": "azure_ai_evaluator",
        "name": "Document Retrieval",
        "metric": "fidelity",
        "score": 0.019,
        "label": "fail",
        "passed": false
    },
    # more metrics...
]

Вычислитель также возвращает xdcg@3, top1_relevance, top3_max_relevanceholesи holes_ratio метрики.