Skip to content
Guides1 min read

LLM アノテーターと人間:ラベル付けを自動化すべきときと、すべきでないとき

LLM に自分のデータをアノテーションさせてよいかをどう決めるか、モデルのアノテーターがどこで失敗するか、Potato で自動化と人の検証をどう組み合わせるかの実践ガイド。

Potato Team

いまやどのラベル付け案件でもこの問いが出ます。これに人はまだ必要なのか、それともモデルにやらせればよいのか。もっともな問いです。LLM のアノテーターは速く、疲れず、クラウドの何分の一かの費用で済みます。答えは課題によりますが、その依存の仕方は予測できます。そしてうまくいかない案件は、たいてい確かめなかった案件です。

LLM が良いアノテーターになるのは、課題がよく定義されていて、ラベルが客観的で、人間のゴールド標本と突き合わせて測れるときです。悪いアノテーターになるのは、ラベルが主観的なとき、文化的な含みを持つとき、あるいは新しすぎてまだ正解が存在しないときです。安全な既定は、モデルが安定してこなす部分を自動化し、残りは標本を検証し、難しい事例は人に残すことです。

成績は課題の種類で分かれる

知見は課題の種類ごとに分かれます。Gilardi、Alizadeh、Kubli(2023)は、ChatGPT が関連性、スタンス、フレーム検出でクラウドワーカーを上回り、一致度はより高く費用はほぼゼロだったと報告しています。一方 Ziems ら(2024)は、25 の計算社会科学ベンチマークで 13 のモデルを試し、様子はまだらだと示しました。分類課題では LLM は人間とほどほどの一致度にしか届かず、ファインチューニング済みモデルを上回ることはまれである一方、自由記述の説明ではクラウドの参照回答より読みやすい出力を出すことがよくあります。

つまり「LLM はこれにラベルを付けられるか」は、実は二つの問いです。これはモデルが得意な種類の課題か。そして自分の具体的なデータで、モデルは実際に人と一致するか。前者は課題の種類から推論できます。後者は測るしかありません。

LLM アノテーターが失敗するところ

失敗はまとまって現れるので、あらかじめ予期できます。

  • 主観的で文化的なラベル。 有害性、不快さ、ユーモア、丁寧さ、道徳的判断は、誰が読んでいるかに依存します。単一のモデルは一つに均された答えを返しますが、多様なアノテーター集団なら情報を持つ形で意見が割れたはずで、その不一致こそがしばしば欲しかった信号です。
  • 比較における系統的な偏り。 LLM が二つの応答を判定するとき、それは中立な審判ではありません。Zheng ら(2023)は、位置バイアス(先に示された選択肢を好む)、冗長性バイアス(長い回答を高く評価する)、自己増強バイアス(自分の文体のテキストを好む)を記録しています。これらは一貫しているので、ノイズを足すのではなくデータセット全体を一方向へ押しやります。
  • まだ正解がない。 まったく新しいコーディングスキームを作っている最中なら、モデルを突き合わせる相手が存在せず、自信ありげな誤ったラベルは正直な空白より悪いものです。新しいスキームには、少なくともゴールド集合を作るために、まず人間のコーダーが必要です。
  • 静かなドリフト。 モデルの振る舞いは長いコーパスの中で、またバージョン間で移り変わります。再確認用の固定したゴールド標本がなければ、ラベルの分布が足元で動いていることに気づけません。

いずれも、モデルの出力を完成したラベルではなく強力な下書きとして扱うべき理由になります。

うまくいく型

実用になる構えはトリアージです。各項目を、その難しさに合った経路へ送ります。

項目を三つの経路に振り分ける決定フロー。客観的で一致度の高いものは自動化し、中間のものは標本を検証し、主観的あるいは重大なものは人間のアノテーターへ送る。モデルが得意なところは自動化し、標本を検証し、難しい事例は人に残す

まずラベル付き済みのゴールド標本でモデルを走らせ、全体だけでなくラベルごとに一致度を読みます。人と一致するところでは、その項目をモデルに担わせ、一部を抜き取り検査します。一致度が中くらいのところでは、モデルの提案は残しつつ一件ずつ人に確認させます。ラベルが主観的だったり判断が重大だったりするところは人間のアノテーターに残し、モデルはせいぜいヒントとして使います。どこでモデルが信頼できるかを学ぶにつれて配分は動きますが、形は変わりません。

一つの歯止めが全体を通して効きます。モデルが一切触れない、人間のみの盲検区画を残しておくことです。それがあなたの物差しです。それがないと自動化バイアスが定着し、検証者はもっともらしい提案を追認し、測った一致度は上がっていくのに実際の品質はそのまま、ということになります。

費用と品質

これを安いモデル対高い人間という構図で語りたくなりますが、それでは本当の取引が隠れます。モデルのラベルは、生成する費用はほぼゼロで、信頼するための費用は実在します。検証のために作ったゴールド集合、人による確認の一巡、抜き取り検査です。人間のラベルは前払いが高く、信頼するための費用が低いのです。大規模で客観的な課題では、検証費用が償却された時点でモデルが総費用で勝ちます。小規模あるいは主観的な課題では、検証の間接費のほうが人にラベル付けさせるより高くつくことがあります。モデルのほうが安いと決めてかからず、自分の課題で計算してください。

Potato でのやり方

Potato は全か無かを迫るのではなく、混合のワークフローを回すために作られています。AI サポートを有効にしてモデルに事前アノテーションさせ、人に検証させます。

yaml
ai_support:
  enabled: true
  endpoint_type: openai       # or anthropic, gemini, ollama, ...
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
    temperature: 0.2

モデルがラベルを提案し、アノテーターが確定または修正し、保存されるのは確認済みのラベルです。振り分けそのものにはトリアージスキームが使えます。人がモデルの提案を素早く通し、明らかなものは残して、それ以外を詳しいアノテーションへ回すためのフラグを立てられます。

モデルを人と突き合わせて測るには、一致度用に取り分けた項目に事前入力しないでください。盲検の一区画を残し、人にラベルを付けさせ、Cohen's や Fleiss' の κ で比較します。ラベルごとのその数値が、課題のどの部分をどの経路に置くかを決めます。自動化バイアスへの歯止めは事前アノテーションのガイドでより詳しく扱っています。

参考文献