「AIエージェントキャッチアップ #81 - DeepEval」を開催しました

ジェネラティブエージェンツの大嶋です。

「AIエージェントキャッチアップ #81 - DeepEval」という勉強会を開催しました。

generative-agents.connpass.com

アーカイブ動画はこちらです。

www.youtube.com

DeepEval

今回は、オープンソースのLLM評価フレームワーク「DeepEval」をキャッチアップしました。

DeepEvalのGitHubリポジトリはこちらです。

github.com

ドキュメントはこちらです。

deepeval.com

今回のポイント

DeepEvalとは

DeepEvalは、LLMアプリケーションの評価のOSSです。

pytestのテストコードのように、LLMアプリケーションの評価を実装できます。

ほとんどの評価指標がLLM-as-a-Judgeで実装されており、G-Evalなどを参考に実装されています。

arxiv.org

実際に動かしてみた

DeepEvalでは、人間向けのクイックスタートと、バイブコーダー向けのクイックスタートが用意されています。

今回は、人間向けクイックスタートを動かしてみました。

deepeval.com

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)などがサポートされています。

deepeval.com

なお、G-Evalは、評価基準に基づく採点、Chain-of-Thoughtによる評価ステップの生成、logprobsを用いたスコア確率の活用が特徴とされています。

その他の機能

その他、DeepEvalでは、プロンプト最適化や合成データ生成の機能も提供されています。

deepeval.com

deepeval.com

プロンプト最適化は、GEPAやMIPROv2といったDSPyで実装されているアルゴリズムを再実装したものとのことです。

次回のご案内

以上、今回は「DeepEval」をキャッチアップしました。

次回は「AIエージェントキャッチアップ #82 - Open Knowledge Format」ということで、Googleが公開したLLM-wikiを形式化したマークダウン形式の知識表現フォーマットがテーマです!

generative-agents.connpass.com

ご興味・お時間ある方はぜひご参加ください!

また、その次の回以降のテーマも募集しているので、気になるエージェントのOSSなどあれば教えてください!