はじめに
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 login
テストケースの作成
テストファイルを作成する:
touch test_chatbot.py
あるtest_chatbot.py
最初のテストケースを
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])
を返す。OPENAI_API_KEY
環境変数として設定する:
export OPENAI_API_KEY="..."
CLIでテストファイルを実行する:
deepeval test run test_chatbot.py
独立した指標の使用
DeepEvalは非常にモジュール化されているため、誰でも簡単にメトリクスを使用できます:
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)
一括査定データセット
DeepEval では、データセットはテスト・ケースの単なるコレクションです。ここでは、これらのデータセットを一括評価する方法を説明します:
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])
CLIでテストファイルを実行する:
deepeval test run test_<filename>.py -n 4
コンフィデントAIによるLLMアセスメント
DeepEval プラットフォームにログインします:
deepeval login
テストファイルを実行する:
deepeval test run test_chatbot.py
テストが完了すると、CLIにリンクが表示され、ブラウザに貼り付けて結果を見ることができます。