MACE能力推定
MACEアルゴリズムを使用してアノテーターの能力と真のラベルを推定する。
MACE能力推定
MACE(Multi-Annotator Competence Estimation)は、各アイテムの真のラベルとアノテーターの能力スコアを同時に推定する変分ベイズEMアルゴリズムです。各アノテーターを「知っている」(正しいラベルを生成する)または「推測する」(ランダムなラベルを生成する)としてモデル化し、0.0から1.0の能力スコアを算出します。
MACEを使用するタイミング
MACEは、複数のアノテーターが同じアイテムにラベルを付けていて、以下を行いたい場合に有用です:
- どのアノテーターが最も信頼性が高いかを特定する
- アノテーターの貢献度に重み付けすることでより高品質な予測ラベルを生成する
- 低品質のアノテーター(スパマー)を自動的に検出する
- アイテムごとのラベルの不確実性(エントロピー)を測定する
MACEはカテゴリカルなアノテーションタイプ(radio、likert、select、multiselect)で動作します。自由テキスト、スパン、スライダー、数値アノテーションには適用されません。
仕組み
- データ抽出:Potatoはすべてのアノテーターにわたる各スキーマのすべてのアノテーションを収集し、アイテム×アノテーターの行列を構築する
- EMアルゴリズム:MACEは変分ベイズEMアルゴリズムの複数のランダム再起動を実行し、最良の対数尤度を持つ解を保持する
- 出力:各スキーマについて、MACEは予測ラベル、ラベルエントロピー(不確実性)、アノテーターごとの能力スコアを生成する
- トリガー:MACEはN回の新しいアノテーションごとに自動的に実行される(設定可能)、または管理者API経由で手動トリガーも可能
設定
yaml
mace:
enabled: true
# Run MACE after every N new annotations
trigger_every_n: 10
# Minimum annotators per item before including in computation
min_annotations_per_item: 3
# Minimum eligible items before MACE will run
min_items: 5
# EM algorithm parameters
num_restarts: 10
num_iters: 50
alpha: 0.5 # Prior for annotator spamming (Beta distribution)
beta: 0.5 # Prior for guessing strategy (Dirichlet distribution)最小設定
yaml
mace:
enabled: trueすべてのデフォルトを使用:10回のアノテーションごとにトリガー、アイテムあたり3人のアノテーターが必要、最低5つの適格アイテム、50回のイテレーションで10回の再起動。
設定リファレンス
| オプション | 型 | デフォルト | 説明 |
|---|---|---|---|
enabled | boolean | false | MACEの有効化 |
trigger_every_n | integer | 10 | N回の新しいアノテーションごとに実行 |
min_annotations_per_item | integer | 3 | アイテムあたりの最低アノテーター数(2以上) |
min_items | integer | 5 | 実行前の最低適格アイテム数 |
num_restarts | integer | 10 | EMのランダム再起動回数 |
num_iters | integer | 50 | 再起動あたりのEMイテレーション数 |
alpha | float | 0.5 | アノテータースパミングの事前分布 |
beta | float | 0.5 | 推測戦略の事前分布 |
管理者APIエンドポイント
すべてのMACEエンドポイントにはX-API-Keyヘッダーによる管理者認証が必要です。
概要
bash
curl http://localhost:8000/admin/api/mace/overview \
-H "X-API-Key: your-admin-key"アノテーター能力スコアとMACEステータスを返します:
json
{
"enabled": true,
"has_results": true,
"schemas": ["sentiment"],
"annotator_competence": {
"user_1": {"average": 0.92, "per_schema": {"sentiment": 0.92}},
"user_2": {"average": 0.85, "per_schema": {"sentiment": 0.85}},
"user_3": {"average": 0.45, "per_schema": {"sentiment": 0.45}}
},
"total_annotations": 30,
"annotations_until_next_run": 0
}予測
bash
curl "http://localhost:8000/admin/api/mace/predictions?schema=sentiment" \
-H "X-API-Key: your-admin-key"各アイテムの予測ラベルとエントロピーを返します。
手動トリガー
bash
curl -X POST http://localhost:8000/admin/api/mace/trigger \
-H "X-API-Key: your-admin-key"結果の解釈
アノテーター能力
- 0.9 - 1.0:非常に信頼性の高いアノテーター
- 0.7 - 0.9:良いアノテーター、時々の不一致
- 0.5 - 0.7:中程度のアノテーター、追加トレーニングが有益な可能性
- 0.5未満:潜在的なスパマーまたは混乱したアノテーター
ラベルエントロピー
- 0.0に近い:予測ラベルへの高い信頼
- 0.5以上:中程度の不確実性、アイテムが本質的に曖昧な可能性
- log(ラベル数)に近い:最大の不確実性、コンセンサスなし
裁定統合
MACEと裁定の両方が有効な場合、MACEの予測ラベルは裁定インターフェースで追加シグナルとして表示されます:
yaml
adjudication:
enabled: true
adjudicator_users: ["admin"]
min_annotations: 2
mace:
enabled: true
trigger_every_n: 10
min_annotations_per_item: 2ベストプラクティス
- デフォルトから始める - デフォルト設定はほとんどのシナリオでうまく機能する
- 能力スコアを監視する - 管理者ダッシュボードを使用してアノテーター品質を経時的に追跡する
- トレーニングフェーズと組み合わせる - トレーニングでアノテーターを資格認定し、MACEで継続的な品質を監視する
- 適切な閾値を設定する - 小規模なアノテーションプロジェクトでは
min_annotations_per_itemを下げる
関連情報
- 品質管理 - その他の品質管理メカニズム
- 管理者ダッシュボード - アノテーション進捗の監視
- AIサポート - AI支援アノテーション
実装の詳細については、ソースドキュメントを参照してください。