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.