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 Anmeldung
Schreiben von Testfällen
Erstellen Sie eine Testdatei:
touch test_chatbot.py
existierentest_chatbot.py
Schreiben Sie den ersten Testfall in der
pytest importieren
von deepeval importieren assert_test
from deepeval.metrics importieren AnswerRelevancyMetric
from deepeval.test_case import LLMTestCase
def test_case(): richtigkeit_metrik = GEval
Korrektheit_metrisch = GEval(
name="Korrektheit", criteria="Ermitteln, ob die
criteria="Ermitteln Sie, ob die 'tatsächliche Ausgabe' auf der Grundlage der 'erwarteten Ausgabe' korrekt ist." ,
evaluation_params=[LLMTestCaseParams.ACTUAL_OUTPUT, LLMTestCaseParams.EXPECTED_OUTPUT], threshold=0.5
Schwellenwert=0,5
)
test_case = LLMTestCase(
input="Was ist, wenn diese Schuhe nicht passen?", actual_output="Wir bieten die gleichen Schuhe auf eine andere Art und Weise an.
actual_output="Wir bieten eine 30-tägige vollständige Rückerstattung ohne zusätzliche Kosten.",
retrieval_context=["Alle Kunden haben Anspruch auf eine 30-tägige volle Rückerstattung ohne zusätzliche Kosten."]
)
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 Testlauf 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 importieren LLMTestCase
answer_relevancy_metric = AnswerRelevancyMetric(threshold=0.7)
test_case = LLMTestCase(
input="Was ist, wenn diese Schuhe nicht passen?", actual_output="Wir bieten die gleichen Schuhe auf eine andere Art und Weise an.
actual_output="Wir bieten eine 30-tägige vollständige Rückerstattung ohne zusätzliche Kosten.",
retrieval_context=["Alle Kunden haben Anspruch auf eine 30-tägige volle Rückerstattung ohne zusätzliche Kosten."]
)
answer_relevancy_metric.measure(test_case)
print(antwort_relevanz_metrik.score)
print(antwort_relevanz_metrisch.grund)
Massenbewertungsdatensätze
In DeepEval sind Datensätze lediglich Sammlungen von Testfällen. Hier erfahren Sie, wie Sie diese Datensätze in großen Mengen auswerten können:
pytest importieren
from deepeval import assert_test
from deepeval.metrics import HallucinationMetric, AnswerRelevancyMetric
from deepeval.test_case importieren LLMTestCase
from deepeval.dataset importiere EvaluationDatensatz
first_test_case = LLMTestCase(input="..." , actual_output="..." , context=["..."])
zweiter_test_fall = 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_.py -n 4
LLM-Bewertung mit Confident AI
Melden Sie sich bei der DeepEval-Plattform an:
deepeval Anmeldung
Führen Sie die Testdatei aus:
deepeval Testlauf 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.