Allgemeine Einführung
DeepEval ist ein einfach zu bedienendes Open-Source-LLM-Evaluierungs-Framework zur Evaluierung und zum Testen großer Sprachmodellierungssysteme. DeepEval kombiniert die neuesten Forschungsergebnisse mit Metriken wie G-Eval, Phantom-Erkennung, Antwortrelevanz, RAGAS und mehr, um LLM-Ausgaben zu bewerten. Unabhängig davon, ob Ihre Anwendung durch RAG implementiert oder feinabgestimmt ist, kann DeepEval Ihnen helfen, die besten Hyperparameter zur Verbesserung der Modellleistung zu bestimmen. Darüber hinaus generiert es synthetische Datensätze, lässt sich nahtlos in jede CI/CD-Umgebung integrieren und bietet Red-Team-Testing-Funktionen für über 40 Sicherheitslücken. Das Framework ist außerdem vollständig in Confident AI integriert, um den gesamten Evaluierungslebenszyklus der Plattform zu unterstützen.
Funktionsliste
- Mehrere LLM-Bewertungsmetriken wie G-Eval, Halluzinationstests, Antwortkorrelation, RAGAS, usw.
- Unterstützung für benutzerdefinierte Bewertungsmetriken und automatische Integration in das DeepEval-Ökosystem
- Erstellung synthetischer Datensätze für die Bewertung
- Nahtlose Integration in jede CI/CD-Umgebung
- Red-Team-Tests zur Aufdeckung von mehr als 40 Sicherheitsschwachstellen
- Benchmarking mit Unterstützung für mehrere Benchmarks wie MMLU, HellaSwag, DROP, etc.
- Vollständig in Confident AI integriert, um den gesamten Evaluierungszyklus von der Datensatzerstellung bis zur Fehlersuche in den Evaluierungsergebnissen zu unterstützen
Hilfe verwenden
Montage
Sie können DeepEval über pip installieren:
pip install -U deepeval
Es wird empfohlen, ein Konto einzurichten, um gemeinsam nutzbare Cloud-basierte Prüfberichte zu erstellen:
deepeval login
Schreiben von Testfällen
Erstellen Sie eine Testdatei:
touch test_chatbot.py
existierentest_chatbot.py
Schreiben Sie den ersten Testfall in der
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])
Ihre RückgabeOPENAI_API_KEY
Wird als Umgebungsvariable gesetzt:
export OPENAI_API_KEY="..."
Führen Sie die Testdatei über die CLI aus:
deepeval test run test_chatbot.py
Verwendung von unabhängigen Indikatoren
DeepEval ist extrem modular aufgebaut, so dass jeder seine Metriken problemlos nutzen kann:
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)
Massenbewertungsdatensätze
In DeepEval sind Datensätze nur Sammlungen von Testfällen. Hier erfahren Sie, wie Sie diese Datensätze in großen Mengen auswerten können:
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])
Führen Sie die Testdatei über die CLI aus:
deepeval test run test_<filename>.py -n 4
LLM-Bewertung mit Confident AI
Melden Sie sich bei der DeepEval-Plattform an:
deepeval login
Führen Sie die Testdatei aus:
deepeval test run test_chatbot.py
Sobald der Test abgeschlossen ist, wird in der CLI ein Link angezeigt, den Sie in Ihren Browser einfügen können, um die Ergebnisse anzuzeigen.