はじめに
DeepEvalは、大規模な言語モデリングシステムを評価およびテストするための、使いやすいオープンソースのLLM評価フレームワークです。DeepEvalは、G-Eval、ファントム検出、解答の関連性、RAGASなどのメトリクスと最新の研究結果を組み合わせて、LLM出力を評価します。DeepEvalは、アプリケーションが実装されているか、RAGによって微調整されているかにかかわらず、モデルのパフォーマンスを向上させるために最適なハイパーパラメータを決定するのに役立ちます。さらに、合成データセットを生成し、あらゆるCI/CD環境にシームレスに統合し、40以上のセキュリティ脆弱性に対するレッドチームテスト機能を提供します。また、このフレームワークはConfident AIと完全に統合されており、プラットフォームの評価ライフサイクル全体をサポートします。
機能一覧
- G-Eval、幻覚テスト、解答相関、RAGASなど、複数のLLM評価指標。
- カスタム評価指標のサポートとDeepEvalエコシステムへの自動統合
- 評価用合成データセットの生成
- あらゆるCI/CD環境へのシームレスな統合
- 40以上のセキュリティ脆弱性を検出するレッドチームのテスト機能
- MMLU、HellaSwag、DROPなど、複数のベンチマークをサポートするベンチマーク。
- Confident AIと完全に統合され、データセットの作成から評価結果のデバッグまで、評価ライフサイクル全体をサポート。
ヘルプの使用
取り付け
DeepEval は pip 経由でインストールできます:
pip install -U deepeval
共有可能なクラウドベースのテストレポートを作成するには、アカウントを作成することをお勧めします:
deepevalログイン
テストケースの作成
テストファイルを作成する:
touch test_chatbot.py
あるtest_chatbot.py
最初のテストケースを
インポート pytest
from deepeval import assert_test
from deepeval.metrics import 回答関連度メトリクス
from deepeval.test_case import LLMTestCase
def test_case(): correctness_metric = GEval
correctness_metric = GEval(
name="Correctness", criteria="Determine if the 'actual'?
criteria="「期待される出力」に基づいて「実際の出力」が正しいかどうかを判定する。",
evaluation_params=[LLMTestCaseParams.ACTUAL_OUTPUT, LLMTestCaseParams.EXPECTED_OUTPUT], threshold=0.5
閾値=0.5
)
test_case = LLMTestCase(
input="この靴のサイズが合わなかったら?", actual_output="同じ靴を別の方法で提供します。
actual_output="追加料金なしで30日間全額返金いたします。"、
retrieval_context=["すべてのお客様は、追加費用なしで30日間の全額返金を受けることができます。"])
)
assert_test(test_case, [correctness_metric])
を返す。OPENAI_API_KEY
環境変数として設定する:
export OPENAI_API_KEY="..."
CLIでテストファイルを実行する:
deepeval test run test_chatbot.py
独立した指標の使用
DeepEvalは非常にモジュール化されているため、誰でも簡単にメトリクスを使用できます:
from deepeval.metrics import 回答関連度メトリクス
from deepeval.test_case import LLMTestCase
answer_relevancy_metric = AnswerRelevancyMetric(threshold=0.7)
test_case = LLMTestCase(
input="この靴のサイズが合わなかったら?", actual_output="同じ靴を別の方法で提供します。
actual_output="追加料金なしで30日間全額返金いたします。"、
retrieval_context=["すべてのお客様は、追加費用なしで30日間の全額返金を受けることができます。"])
)
answer_relevancy_metric.measure(test_case)
print(answer_relevancy_metric.score)
print(answer_relevancy_metric.reason)
一括査定データセット
DeepEval では、データセットはテスト・ケースの単なるコレクションです。ここでは、これらのデータセットを一括評価する方法を説明します:
インポート 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="..."コンテキスト=["..."])
second_test_case = LLMTestCase(input="..." , actual_output="...")actual_output="..." , context=["..."].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])
CLIでテストファイルを実行する:
deepeval test run test_.py -n 4
コンフィデントAIによるLLMアセスメント
DeepEval プラットフォームにログインします:
deepevalログイン
テストファイルを実行する:
deepeval test run test_chatbot.py
テストが完了すると、CLIにリンクが表示され、ブラウザに貼り付けて結果を見ることができます。