背景
SDK が提供する評価メトリクス(faithfulness, hallucination 等)は、バックエンドで計算されたスコアを返す仕組みですが、各メトリクスが何をどう測定しているのかがドキュメント化されていません。
現状、ユーザーが得られる情報は llms.txt のメトリクス一覧表のみです:
| Method |
What it measures |
Score |
evaluator.faithfulness() |
Answer is grounded in provided contexts |
0-1 (higher is better) |
evaluator.hallucination() |
Answer contains info NOT in contexts |
0-1 (lower is better) |
| ... |
... |
... |
これだけではユーザーが「なぜこのスコアになったのか」「どのメトリクスを選ぶべきか」を判断できません。
概要
各評価メトリクスのアルゴリズム・評価基準・ユースケースを解説するドキュメントを作成します。
作業内容
Step 1: ドキュメントファイルの作成
docs/EVALUATION_METRICS.md を新規作成。
Step 2: 各メトリクスの解説
以下の8メトリクスについて、それぞれ記載してください。
| メトリクス |
SDK メソッド |
内部メトリクス名 |
| Faithfulness |
evaluator.faithfulness() |
faithfulness |
| Answer Relevancy |
evaluator.answer_relevancy() |
answer_relevancy |
| Contextual Relevancy |
evaluator.contextual_relevancy() |
context_relevancy |
| Contextual Precision |
evaluator.contextual_precision() |
llm_context_precision |
| Contextual Recall |
evaluator.contextual_recall() |
context_recall |
| Hallucination |
evaluator.hallucination() |
hallucination |
| Toxicity |
evaluator.toxicity() |
toxicity |
| Bias |
evaluator.bias() |
bias |
Step 3: 各メトリクスに含める項目
メトリクスごとに以下の構成で記述:
### メトリクス名
**何を測定するか**: 1〜2文で説明
**スコアの読み方**: 0-1 のスケール、higher is better / lower is better
**必須パラメータ**:
- question: ...
- answer: ...
- contexts: ...(必須 or 任意)
- ground_truth: ...(必要な場合のみ)
**評価の仕組み**:
スコアがどのように算出されるかの概要(LLM による判定、クレームの分解、
コンテキストとの照合など、ユーザーが理解できるレベルで)
**ユースケース**: どんな場面で使うべきか
**使用例**:
```python
result = evaluator.xxx(
question="...",
answer="...",
contexts=["..."],
)
print(f"Score: {result.score}")
print(f"Reason: {result.reason}")
スコアの目安:
| 範囲 |
解釈 |
| 0.8〜1.0 |
... |
| 0.5〜0.8 |
... |
| 0.0〜0.5 |
... |
### Step 4: メトリクス選択ガイド
ドキュメント末尾に「どのメトリクスを使うべきか」の判断フローを追加:
- RAG の回答品質を測りたい → faithfulness + answer_relevancy
- 検索の質を測りたい → contextual_relevancy + contextual_precision
- 安全性を測りたい → toxicity + bias
- ハルシネーションを検出したい → hallucination + faithfulness
- ground_truth がある場合 → contextual_recall も追加
### Step 5: README からのリンク追加
`README.md` の「ドキュメント」セクションに以下を追加:
### Step 6: 検証
- [ ] 全メトリクス(8種)の解説が含まれている
- [ ] 各メトリクスに必須パラメータが明記されている
- [ ] コード例が正しい(SDK のメソッドシグネチャと一致)
- [ ] `contextual_recall` に `ground_truth` が必須であることが明記されている
- [ ] メトリクス選択ガイドが含まれている
- [ ] README からリンクされている
---
## 参考情報
- SDK のメトリクスメソッド定義: `src/genflux/evaluation.py`
- 有効なメトリクス名一覧: `src/genflux/jobs.py` の `VALID_METRICS`
- 既存のメトリクス一覧表: `llms.txt` の Evaluation Metrics セクション
## 注意事項
- 評価のスコア計算はバックエンド側で実行されます。SDK はジョブを投入して結果を受け取るクライアントです。
- アルゴリズムの解説は「ユーザーがスコアを解釈できるレベル」で記述してください。内部実装の詳細ではなく、概念的な仕組みの説明を重視してください。
- 表記ルール: ブランド名は `GENFLUX`、クラス名は `Genflux`(Issue #23 のガイドライン参照)。
背景
SDK が提供する評価メトリクス(faithfulness, hallucination 等)は、バックエンドで計算されたスコアを返す仕組みですが、各メトリクスが何をどう測定しているのかがドキュメント化されていません。
現状、ユーザーが得られる情報は
llms.txtのメトリクス一覧表のみです:evaluator.faithfulness()evaluator.hallucination()これだけではユーザーが「なぜこのスコアになったのか」「どのメトリクスを選ぶべきか」を判断できません。
概要
各評価メトリクスのアルゴリズム・評価基準・ユースケースを解説するドキュメントを作成します。
作業内容
Step 1: ドキュメントファイルの作成
docs/EVALUATION_METRICS.mdを新規作成。Step 2: 各メトリクスの解説
以下の8メトリクスについて、それぞれ記載してください。
evaluator.faithfulness()faithfulnessevaluator.answer_relevancy()answer_relevancyevaluator.contextual_relevancy()context_relevancyevaluator.contextual_precision()llm_context_precisionevaluator.contextual_recall()context_recallevaluator.hallucination()hallucinationevaluator.toxicity()toxicityevaluator.bias()biasStep 3: 各メトリクスに含める項目
メトリクスごとに以下の構成で記述:
スコアの目安: