データアノテーターとしてのLLM(第2部) – MEGAnno+: 人間とLLMによる協調型アノテーションシステム

LLMを活用したデータアノテーションシリーズのブログの第2部です。シリーズの第1部では、LLMをアノテーションエージェントとして活用する方法と、それに伴う課題や可能性について探りました。本記事では、人間の専門知識とLLMの能力を統合し、LLMアノテーションの課題に対処するための人間-LLM協調型アノテーションツールであるMEGAnno+を紹介します。

MEGAnno+とは?

MEGAnno+は、人間とLLMが協力して信頼性が高く高品質なラベルを生成するための協調型データアノテーションシステムです。既存のアノテーションツールが単にLLMのラベルを収集することに焦点を当てているのに対し、私たちはLLMを人間を介したラベリングフレームワーク内でアノテーションエージェントとして取り入れる方法を研究しました。具体的には、MEGAnno+は以下を提供します:

  • 効果的なLLMエージェントとアノテーション管理
  • 便利で堅牢なLLMアノテーション機能
  • 人間によるLLMラベルの探索と検証
  • Jupyterノートブック内でのシームレスなアノテーション体験

人間-LLM協調型アノテーションワークフロー

MEGAnno+では、シンプルな人間-LLM協調型アノテーションワークフローを提供しています。それは、LLMによるアノテーションとその後の人間による検証です。簡単に言えば、まずLLMエージェントがデータにラベルを付け(図1、ステップ①)、必要に応じて人間がLLMのラベルを検証します。ほとんどのタスクやデータセットでは、LLMが付けたラベルをそのまま使用できますが、一部の困難または不確実なインスタンスについては(図1、ステップ②)、人間がLLMラベルを検証し、正しいものを確認し、誤りを修正します(図1、ステップ③)。この方法により、LLMによるアノテーション部分は自動化され、人間の労力を最も必要な部分に集中させて、最終的なラベルの質を向上させることができます。

図1: 人間-LLM協調型ワークフロー

次に問題となるのは、どのインスタンスを検証するべきかをどう選ぶか(図1、ステップ②)です。このためには、例えば多様性を優先するか、不確実性を最小化するかといった異なる戦略があります。たとえば、LLMの不確実性を測定するために、研究者はしばしばロジット値をモデルの信頼度の近似的な指標として使用します。または、LLMに再度自己検証や自己一貫性の手法を適用して、自分自身を検証させる方法もあります。もう1つの方法は、ユーザーが専門知識を活用して特定のデータスライスをクエリすることです(例: 特定のラベルが割り当てられたデータインスタンスや、特定のキーワードを含むインスタンスを選択)。

設計上の考慮点

LLMアノテーションワークフローで遭遇する可能性のあるさまざまな課題や不便さについて振り返りましょう(これらの一部については前回のブログで議論しました)。まず、プロンプト設計のガイダンスがない場合、試行錯誤によって最終的にタスクに適したプロンプトを見つけることになります。それでもなお、アノテーションされたラベルが事前定義されたラベルの範囲内に収まっていることを確認するために追加の検証が必要です。次に、選択したLLMモデルへのAPI呼び出しがタイムアウトやレート制限違反といったエラーを引き起こし、手動でのエラーハンドリングが必要になる場合があります。また、LLMのアノテーションを検証せずに下流のモデルをトレーニングする自信が持てないこともあるでしょう。しかし、検証対象のアノテーション候補を見直すための支援がなければ、すべてのアノテーションを確認する必要があり、多くの時間がかかります。最後に、将来の再利用のために、良好な動作を示したモデル設定を保存したいと考えるかもしれません。

このワークフローの例から、人間-LLM協調アノテーションシステムの以下の設計要件をまとめました。

  • LLMアノテーションに求められる要件
    • [便利さ] 前処理、API呼び出し、後処理を含むアノテーションワークフローを自動化すること。
    • [カスタマイズ性] モデル設定やプロンプトテンプレートの柔軟な変更をサポートすること。
    • [堅牢性] 手動または最小限の操作でエラーを解決できること。
    • [再利用性] 使用したLLMエージェント(モデルとプロンプトテンプレート)を保存して再利用できること。
    • [メタデータ] アノテーションメタデータとしてLLMの成果物を記録・保存すること。
  • 人間による検証に求められる要件
    • [選択性] 検索クエリや推奨に基づいて検証候補を選択すること。
    • [探索性] ラベルや利用可能なメタデータでフィルタリング、並べ替え、プログラムまたはUI内で検索できること。

