AIサポート
LLMを統合してインテリジェントなアノテーション支援を実現する。
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-4o-mini"
api_key: "${OPENAI_API_KEY}"
temperature: 0.7
max_tokens: 800
include:
all: trueプロバイダー固有の設定
OpenAI
instance_display:
fields:
- {key: body, type: text, label: Ticket}
- {key: screenshot, type: image, label: Screenshot}Anthropic Claude
ai_support:
enabled: true
endpoint_type: "openai"
ai_config:
model: "gpt-4o-mini"
api_key: "${OPENAI_API_KEY}"
include:
all: false
special_include:
"0":
"0": ["hint", "keyword"]
"1":
"1": ["hint"]
"2":
"0": ["hint", "keyword"]
"1": ["hint", "keyword"]Google Gemini
ai_support:
enabled: true
endpoint_type: "openai"
ai_config:
model: "gpt-4o-mini"
api_key: "${OPENAI_API_KEY}"
include:
all: true
cache_config:
disk_cache:
enabled: true
path: "annotation_output/ai_cache.json"
prefetch:
warm_up_page_count: 20
on_next: 10
on_prev: 3ローカルOllama
# config.yaml, committed, no secrets
ai_support:
enabled: true
ai_config_file: ai-config.yaml
ai_config:
temperature: 0.7
max_tokens: 800
include:
all: truevLLM(セルフホスト)
# ai-config.yaml, gitignored
endpoint_type: ollama
model: qwen3:0.6b
base_url: http://localhost:11434ビジュアル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-4o-mini"
api_key: "${OPENAI_API_KEY}"
temperature: 0.7
max_tokens: 800
include:
all: true2. キーワードハイライト
テキスト内の関連キーワードを自動的にハイライトする:
ai_support:
enabled: true
endpoint_type: "anthropic"
ai_config:
model: "claude-sonnet-4-20250514"
api_key: "${ANTHROPIC_API_KEY}"
temperature: 0.7
max_tokens: 800
include:
all: true3. ラベル提案
アノテーターの検討のためにラベルを提案する(信頼度インジケーター付き):
ai_support:
enabled: true
endpoint_type: "gemini"
ai_config:
model: "gemini-2.0-flash-exp"
api_key: "${GOOGLE_API_KEY}"
max_tokens: 800
include:
all: true4. ラベル根拠
v2.1.0で新規追加
各ラベルがテキストに該当する可能性がある理由についてバランスの取れた説明を生成し、アノテーターが異なる分類の背後にある推論を理解するのを助けます:
ai_support:
enabled: true
endpoint_type: "ollama"
ai_config:
model: "llama3.2"
base_url: "http://localhost:11434"
max_tokens: 800
include:
all: true根拠は、各利用可能なラベルとそれが該当する可能性がある理由の説明をリスト化するツールチップとして表示されます。これはアノテーターのトレーニングやアノテーション判断が困難な場合に有用です。
5. オプションハイライト
v2.2.0で新規追加
離散的なアノテーションタスク(radio、multiselect、likert、select)向けのAI支援による最も可能性の高い正解オプションのハイライト。システムがコンテンツを分析し、上位k個の可能性の高いオプションをハイライトしながら、可能性の低いオプションを薄く表示します。すべてのオプションは完全にクリック可能なままです。
ai_support:
enabled: true
endpoint_type: "vllm"
ai_config:
model: "meta-llama/Llama-3.2-3B-Instruct"
base_url: "http://localhost:8000"
max_tokens: 800
include:
all: true完全な設定の詳細はオプションハイライトを参照してください。
補完機能:多様性順序付け
v2.2.0で新規追加
厳密にはAI機能ではありませんが、多様性順序付けはsentence-transformerの埋め込みを使用してアイテムをクラスタリングし、多様な順序で提示することで、アノテーターの疲労を軽減し、カバレッジを向上させます。並べ替えられたアイテムに対してAIヒントを自動的にプリフェッチすることで、AIサポートと統合されます。
キャッシュとパフォーマンス
AIレスポンスはパフォーマンス向上とAPIコスト削減のためにキャッシュできます:
ai_support:
enabled: true
endpoint_type: "open_router"
ai_config:
model: "openai/gpt-4o-mini"
api_key: "${OPENROUTER_API_KEY}"
max_tokens: 800
include:
all: trueキャッシュ戦略
- ウォームアップ:サーバー起動時にインスタンスの初期バッチに対して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: "ollama"
visual_endpoint_type: "ollama_vision"
ai_config:
model: "llama3.2"
include:
all: true
visual_ai_config:
model: "qwen2.5-vl:7b"完全な例
AI支援感情分析の完全な設定:
annotation_task_name: "Sentiment Analysis with AI Support"
task_dir: "."
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 text?"
labels: ["positive", "negative", "neutral"]
- annotation_type: multiselect
name: topics
description: "What topics are discussed?"
labels: ["product", "service", "price", "quality"]
ai_support:
enabled: true
endpoint_type: "openai"
ai_config:
model: "gpt-4o-mini"
api_key: "${OPENAI_API_KEY}"
temperature: 0.7
max_tokens: 800
include:
all: true
cache_config:
disk_cache:
enabled: true
path: "annotation_output/ai_cache.json"
prefetch:
warm_up_page_count: 20
on_next: 10
on_prev: 3
output_annotation_dir: "output/"
export_annotation_format: jsonl
user_config:
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基盤のインスタンス優先順位付け
- 生産性機能 - キーワードハイライトと提案
実装の詳細とカスタムプロンプトテンプレートについては、ソースドキュメントを参照してください。