メインコンテンツまでスキップ

DeepEvalスコアラー

DeepEvalは、RAGシステム、エージェント、対話型AI 、および安全性評価のためのメトリクスを提供するLLMアプリケーション向けの包括的な評価フレームワークです。 MLflow DeepEval と統合されているため、DeepEval メトリクスをスコアラーとして使用できます。

要件

deepevalパッケージをインストールしてください。

Python
%pip install deepeval

クイックスタート

DeepEvalスコアラーを直接呼び出すには:

Python
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スコアラーを呼び出すには:

Python
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のドキュメント

AnswerRelevancy

出力は入力クエリに関連していますか?

リンク

Faithfulness

出力結果は、検索コンテキストと事実的に整合していますか?

リンク

ContextualRecall

検索コンテキストには必要な情報がすべて含まれていますか?

リンク

ContextualPrecision

関連性の高いノードは、関連性の低いノードよりも上位にランク付けされるのか?

リンク

ContextualRelevancy

検索コンテキストはクエリに関連していますか?

リンク

エージェントメトリクス

これらの評価ツールは、タスクの完了状況やツールの使用状況など、AIエージェントの行動を評価します。

スコアラー

それは何を評価するのですか?

DeepEvalのドキュメント

TaskCompletion

エージェントは割り当てられたタスクを正常に完了しましたか?

リンク

ToolCorrectness

エージェントは適切なツールを使用していますか?

リンク

ArgumentCorrectness

ツール引数は正しいですか?

リンク

StepEfficiency

エージェントは最適な経路を辿るのか?

リンク

PlanAdherence

エージェントは計画通りに行動するのか?

リンク

PlanQuality

エージェントの計画はきちんと構成されているか?

リンク

会話型メトリクス

これらの評価ツールは、複数ターンにわたる対話型AIの品質を評価します。

スコアラー

それは何を評価するのですか?

DeepEvalのドキュメント

TurnRelevancy

それぞれの発言は会話にとって関連性があるか?

リンク

RoleAdherence

アシスタントは割り当てられた役割を維持しているか?

リンク

KnowledgeRetention

エージェントはターンをまたいで情報を保持するのか?

リンク

ConversationCompleteness

ユーザーからの質問はすべて解決されていますか?

リンク

GoalAccuracy

その会話は目的を達成したか?

リンク

ToolUse

エージェントは会話の中でツールを適切に使用しているか?

リンク

TopicAdherence

会話は本題から逸れずに進んでいますか?

リンク

安全メトリクス

これらの評価者は、モデルの出力結果の安全性と責任を評価する。

スコアラー

それは何を評価するのですか?

DeepEvalのドキュメント

Bias

出力には偏った内容が含まれていますか?

リンク

Toxicity

出力に不適切な言葉が含まれていますか?

リンク

NonAdvice

このモデルは、制限された領域において不適切な助言を提供しているか?

リンク

Misuse

その出力は有害な目的に利用される可能性があるだろうか?

リンク

PIILeakage

出力結果から個人を特定できる情報が漏洩しますか?

リンク

RoleViolation

アシスタントは割り当てられた役割から逸脱するのか?

リンク

その他のメトリクス

スコアラー

それは何を評価するのですか?

DeepEvalのドキュメント

Hallucination

LLMは文脈を無視して情報を捏造しているのか?

リンク

Summarization

要約は正確かつ完全ですか?

リンク

JsonCorrectness

JSON出力は想定されるスキーマと一致していますか?

リンク

PromptAlignment

出力はプロンプトの指示と一致していますか?

リンク

非LLMメトリクス

スコアラー

それは何を評価するのですか?

DeepEvalのドキュメント

ExactMatch

出力は期待される出力と完全に一致していますか?

リンク

PatternMatch

出力は正規表現パターンに一致しますか?

リンク

名前でスコアラーを作成する

メトリクス名を文字列として渡すことで、 get_scorerを使用してスコアラーを動的に作成できます。

Python
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が必要です。

Python
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 のドキュメントを参照してください。