これらの要件を満たすために、私たちはJupyterノートブック環境内の探索型アノテーションツールMEGAnnoを拡張する形で本システムを実装しました。MEGAnnoは、選択的かつ探索的な検証を可能にする柔軟な検索および推奨機能を備えており、LLMアノテーションで生成されたデータ、ラベル、補助メタデータを保存する包括的なバックエンドを備えています。

次のセクションでは、MEGAnno+の機能について詳しく紹介します。

MEGAnno+のシステム

システム概要

MEGAnno+は、(1)インタラクティブなウィジェットを備えたPythonクライアントライブラリ、(2)Web APIおよびデータベースサーバーから構成されるバックエンドサービスを提供します。図2に示されているように、ユーザーはMEGAnno+クライアントがインストールされたJupyterノートブックを通じて操作できます。プログラムインターフェースやUIウィジェットを通じて、MEGAnno+クライアントはMEGAnno+サービスと連携します。

ノートブックセッション内では、LLMアノテーションを簡単に取得し、取得したラベルを選択的に検証することができます(図2)。このノートブック内ワークフローは、既存のモデルトレーニングおよびデバッグ環境にシームレスに統合することができます。

LLMアノテーションエージェントは、エージェントと呼び、人間のアノテーターと区別しています。LLMエージェントの判断は、LLMモデル、パラメータ、および使用するプロンプトによって異なります。そのため、モデル構成(例: モデル名、バージョン、ハイパーパラメータ)とプロンプトテンプレートを使用してエージェントを定義します。一度エージェントが登録されると、そのエージェントを使用して特定のデータサブセットにアノテーションジョブを実行できます。

人間による検証では、ユーザーはまずLLMアノテーションジョブからラベルのサブセットを選択(図1、ステップ②)し、それらをUIウィジェットで探索し、LLMラベルを確認または更新します(図1、ステップ③)。

では、LLMアノテーション → 人間による検証ワークフローをステップごとに見ていきましょう。

図2: MEGAnno+システムの概要*

LLMアノテーション

前回の記事で取り上げた一般的な問題に注目しながら、アノテーションワークフローの例を見てみましょう。また、MEGAnno+がどのようにより効率的で便利なプロセスを実現するのかを確認していきます。

図3: LLMアノテーションワークフローのステップ

ステップ1: 前処理

MEGAnno+の前処理ステップでは、タスクの定義、ラベルスキーマの作成、LLMアノテーション用のプロンプト生成を支援します。また、このステップでは、使用可能なLLMモデルを選択し、そのモデル構成を設定することも可能です。

このブログの第1部で紹介した感情分析タスクを例に取り上げます。データサブセットを選択し、以下のラベルスキーマを定義したとします: {name: “sentiment”; options: “positive”, “negative”, or “neutral”}

図4: プロンプトテンプレートUI。ユーザーはタスク指示をカスタマイズし、生成されたプロンプトをプレビューできます。

提供されたタスクとラベルスキーマに基づいて、MEGAnno+はプロンプトテンプレートを生成します。このテンプレートには、タスクの指示と、ラベル抽出プロセスを簡単にするためのフォーマット指示が含まれます。プロンプトに満足できない場合は、少し修正してカスタマイズすることも可能です。ただし、タスク名、ラベルオプション、フォーマット指示など、一部の項目は変更できません。

プロンプトテンプレートに満足したら、MEGAnno+はこれを使用して、サブセット内のすべてのデータに対応するプロンプトを生成します。

図5: モデル構成とプロンプトテンプレートを用いてLLMエージェントが登録されます。

次に、有効なLLMモデルを選択し、その構成を定義する必要があります。LLMアノテーションエージェントを登録する際(図5)、MEGAnno+は以下の有効性チェックを実行します:

・APIキーの検証(該当する場合)
・モデル構成がLLM APIに適合しているかの確認
・生成されたプロンプトがコンテキスト制限内に収まっているかの確認

ステップ2: LLM APIを呼び出してアノテーションジョブを実行

ステップ1で登録したLLMエージェントを使用して、MEGAnno+はLLM APIを呼び出し、選択したデータサブセットに対するアノテーションを取得します。堅牢なワークフローを確保するために、MEGAnno+はLLM API呼び出し中に発生する可能性のあるエラーも処理します。

しかし、ちょっと待ってください!LLMを呼び出す直前に、ラベルだけでなく、モデルの信頼スコアも取得したいことに気付きました。MEGAnno+では、LLMのメタデータ成果物を取得して記録することもできます。アノテーションとともに、ログイットベースの信頼スコア(”conf”)を返すようにMEGAnno+に指定することができます(図6)。

