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 支援提供五種主要功能:
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 新增
AI 輔助高亮離散標註任務(radio、multiselect、likert、select)中最可能正確的選項。系統分析內容並高亮 top-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 量表 | 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:
features:
cache_config:
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 輔助上下文學習
- 主動學習 - 基於機器學習的實例優先順序
- 生產力功能 - 關鍵詞高亮和建議
有關實現細節和自定義提示模板,請參閱原始碼文件。