DeepEvalスコアラー
DeepEvalは、RAGシステム、エージェント、対話型AI 、および安全性評価のためのメトリクスを提供するLLMアプリケーション向けの包括的な評価フレームワークです。 MLflow DeepEval と統合されているため、DeepEval メトリクスをスコアラーとして使用できます。
要件
deepevalパッケージをインストールしてください。
%pip install deepeval
クイックスタート
DeepEvalスコアラーを直接呼び出すには:
from mlflow.genai.scorers.deepeval import AnswerRelevancy
scorer = AnswerRelevancy(threshold=0.7, model="databricks:/databricks-gpt-5-mini")
feedback = scorer(
inputs="What is MLflow?",
outputs="MLflow is an open-source AI engineering platform for agents and LLMs.",
)
print(feedback.value) # "yes" or "no"
print(feedback.metadata["score"]) # 0.85
mlflow.genai.evaluate()を使用してDeepEvalスコアラーを呼び出すには:
import mlflow
from mlflow.genai.scorers.deepeval import AnswerRelevancy, Faithfulness
eval_dataset = [
{
"inputs": {"query": "What is MLflow?"},
"outputs": "MLflow is an open-source AI engineering platform for agents and LLMs.",
},
{
"inputs": {"query": "How do I track experiments?"},
"outputs": "You can use mlflow.start_run() to begin tracking experiments.",
},
]
results = mlflow.genai.evaluate(
data=eval_dataset,
scorers=[
AnswerRelevancy(threshold=0.7, model="databricks:/databricks-gpt-5-mini"),
Faithfulness(threshold=0.8, model="databricks:/databricks-gpt-5-mini"),
],
)
利用可能なDeepEvalスコアラー
RAGメトリクス
これらのスコアラーは、検索拡張型生成(RAG)アプリケーションにおける検索品質と回答生成を評価します。
スコアラー | それは何を評価するのですか? | DeepEvalのドキュメント |
|---|---|---|
出力は入力クエリに関連していますか? | ||
出力結果は、検索コンテキストと事実的に整合していますか? | ||
検索コンテキストには必要な情報がすべて含まれていますか? | ||
関連性の高いノードは、関連性の低いノードよりも上位にランク付けされるのか? | ||
検索コンテキストはクエリに関連していますか? |
エージェントメトリクス
これらの評価ツールは、タスクの完了状況やツールの使用状況など、AIエージェントの行動を評価します。
スコアラー | それは何を評価するのですか? | DeepEvalのドキュメント |
|---|---|---|
エージェントは割り当てられたタスクを正常に完了しましたか? | ||
エージェントは適切なツールを使用していますか? | ||
ツール引数は正しいですか? | ||
エージェントは最適な経路を辿るのか? | ||
エージェントは計画通りに行動するのか? | ||
エージェントの計画はきちんと構成されているか? |
会話型メトリクス
これらの評価ツールは、複数ターンにわたる対話型AIの品質を評価します。
スコアラー | それは何を評価するのですか? | DeepEvalのドキュメント |
|---|---|---|
それぞれの発言は会話にとって関連性があるか? | ||
アシスタントは割り当てられた役割を維持しているか? | ||
エージェントはターンをまたいで情報を保持するのか? | ||
ユーザーからの質問はすべて解決されていますか? | ||
その会話は目的を達成したか? | ||
エージェントは会話の中でツールを適切に使用しているか? | ||
会話は本題から逸れずに進んでいますか? |
安全メトリクス
これらの評価者は、モデルの出力結果の安全性と責任を評価する。
スコアラー | それは何を評価するのですか? | DeepEvalのドキュメント |
|---|---|---|
出力には偏った内容が含まれていますか? | ||
出力に不適切な言葉が含まれていますか? | ||
このモデルは、制限された領域において不適切な助言を提供しているか? | ||
その出力は有害な目的に利用される可能性があるだろうか? | ||
出力結果から個人を特定できる情報が漏洩しますか? | ||
アシスタントは割り当てられた役割から逸脱するのか? |
その他のメトリクス
スコアラー | それは何を評価するのですか? | DeepEvalのドキュメント |
|---|---|---|
LLMは文脈を無視して情報を捏造しているのか? | ||
要約は正確かつ完全ですか? | ||
JSON出力は想定されるスキーマと一致していますか? | ||
出力はプロンプトの指示と一致していますか? |
非LLMメトリクス
スコアラー | それは何を評価するのですか? | DeepEvalのドキュメント |
|---|---|---|
出力は期待される出力と完全に一致していますか? | ||
出力は正規表現パターンに一致しますか? |
名前でスコアラーを作成する
メトリクス名を文字列として渡すことで、 get_scorerを使用してスコアラーを動的に作成できます。
from mlflow.genai.scorers.deepeval import get_scorer
scorer = get_scorer(
metric_name="AnswerRelevancy",
threshold=0.7,
model="databricks:/databricks-gpt-5-mini",
)
feedback = scorer(
inputs="What is MLflow?",
outputs="MLflow is a platform for ML workflows.",
)
構成
DeepEval スコアラーは、コンストラクターへのキーワード引数としてメトリクス固有の変数を受け入れます。 LLMベースのメトリクスには、 modelが必要です。
from mlflow.genai.scorers.deepeval import AnswerRelevancy, TurnRelevancy
# LLM-based metric with common parameters
scorer = AnswerRelevancy(
model="databricks:/databricks-gpt-5-mini",
threshold=0.7,
include_reason=True,
)
# Metric-specific parameters
conversational_scorer = TurnRelevancy(
model="openai:/gpt-4o",
threshold=0.8,
window_size=3,
strict_mode=True,
)
メトリクス固有の論点および高度な使用方法のオプションについては、 DeepEval のドキュメントを参照してください。