AIサポート
LLMを統合してインテリジェントなアノテーション支援を実現する。
AIサポート
Potato 2.0には、アノテーターにインテリジェントなヒント、キーワードハイライト、ラベル提案を提供するための大規模言語モデル(LLM)のビルトインサポートが含まれています。
サポートされるプロバイダー
Potatoは複数のLLMプロバイダーをサポートしています:
クラウドプロバイダー:
- OpenAI(GPT-4、GPT-4 Turbo、GPT-3.5)
- Anthropic(Claude 3、Claude 3.5)
- Google(Gemini 1.5 Pro、Gemini 2.0 Flash)
- Hugging Face
- OpenRouter
ローカル/セルフホスト:
- Ollama(ローカルでモデルを実行)
- vLLM(高性能セルフホスト推論)
設定
基本設定
設定ファイルにai_supportセクションを追加します:
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
temperature: 0.3
max_tokens: 500プロバイダー固有の設定
OpenAI
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4o
api_key: ${OPENAI_API_KEY}
temperature: 0.3
max_tokens: 500Anthropic Claude
ai_support:
enabled: true
endpoint_type: anthropic
ai_config:
model: claude-3-sonnet-20240229
api_key: ${ANTHROPIC_API_KEY}
temperature: 0.3
max_tokens: 500Google Gemini
ai_support:
enabled: true
endpoint_type: google
ai_config:
model: gemini-1.5-pro
api_key: ${GOOGLE_API_KEY}ローカルOllama
ai_support:
enabled: true
endpoint_type: ollama
ai_config:
model: llama2
base_url: http://localhost:11434vLLM(セルフホスト)
ai_support:
enabled: true
endpoint_type: vllm
ai_config:
model: meta-llama/Llama-2-7b-chat-hf
base_url: http://localhost:8000/v1ビジュアルAIエンドポイント
v2.1.0で新規追加
画像やビデオのアノテーションタスク向けに、PotatoはYOLO、Ollama Vision、OpenAI Vision、Anthropic Visionなどの専用ビジョンエンドポイントをサポートしています。これらにより、オブジェクト検出、事前アノテーション、視覚的分類が可能になります。
完全な設定の詳細はビジュアルAIサポートを参照してください。
AI機能
PotatoのAIサポートは5つの主要な機能を提供します:
1. インテリジェントヒント
回答を明かさずにアノテーターに文脈に即したガイダンスを提供する:
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
# Hints appear as tooltips or sidebars
features:
hints:
enabled: true2. キーワードハイライト
テキスト内の関連キーワードを自動的にハイライトする:
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
features:
keyword_highlighting:
enabled: true
# Highlights are rendered as box overlays on the text3. ラベル提案
アノテーターの検討のためにラベルを提案する(信頼度インジケーター付き):
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
features:
label_suggestions:
enabled: true
show_confidence: true4. ラベル根拠
v2.1.0で新規追加
各ラベルがテキストに該当する可能性がある理由についてバランスの取れた説明を生成し、アノテーターが異なる分類の背後にある推論を理解するのを助けます:
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
features:
rationales:
enabled: true根拠は、各利用可能なラベルとそれが該当する可能性がある理由の説明をリスト化するツールチップとして表示されます。これはアノテーターのトレーニングやアノテーション判断が困難な場合に有用です。
5. オプションハイライト
v2.2.0で新規追加
離散的なアノテーションタスク(radio、multiselect、likert、select)向けのAI支援による最も可能性の高い正解オプションのハイライト。システムがコンテンツを分析し、上位k個の可能性の高いオプションをハイライトしながら、可能性の低いオプションを薄く表示します。すべてのオプションは完全にクリック可能なままです。
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4o-mini
api_key: ${OPENAI_API_KEY}
option_highlighting:
enabled: true
top_k: 3
dim_opacity: 0.4
auto_apply: true完全な設定の詳細はオプションハイライトを参照してください。
補完機能:多様性順序付け
v2.2.0で新規追加
厳密にはAI機能ではありませんが、多様性順序付けはsentence-transformerの埋め込みを使用してアイテムをクラスタリングし、多様な順序で提示することで、アノテーターの疲労を軽減し、カバレッジを向上させます。並べ替えられたアイテムに対してAIヒントを自動的にプリフェッチすることで、AIサポートと統合されます。
キャッシュとパフォーマンス
AIレスポンスはパフォーマンス向上とAPIコスト削減のためにキャッシュできます:
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
cache_config:
disk_cache:
enabled: true
path: "ai_cache/cache.json"
# Pre-generate hints on startup and prefetch upcoming
prefetch:
warm_up_page_count: 100
on_next: 5
on_prev: 2キャッシュ戦略
- ウォームアップ:サーバー起動時にインスタンスの初期バッチに対してAIヒントを事前生成する(
warm_up_page_count) - プリフェッチ:アノテーターが前方(
on_next)または後方(on_prev)にナビゲートするとき、次のインスタンスのヒントを生成する - ディスク永続化:キャッシュはディスクに保存され、サーバー再起動後も持続する
カスタムプロンプト
Potatoには各アノテーションタイプのデフォルトプロンプトがpotato/ai/prompt/に格納されています。特定のタスクに合わせてカスタマイズできます:
| アノテーションタイプ | プロンプトファイル |
|---|---|
| ラジオボタン | radio_prompt.txt |
| リッカート尺度 | likert_prompt.txt |
| チェックボックス | checkbox_prompt.txt |
| スパンアノテーション | span_prompt.txt |
| スライダー | slider_prompt.txt |
| ドロップダウン | dropdown_prompt.txt |
| 数値入力 | number_prompt.txt |
| テキスト入力 | text_prompt.txt |
プロンプトは変数置換をサポートしています:
{text}- ドキュメントテキスト{labels}- スキーマで利用可能なラベル{description}- スキーマの説明
マルチスキーマサポート
複数のアノテーションスキーマを持つタスクでは、AIサポートを選択的に有効にできます:
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
# Only enable for specific schemes
special_include:
- page: 1
schema: sentiment
- page: 1
schema: topics完全な例
AI支援感情分析の完全な設定:
annotation_task_name: "AI-Assisted Sentiment Analysis"
task_dir: "."
port: 8000
data_files:
- "data/reviews.json"
item_properties:
id_key: id
text_key: text
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "What is the sentiment of this review?"
labels:
- Positive
- Negative
- Neutral
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
temperature: 0.3
max_tokens: 500
features:
hints:
enabled: true
keyword_highlighting:
enabled: true
# Highlights are rendered as box overlays on the text
label_suggestions:
enabled: true
show_confidence: true
cache_config:
disk_cache:
enabled: true
path: "ai_cache/cache.json"
prefetch:
warm_up_page_count: 50
on_next: 3
on_prev: 2
output_annotation_dir: "output/"
output_annotation_format: "json"
allow_all_users: true環境変数
環境変数を使用してAPIキーを安全に保存する:
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export GOOGLE_API_KEY="..."設定で${VARIABLE_NAME}構文で参照します。
コストに関する考慮事項
- AI呼び出しはデフォルトでインスタンスごとに行われる
- キャッシュを有効にして繰り返しのAPI呼び出しを削減する
- ウォームアップとプリフェッチを使用してヒントを事前生成する
- 単純なタスクにはより小さい/安価なモデルの使用を検討する
- ローカルプロバイダー(Ollama、vLLM)にはAPIコストがかからない
ベストプラクティス
- AIを置換ではなく支援として使用する - 最終判断はアノテーターに任せる
- 本番ではキャッシュを有効にする - レイテンシーとコストを削減する
- プロンプトを徹底的にテストする - カスタムプロンプトは検証する必要がある
- APIコストを監視する - 特にクラウドプロバイダーでの使用状況を追跡する
- ローカルプロバイダーを検討する - 大量アノテーション向けにOllamaやvLLMを使用する
- API認証情報を保護する - 環境変数を使用し、キーをコミットしない
関連情報
- オプションハイライト - AI支援オプションガイダンス
- 多様性順序付け - 埋め込みベースのアイテム多様化
- ビジュアルAIサポート - 画像・ビデオアノテーション向けAI
- ICLラベリング - AI支援インコンテキスト学習
- 能動学習 - ML基盤のインスタンス優先順位付け
- 生産性機能 - キーワードハイライトと提案
実装の詳細とカスタムプロンプトテンプレートについては、ソースドキュメントを参照してください。