Supporto AI
Integra LLM per un'assistenza intelligente all'annotazione.
Supporto AI
Potato 2.0 include il supporto integrato per i Large Language Model (LLM) per assistere gli annotatori con suggerimenti intelligenti, evidenziazione di parole chiave e proposte di etichette.
Provider Supportati
Potato supporta più provider LLM:
Provider Cloud:
- 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
Locale/Self-Hosted:
- Ollama (esegui modelli localmente)
- vLLM (inferenza self-hosted ad alte prestazioni)
Configurazione
Impostazione di Base
Aggiungi una sezione ai_support al tuo file di configurazione:
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
temperature: 0.3
max_tokens: 500Configurazione Specifica per Provider
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 Locale
ai_support:
enabled: true
endpoint_type: ollama
ai_config:
model: llama2
base_url: http://localhost:11434vLLM (Self-Hosted)
ai_support:
enabled: true
endpoint_type: vllm
ai_config:
model: meta-llama/Llama-2-7b-chat-hf
base_url: http://localhost:8000/v1Endpoint AI Visivi
Novità della v2.1.0
Per i compiti di annotazione di immagini e video, Potato supporta endpoint di visione dedicati tra cui YOLO, Ollama Vision, OpenAI Vision e Anthropic Vision. Questi abilitano il rilevamento di oggetti, la pre-annotazione e la classificazione visiva.
Vedi Supporto AI Visivo per i dettagli completi della configurazione.
Funzionalità AI
Il supporto AI di Potato offre cinque capacità principali:
1. Suggerimenti Intelligenti
Fornisce indicazioni contestuali agli annotatori senza rivelare la risposta:
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
# I suggerimenti appaiono come tooltip o barre laterali
features:
hints:
enabled: true2. Evidenziazione di Parole Chiave
Evidenzia automaticamente le parole chiave rilevanti nel testo:
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
features:
keyword_highlighting:
enabled: true
# Le evidenziazioni sono rese come overlay su riquadro sul testo3. Suggerimenti di Etichette
Suggerisce etichette per la considerazione dell'annotatore (mostrate con indicatori di confidenza):
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. Motivazioni delle Etichette
Novità della v2.1.0
Genera spiegazioni bilanciate sul perché ogni etichetta potrebbe applicarsi al testo, aiutando gli annotatori a comprendere il ragionamento alla base delle diverse classificazioni:
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
features:
rationales:
enabled: trueLe motivazioni appaiono come un tooltip che elenca ogni etichetta disponibile con una spiegazione del perché potrebbe applicarsi. Questo è utile per addestrare gli annotatori o quando le decisioni di annotazione sono difficili.
5. Evidenziazione delle Opzioni
Novità della v2.2.0
Evidenziazione assistita da AI delle opzioni più probabilmente corrette per i compiti di annotazione discreta (radio, multiselect, likert, select). Il sistema analizza il contenuto ed evidenzia le opzioni top-k più probabili attenuando quelle meno probabili, mantenendo tutte le opzioni completamente cliccabili.
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: trueVedi Evidenziazione delle Opzioni per i dettagli completi della configurazione.
Complementare: Ordinamento per Diversità
Novità della v2.2.0
Sebbene non sia strettamente una funzionalità AI, l'Ordinamento per Diversità usa embedding sentence-transformer per raggruppare gli elementi e presentarli in un ordine diversificato, riducendo l'affaticamento degli annotatori e migliorando la copertura. Si integra con il supporto AI precaricando automaticamente i suggerimenti AI per gli elementi riordinati.
Caching e Prestazioni
Le risposte AI possono essere memorizzate nella cache per migliorare le prestazioni e ridurre i costi 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-genera suggerimenti all'avvio e precarica i successivi
prefetch:
warm_up_page_count: 100
on_next: 5
on_prev: 2Strategie di Caching
- Riscaldamento: Pre-genera i suggerimenti AI per un batch iniziale di istanze quando il server si avvia (
warm_up_page_count) - Precaricamento: Genera suggerimenti per le istanze successive mentre gli annotatori navigano avanti (
on_next) o indietro (on_prev) - Persistenza su Disco: Le cache vengono salvate su disco e persistono tra i riavvii del server
Prompt Personalizzati
Potato include prompt predefiniti per ogni tipo di annotazione, memorizzati in potato/ai/prompt/. Puoi personalizzarli per il tuo compito specifico:
| Tipo di Annotazione | File Prompt |
|---|---|
| Pulsanti radio | radio_prompt.txt |
| Scale Likert | likert_prompt.txt |
| Caselle di controllo | checkbox_prompt.txt |
| Annotazione span | span_prompt.txt |
| Cursori | slider_prompt.txt |
| Elenchi a discesa | dropdown_prompt.txt |
| Input numerico | number_prompt.txt |
| Input testo | text_prompt.txt |
I prompt supportano la sostituzione di variabili:
{text}- Il testo del documento{labels}- Le etichette disponibili per lo schema{description}- La descrizione dello schema
Supporto Multi-Schema
Per i compiti con più schemi di annotazione, puoi abilitare il supporto AI in modo selettivo:
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
# Abilita solo per schemi specifici
special_include:
- page: 1
schema: sentiment
- page: 1
schema: topicsEsempio Completo
Configurazione completa per l'analisi del sentiment assistita da 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
# Le evidenziazioni sono rese come overlay su riquadro sul testo
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: trueVariabili d'Ambiente
Memorizza le chiavi API in modo sicuro usando le variabili d'ambiente:
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export GOOGLE_API_KEY="..."Fai riferimento a queste nella configurazione con la sintassi ${VARIABLE_NAME}.
Considerazioni sui Costi
- Le chiamate AI vengono effettuate per istanza per impostazione predefinita
- Abilita il caching per ridurre le chiamate API ripetute
- Usa il riscaldamento e il precaricamento per pre-generare i suggerimenti
- Considera l'uso di modelli più piccoli/economici per i compiti semplici
- I provider locali (Ollama, vLLM) non hanno costi API
Best Practice
- Usa l'AI come assistente, non come sostituto - Lascia agli annotatori le decisioni finali
- Abilita il caching per la produzione - Riduce la latenza e i costi
- Testa i prompt accuratamente - I prompt personalizzati devono essere validati
- Monitora i costi API - Tieni traccia dell'utilizzo specialmente con i provider cloud
- Considera i provider locali - Ollama o vLLM per l'annotazione ad alto volume
- Proteggi le credenziali API - Usa le variabili d'ambiente, non committare mai le chiavi
Ulteriori Letture
- Evidenziazione delle Opzioni - Guida alle opzioni assistita da AI
- Ordinamento per Diversità - Diversificazione degli elementi basata su embedding
- Supporto AI Visivo - AI per l'annotazione di immagini e video
- Etichettatura ICL - Apprendimento in-context assistito da AI
- Apprendimento Attivo - Prioritizzazione delle istanze basata su ML
- Funzionalità di Produttività - Evidenziazione di parole chiave e suggerimenti
Per i dettagli di implementazione e i template di prompt personalizzati, consulta la documentazione sorgente.