Introdução geral
O DeepEval é uma estrutura de avaliação de LLM de código aberto fácil de usar para avaliar e testar grandes sistemas de modelagem de linguagem. O DeepEval combina os resultados das pesquisas mais recentes com métricas como G-Eval, detecção de fantasmas, relevância da resposta, RAGAS e outras para avaliar os resultados do LLM. Independentemente de seu aplicativo ser implementado ou ajustado pelo RAG, o DeepEval pode ajudá-lo a determinar os melhores hiperparâmetros para melhorar o desempenho do modelo. Além disso, ele gera conjuntos de dados sintéticos, integra-se perfeitamente a qualquer ambiente de CI/CD e fornece recursos de teste de equipe vermelha para mais de 40 vulnerabilidades de segurança. A estrutura também está totalmente integrada ao Confident AI para dar suporte a todo o ciclo de vida de avaliação da plataforma.
Lista de funções
- Múltiplas métricas de avaliação do LLM, como G-Eval, teste de alucinação, correlação de respostas, RAGAS, etc.
- Suporte para métricas de avaliação personalizadas e integração automática no ecossistema DeepEval
- Geração de conjuntos de dados sintéticos para avaliação
- Integração perfeita em qualquer ambiente de CI/CD
- Recurso de teste da equipe vermelha para detectar mais de 40 vulnerabilidades de segurança
- Benchmarking com suporte para vários benchmarks, como MMLU, HellaSwag, DROP, etc.
- Totalmente integrado ao Confident AI para dar suporte a todo o ciclo de vida da avaliação, desde a criação do conjunto de dados até a depuração dos resultados da avaliação.
Usando a Ajuda
montagem
Você pode instalar o DeepEval via pip:
pip install -U deepeval
Recomenda-se a criação de uma conta para gerar relatórios de teste compartilháveis baseados na nuvem:
deepeval login
Escrevendo casos de teste
Crie um arquivo de teste:
touch test_chatbot.py
existirtest_chatbot.py
Escreva o primeiro caso de teste no arquivo
import pytest
from deepeval import assert_test
from deepeval.metrics import AnswerRelevancyMetric
from deepeval.test_case import LLMTestCase
def test_case():
correctness_metric = GEval(
name="Correctness",
criteria="Determine if the 'actual output' is correct based on the 'expected output'.",
evaluation_params=[LLMTestCaseParams.ACTUAL_OUTPUT, LLMTestCaseParams.EXPECTED_OUTPUT],
threshold=0.5
)
test_case = LLMTestCase(
input="What if these shoes don't fit?",
actual_output="We offer a 30-day full refund at no extra costs.",
retrieval_context=["All customers are eligible for a 30 day full refund at no extra costs."]
)
assert_test(test_case, [correctness_metric])
devolva seuOPENAI_API_KEY
Definido como uma variável de ambiente:
export OPENAI_API_KEY="..."
Execute o arquivo de teste na CLI:
deepeval test run test_chatbot.py
Uso de indicadores independentes
O DeepEval é extremamente modular, facilitando o uso de suas métricas por qualquer pessoa:
from deepeval.metrics import AnswerRelevancyMetric
from deepeval.test_case import LLMTestCase
answer_relevancy_metric = AnswerRelevancyMetric(threshold=0.7)
test_case = LLMTestCase(
input="What if these shoes don't fit?",
actual_output="We offer a 30-day full refund at no extra costs.",
retrieval_context=["All customers are eligible for a 30 day full refund at no extra costs."]
)
answer_relevancy_metric.measure(test_case)
print(answer_relevancy_metric.score)
print(answer_relevancy_metric.reason)
Conjuntos de dados de avaliação em massa
No DeepEval, os conjuntos de dados são apenas coleções de casos de teste. Veja como avaliar esses conjuntos de dados em massa:
import pytest
from deepeval import assert_test
from deepeval.metrics import HallucinationMetric, AnswerRelevancyMetric
from deepeval.test_case import LLMTestCase
from deepeval.dataset import EvaluationDataset
first_test_case = LLMTestCase(input="...", actual_output="...", context=["..."])
second_test_case = LLMTestCase(input="...", actual_output="...", context=["..."])
dataset = EvaluationDataset(test_cases=[first_test_case, second_test_case])
@pytest.mark.parametrize("test_case", dataset)
def test_customer_chatbot(test_case: LLMTestCase):
hallucination_metric = HallucinationMetric(threshold=0.3)
answer_relevancy_metric = AnswerRelevancyMetric(threshold=0.5)
assert_test(test_case, [hallucination_metric, answer_relevancy_metric])
Execute o arquivo de teste na CLI:
deepeval test run test_<filename>.py -n 4
Avaliação do LLM com a Confident AI
Faça login na plataforma DeepEval:
deepeval login
Execute o arquivo de teste:
deepeval test run test_chatbot.py
Quando o teste for concluído, você verá um link na CLI para colá-lo no navegador e visualizar os resultados.