DeepEval#

DeepEval от Confident AI - открытый фреймворк для тестирования систем больших языковых моделей. Аналогично Pytest, но разработанный специально для вывода данных из LLM, он оценивает метрики, такие как G-Eval, галлюцинации, релевантность ответов.

DeepEval можно интегрировать с Vector DB для оценки конвейеров RAG - обеспечивая возврат приложений LLM соответствующих, обоснованных и достоверных ответов на основе контекста векторного поиска.

Принцип работы#

Тестовый случай представляет собой шаблон, предоставляемый DeepEval для модульного тестирования выходных данных LLM. В DeepEval существует два типа тестовых случаев:

LLMTestCase:иИспользуется для оценки одной пары вход-выход, такой как ответы RAG или действия агента.

ConversationalTestCase: последовательность поворотов LLMTestCase, представляющих двунаправленное взаимодействие с системой LLM. Это особенно полезно для тестирования чат-ботов или ассистентов.

Обзор показателей#

DeepEval предлагает набор метрик для оценки различных аспектов вывода LLM, включая:

  • Релевантность ответа: измеряет степень актуальности вывода LLM по отношению к заданному запросу.

  • Достоверность: оценивает, является ли ответ LLM основанным на предоставленном контексте, обеспечивая фактическую точность.

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

  • G-Eval: универсальная метрика, которая использует подход «LLM-в-качестве-судьи» с цепочкой рассуждений для оценки выводов на основе пользовательских критериев.

  • Галлюцинация: обнаруживает случаи, когда LLM генерирует информацию, отсутствующую в исходном контексте.

  • Токсичность: оценивает наличие вредного или оскорбительного контента в выводах LLM.

  • Предвзятость: оценивает выходы на предмет непреднамеренных предвзятостей.

  • Резюмирование: измеряет качество и точность созданных резюме.

Для получения полного списка всех доступных метрик и подробных объяснений обратитесь к разделу Справка по метрикам DeepEval.

Использование Vector DB с DeepEval#

Установите клиентские библиотеки:

$pip install deepeval qdrant-client

$deepeval login

Можно использовать Vector DB для управления системой RAG путем извлечения релевантных документов для запроса, подачи их в запрос и оценки полученного результата с помощью DeepEval.

from deepeval.test_case import LLMTestCase, ConversationalTestCase
from deepeval.metrics import AnswerRelevancyMetric, FaithfulnessMetric, ...

# 1. Query context from Qdrant
context = qdrant_client.query_points(...)

# 2. Construct prompt using query + retrieved context
prompt = build_prompt(query, context)

# 3. Generate response from your LLM
response = llm.generate(prompt)

# 4. Create a test case for evaluation
test_case = LLMTestCase(
    input=query,
    actual_output=response,
    expected_output=ground_truth_answer,
    retrieval_context=context
)

# 5. Evaluate the output using DeepEval
evaluate(
    test_cases=[test_case],
    metrics=[
        AnswerRelevancyMetric(),
        FaithfulnessMetric(),
        ContextualPrecisionMetric(),
        ...
    ],
)

Все оценки, выполненные с использованием DeepEval, могут быть просмотрены на панели инструментов Confident AI Dashboard.

Этот процесс можно масштабировать с набором данных (например, из Hugging Face), оценивая сразу несколько тестовых случаев за счет последовательной обработки пар вопрос-ответ, запросов контекстов в Vector DB и подсчета баллов с помощью метрик DeepEval.

Дополнительная документация#