アノテーション学習パス
最初のアノテーション研究から、一致度の報告、LLM とエージェントの評価、質的コーディングまで、Potato のガイドを読む順序を 6 つのコースにまとめました。
この学習パスは、Potato のアノテーション・ガイドを、最初のアノテーション研究の実施から LLM エージェントの評価やインタビューのコーディングまで、6 つの目標に沿った読む順序に並べたものです。各コースは 5 から 8 のステップで構成され、各ステップにはそのガイドが何を教えるかが書かれています。
サイドバーはガイドをトピックごとにまとめています。以下のコースは、ガイドの一部を、読者が最初に必要とする順に並べたもので、1 つのガイドが複数のコースに登場することもあります。アノテーションが初めての読者は最初のコースから始めてください。後のコースは、動作するスキームとガイドラインがあることを前提としているためです。アノテーション用語集はガイドで使う用語を定義し、ガイドの概要はすべてのガイドをトピック別に一覧にしています。
最初のアノテーション研究を実施する
最初のコースは、研究課題からエクスポートされたラベルまでを扱います。クイックスタートは Potato をインストールして感情分析タスクを実行するもので、読む前に動作するサーバーが欲しい読者は、先にクイックスタートを行ってもかまいません。
- データアノテーションとは? 分類から自由記述の回答まで、アノテーション・タスクの各系統が、Potato の 1 つ以上のアノテーションスキームに対応します。
- アノテーションスキームの選び方。 スキームは研究が必要とする回答の種類から決まり、判断表が Potato のアノテーション・タイプを、当てはまる少数に絞り込みます。
- アノテーション用のデータ形式を設計する。 Potato はすべてのアノテーションを項目 ID に紐づけるので、各項目には、安定した一意の ID とラベル付けする内容が必要です。
- 効果的なアノテーションガイドラインの書き方。 ガイドラインが機能するのは、同じルールを読んだ 2 人の注意深いアノテーターが同じラベルを選ぶときであり、パイロットと改訂のサイクルがそこへ導きます。
- アノテーターは何人必要か? 重複は、各ラベルの信頼性と、予算で扱える項目数とのトレードオフであり、主観的なタスクは明確なタスクより多くの重複を必要とします。
- ゴールドスタンダードと注意力チェック。 答えが分かっている項目をキューに混ぜると、各アノテーターの正確さが測れ、読まずに答えるアノテーターを見つけられます。
- アノテーションサーバーのデプロイ。 研究用サーバーには、公開された HTTPS アドレス、研究のアノテーターだけを通すサインイン、再起動後も残るストレージが必要です。有償の募集については、ProlificとSONAでクラウドソーシングのスタディを実施するが扱っています。
- アノテーションを機械学習向けにエクスポートする。 Potato は JSONL と CSV に加えて、CoNLL や COCO などの訓練用形式も書き出します。ラベル付けの前に形式を決めておくと、データと項目 ID の構成方法が定まります。
このコースを終えると、研究用の設定には、スキーム、データ・ファイル、重複の設定、注意力チェックが入っています。次の設定では、各部分を追加するステップを示しており、この設定は Potato 2.13.1 で python -m potato.validate_cli --strict に通ります。
annotation_task_name: "Review Sentiment"
task_dir: "."
data_files:
- "data/reviews.jsonl" # step 3: one item per line
item_properties:
id_key: id
text_key: text
annotation_schemes: # step 2: one category per review
- annotation_type: radio
name: sentiment
description: "What is the overall sentiment of this review?"
labels: [Positive, Negative, Mixed, Neutral]
num_annotators_per_item: 3 # step 5: three labels per item
attention_checks: # step 6: one check per 25 items
enabled: true
items_file: "data/attention_checks.json"
frequency: 25
output_annotation_dir: "annotation_output/"
export_annotation_format: "jsonl" # step 8attention_checks.json の各レコードには id と expected_answer が必要です。設定ファイルのあるフォルダで potato start config.yaml を実行すると、サーバーは http://localhost:8000 で起動します。
ラベルの品質を測定して報告する
2 つ目のコースは、重複したラベルを、論文やデータセット・カードで報告できる数字に変えます。このコースは、一部の項目に少なくとも 2 人のアノテーターがいる研究を前提としています。
- アノテーター間一致度の解説。 単純一致率は信頼性を過大に見せ、Cohen の κ、Fleiss の κ、Krippendorff の α は、研究デザインごとに異なる形で偶然を補正します。
- スパンと構造化出力における一致度。 スパン・タスクでは κ が数える固定の項目集合がないため、スパンの一致度は、部分的な重なりに対する明示的な規則を添えたペアワイズ F1 として報告します。ボックスについては、バウンディングボックスのアノテーター間一致度を測る方法が扱っています。
- 裁定と不一致の扱い。 不一致は、多数決、専門家による裁定、アノテーターの信頼性のモデルのいずれかで解消され、どれを選ぶかは、不一致が誤りなのか信号なのかによります。
- クラウドラベルの集約:多数決を超えて。 Dawid–Skene と MACE は、ラベル行列から各アノテーターの信頼性を推定し、その推定値で各アノテーターのラベルに重みを付けます。
- アノテーション研究における統計的検出力とサンプルサイズ。 重複は各ラベルの信頼性を決め、項目数は、観察された差がノイズより大きいかどうかを決めます。
- 事前ラベル付きデータでレビューと追認を見分ける方法。 事前ラベルがあると、アノテーターがレビューしても追認しても一致度は上がり、この 2 つを分けるのは作業のタイミングです。
- データセットとモデルの文書化:データシート、データステートメント、モデルカード。 データシート、データステートメント、モデルカードは、誰がどのガイドラインでデータにラベルを付けたかを記録します。
NLP のためのテキストのラベル付け
3 つ目のコースは、文書全体のラベルからリンクされたエンティティまで、テキストのタスクを扱います。ステップ 2 から 6 は互いに積み上がっており、後のタスクはそれぞれ、前のステップが示すような種類のスパンに対して行います。
- テキストアノテーション。 カテゴリから品質評価まで、文書全体のラベルは、自然言語処理で最も一般的なアノテーション・タスクです。
- スパンアノテーション。 スパンは、テキスト内のラベル付けされた区間を示し、開始、終了、ラベルとして記録されます。
- 固有表現抽出。 NER は、エンティティ・タイプのラベル集合を持つスパン・タスクで、標準的なスキームを領域に合わせて絞り込み、BIO タグ付きの CoNLL としてエクスポートします。
- 共参照解析。 共参照は、「Marie Curie … she … the physicist」のように、1 つのエンティティへのすべての言及を 1 つの連鎖にまとめます。
- 関係抽出とイベント抽出。 関係は、2 つのエンティティ・スパンを型付きの辺で結び、イベントは、トリガー語とその周囲の役割を加えます。
- エンティティリンキング。 エンティティリンキングは、各言及を知識ベースの 1 つの項目に対応付けます。たとえば「Paris」を、テキサスの都市ではなくフランスの都市に対応付けます。
- 多言語・低リソース言語のアノテーション。 他の言語でのアノテーションには、ネイティブ・スピーカー、文化を越えて通用するカテゴリ、右から左へ書く文字や非ラテン文字の正しい表示が必要です。
画像、動画、音声のアノテーション
4 つ目のコースは、静止画から時間ベースのメディアへ進み、モデルによる事前アノテーションで終わります。ボックスとマスクの一致度は動画より前に置いています。形状の境界の規則が、空間ラベルの不一致の大半を決めるためです。
- 画像アノテーション。 画像のラベルは、画像ごとに 1 カテゴリから、ボックス、ポリゴン、ランドマークまで幅があり、適切な水準は、訓練するモデルが必要とするものから決まります。
- 画像セグメンテーションのマスクをアノテーションする方法。 マスクの不一致の多くは、描画ツールではなく、影が物体に含まれるかどうかといった境界の規則から生じます。
- バウンディングボックスのアノテーター間一致度を測る方法。 平均 IoU は、画像を見ていないアノテーターでも、大きく中央にある物体では高く出るので、ボックスの一致度には偶然補正が必要です。
- 動画アノテーション。 クリップは、全体にラベルを付けることも、時間区間に分けることも、フレームごとにアノテーションすることもできます。
- 動画の物体追跡をアノテーションする方法。 追跡は 1 つの物体をフレームにわたってラベル付けし、モデル支援の伝播が、最初のマスクをクリップ全体に引き継ぎます。
- 音声アノテーション。 1 つの波形表示で、クリップ・ラベル、時間に揃えたイベント、文字起こし、話者の作業に対応できます。
- Whisper の文字起こしをアノテーションする方法。 Whisper の
.json出力は時間付きセグメントを保持し、Potato は出力ファイルのフォルダを、変換ステップなしで読み込みます。 - LLM とビジョンによる事前アノテーション。 ビジョン・モデルや言語モデルがラベルを提案し、アノテーターが検証します。良い提案を確認するのは、ゼロからラベル付けするより時間がかかりません。
ステップ 8 は、別の場所で学習したモデルを使います。モデル支援ラベリングは、代わりに調査自身のラベルでモデルを学習し、モデル学習のセクションは、ボックス、輪郭、音声セグメント、書き起こしのトレーナーを説明しています。
LLM とエージェントを評価する
5 つ目のコースは、個々の出力の判定から始まり、本番トレースのレビューで終わります。ステップ 1 から 4 はあらゆる生成テキストに当てはまり、ステップ 5 から 8 は、エージェントの経路を加えます。
- 生成テキストの人手評価。 BLEU や ROUGE などの自動指標は品質との相関が弱く、人手評価は、各基準を定義し、再実行できるだけの詳細を報告することで信頼を得ます。
- ルーブリックに基づく LLM 評価。 ルーブリックは、1 つの品質判断を採点される基準に分け、回答がどの基準で失敗したかを示します。
- モデルのペア比較。 多数のプロンプトにわたる直接対決の判断は、絶対スコアよりも確実にモデルを順位付けし、Bradley–Terry や Elo のあてはめが、勝敗をランキングに変えます。
- LLM ジャッジと人間のアノテーターの一致度を測る方法。 ジャッジと人間との κ が、人間どうしの κ に近ければ、ジャッジは別のアノテーターと同程度の働きをしています。
- AI エージェントの評価方法。 エージェント評価は、最終回答だけでなく、推論ステップからツール呼び出しやアクションまでの経路も判定します。
- エージェントの軌跡をアノテーションする。 軌跡のラベルは、実行全体の判断に、失敗した各ステップの誤りカテゴリと重大度を組み合わせます。
- プロセス報酬モデルとステップ単位のラベリング。 プロセス報酬モデルは各推論ステップをスコア付けし、PRM の訓練には、各ステップが正しいかどうかを示すステップ単位のラベルが必要です。
- LLM とエージェントのトレースのための人手レビューキュー。 レビュー・キューは、Langfuse、Webhook、エクスポートからのトレースを複数のレビュアーに送り、統合された回答を、スコアとしてトレース・ツールに書き戻します。
質的コーディング
6 つ目のコースは、インタビュー・データを、録音から信頼性の統計量まで追います。このコースが使う Potato の機能は、QDA モードに記載されています。
- 定性コーディングのためのインタビュー記録の準備。 録音は、話者ラベル付きの文字起こしからコーディングとエクスポートまでの 5 つのステップで、コーディングされた抜粋になり、チームは読み込み前に氏名などの識別情報を取り除きます。
- 質的研究のためのコードブック開発。 各コードには、定義、そのコードが当てはまる場合と当てはまらない場合の規則、例が付きます。コードブックの各改訂には番号が付きます。
- 質的研究におけるコーダー間信頼性。 係数はコーディング設計から決まり、リフレクシブ・テーマ分析は、そもそも係数を報告しないことを主張します。
- Potato での量的内容分析:コードブックと Krippendorff のアルファ。 内容分析は、単位を固定された変数に対してコーディングし、二重コーディングしたサンプルで、変数ごとに Krippendorff の α を報告します。
- 定性コーディングで LLM を使い、その使い方を報告する方法。 モデルは、コードの提案、信頼性サンプルのコーディング、コーパスの先行コーディングを担うことができ、どの役割でも、人間のコーダーとのモデルの一致度を報告する必要があります。
- 質的データ分析ソフトウェアの比較。 NVivo、ATLAS.ti、MAXQDA、Taguette、QualCoder、Potato は、価格とチーム・コーディングへの対応が異なります。Potato は、有償のプログラムとのあいだで、REFI-QDA ファイルとしてプロジェクトをやり取りします。
関連資料
- アノテーション用語集(すべてのコースで使う用語の定義について)
- ガイドの概要(トピック別にまとめたすべてのガイドについて)
- クイックスタート(数分で動作する Potato サーバーを立ち上げるため)
- コーディングエージェントを使ったクイックスタート(研究をコーディングエージェントに説明して設定を受け取るため)
- ショーケース(各コースの出発点となる、すぐに実行できるデザイン)