ジェネラティブエージェンツの大嶋です。
「AIエージェントキャッチアップ #81 - DeepEval」という勉強会を開催しました。
generative-agents.connpass.com
アーカイブ動画はこちらです。
DeepEval
今回は、オープンソースのLLM評価フレームワーク「DeepEval」をキャッチアップしました。
DeepEvalのGitHubリポジトリはこちらです。
ドキュメントはこちらです。
今回のポイント
DeepEvalとは
DeepEvalは、LLMアプリケーションの評価のOSSです。
pytestのテストコードのように、LLMアプリケーションの評価を実装できます。
ほとんどの評価指標がLLM-as-a-Judgeで実装されており、G-Evalなどを参考に実装されています。
実際に動かしてみた
DeepEvalでは、人間向けのクイックスタートと、バイブコーダー向けのクイックスタートが用意されています。
今回は、人間向けクイックスタートを動かしてみました。
uv add deepevalでDeepEvalをインストールして、uv run deepeval loginでConfident AIのAPIキーを設定したうえで、以下のコードを用意しました。
from deepeval import assert_test from deepeval.test_case import LLMTestCase, SingleTurnParams from deepeval.metrics import GEval def test_correctness(): correctness_metric = GEval( name="Correctness", criteria="Determine if the 'actual output' is correct based on the 'expected output'.", evaluation_params=[SingleTurnParams.ACTUAL_OUTPUT, SingleTurnParams.EXPECTED_OUTPUT], threshold=0.5 ) test_case = LLMTestCase( input="I have a persistent cough and fever. Should I be worried?", # Replace this with the actual output from your LLM application actual_output="A persistent cough and fever could be a viral infection or something more serious. See a doctor if symptoms worsen or don't improve in a few days.", expected_output="A persistent cough and fever could indicate a range of illnesses, from a mild viral infection to more serious conditions like pneumonia or COVID-19. You should seek medical attention if your symptoms worsen, persist for more than a few days, or are accompanied by difficulty breathing, chest pain, or other concerning signs." ) assert_test(test_case, [correctness_metric])
コード引用元:https://deepeval.com/docs/getting-started
このコードは、G-EvalのLLM-as-a-Judgeのメトリクスを実装して実行する内容となっています。
uv run deepeval test run test_example.pyで実行すると、ターミナルに実行結果が表示されました。

Confident AIのAPIキーを設定していたため、Confident AIのプラットフォーム上でも実行結果を確認できました。

DeepEvalの評価指標
DeepEvalでは、さまざまな評価指標が実装されています。
G-Evalの論文に基づいた評価指標以外に、意思決定のツリーを実装するDAG(Deep Acyclic Graph)などがサポートされています。
なお、G-Evalは、評価基準に基づく採点、Chain-of-Thoughtによる評価ステップの生成、logprobsを用いたスコア確率の活用が特徴とされています。
その他の機能
その他、DeepEvalでは、プロンプト最適化や合成データ生成の機能も提供されています。
プロンプト最適化は、GEPAやMIPROv2といったDSPyで実装されているアルゴリズムを再実装したものとのことです。
次回のご案内
以上、今回は「DeepEval」をキャッチアップしました。
次回は「AIエージェントキャッチアップ #82 - Open Knowledge Format」ということで、Googleが公開したLLM-wikiを形式化したマークダウン形式の知識表現フォーマットがテーマです!
generative-agents.connpass.com
ご興味・お時間ある方はぜひご参加ください!
また、その次の回以降のテーマも募集しているので、気になるエージェントのOSSなどあれば教えてください!