図6: 選択したサブセットに対して、指定したLLMエージェントを使用してLLMアノテーションジョブを実行。

LLMの応答が取得されたら、次のステップでアノテーションを抽出します。

ステップ3: 後処理

このブログの第1部で説明したように、LLMの応答を後処理することはしばしば難しい場合があります。MEGAnno+では、フォーマット指示と堅牢な後処理技術を活用し、このプロセスを簡素化します。また、ラベルやメタデータを抽出し、追加の計算(例: ロジットを使用した信頼スコアの計算)を行うことも可能です。

MEGAnno+の後処理メカニズムは、第1部で説明したいくつかの一般的なエラーに対応しています。これらの問題は、フォーマットエラー(例: 出力がフォーマット指示に従っていない)とラベルクラスエラー(例: 無効なラベルの生成やラベル名のタイプミス)に分類されます。例については図7を参照してください。

図7: MEGAnno+によるLLM応答と後処理結果の例

MEGAnno+では、アノテーションタスクの進捗状況を監視することも可能です(図8)。LLMを呼び出す際に発生したAPIエラーや、後処理中に発生したエラーについての情報が提供されます。さらに、アノテーションタスクの全体的な概要を確認することもできます。この概要では、各ラベルに対応する応答数や、後処理中に発生した無効なLLM応答の頻度が表示されます。このサマリーは、LLMがこのタスクにおいてデータセット上でどのように動作したかを把握するのに役立ちます。

図8: LLMアノテーションジョブのサマリー

これで、必要に応じてタスクに変更を加えることができます。たとえば、プロンプトを少し修正したり、LLM構成を変更して新しいエージェントを定義し、アノテーションタスクを実行することができます。また、データセットやタスク自体を変更し、新しいスキーマを定義することも可能です。さらに、MEGAnno+の機能を使用して、以前に保存したエージェントを取得し、それを使用して新しいデータセットにアノテーションを付けることもできます。

これらの手順を経て、UIウィジェットを使用してLLMアノテーションを検査できるようになります。

人間による検証

人間-LLM協調環境の利点について議論してきました。ここでは、LLMアノテーションプロセスに人間をどのように取り入れるかについて説明します。LLMによるアノテーションが取得された後、MEGAnno+では、人間がアノテーションを検証(つまり、ラベルを正しいと確認するか、ラベルを拒否して正しいラベルを指定する)できるようにします。

では、人間がどのインスタンスを検証すべきかをどのように選ぶのでしょうか?データセット内のすべてのアノテーションを人間が検証するのは、LLMを使った安価で迅速なアノテーションプロセスの目的に反するため、冗長に思えます。代わりに、MEGAnno+は各アノテーションの信頼スコアを計算することで、人間の検証者を支援する可能性を提供します。

もしアノテーションジョブを実行する際に信頼スコアを保存するよう指定していた場合(図6参照)、そのスコアを取得して、LLMラベルとともにUIウィジェットで視覚化することができます(図9)。信頼スコアを並べ替えたりフィルタリングしたりして、LLMが低い信頼スコアを示したアノテーションのみを抽出できます。これにより、人間の検証プロセスが簡素化され、より効率的になります。

図9: データを探索し、LLMラベルを確認または修正するための検証UI

デモをお試しください!

MEGAnno+を簡単な手順で試すことができます。システムのビデオデモも同じウェブサイトでご覧いただけます。このデモ版を気に入った方には朗報です。MEGAnnoのフルバージョンが間もなくリリースされ、MEGAnno+をインストールして独自のアノテーションプロジェクトを作成できるようになります。さらなるアップデートをお楽しみに!

まとめ

私たちは、人間-LLM協調型アノテーションシステムMEGAnno+を紹介しました。このLLMアノテーション → 人間による検証のワークフローを通じて、信頼性が高く高品質なラベルを便利かつ効率的に収集できます。MEGAnno+は、堅牢なLLMアノテーション、選択的な人間検証、LLMやラベル、メタデータの再利用可能な管理をサポートします。

*MEGAnno+のコア概念とデータモデルの詳細については、論文の第4セクションをご参照ください。
*MEGAnno+は特定のLLMモデルをサポートしています。デモの目的では、OpenAI ChatCompletionモデルを使用しています。

詳細については、EACL 2024のデモ論文およびMEGAnnoのウェブページをご覧ください。

Share:

More Blog Posts: