Skip to content

docs: 評価メトリクスのアルゴリズム解説ドキュメントを作成 #26

@Nsho0724

Description

@Nsho0724

背景

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 のガイドライン参照)。

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions