Skip to content
Diese Seite ist in Ihrer Sprache noch nicht verfügbar. Englische Version wird angezeigt.

Fase di Addestramento

Addestra e qualifica gli annotatori con domande pratiche prima del compito principale.

Fase di Addestramento

Potato 2.0 include una fase di addestramento opzionale che aiuta a qualificare gli annotatori prima che inizino il compito principale di annotazione. Gli annotatori rispondono a domande pratiche con risposte corrette note e ricevono feedback sulle loro prestazioni.

Casi d'Uso

  • Assicurarsi che gli annotatori comprendano il compito
  • Filtrare gli annotatori di bassa qualità
  • Fornire pratica guidata prima delle annotazioni reali
  • Raccogliere metriche di qualità baseline
  • Insegnare le linee guida di annotazione attraverso esempi

Come Funziona

  1. Gli annotatori completano un set di domande di addestramento
  2. Ricevono feedback immediato su ogni risposta
  3. Il progresso viene monitorato rispetto ai criteri di superamento
  4. Solo gli annotatori che superano possono procedere al compito principale

Configurazione

Impostazione di Base

yaml
phases:
  training:
    enabled: true
    data_file: "data/training_data.json"
    schema_name: sentiment  # Quale schema di annotazione addestrare
 
    # Criteri di superamento
    passing_criteria:
      min_correct: 8  # Deve ottenere almeno 8 corrette
      total_questions: 10

Configurazione Completa

yaml
phases:
  training:
    enabled: true
    data_file: "data/training_data.json"
    schema_name: sentiment
 
    passing_criteria:
      # Diverse opzioni di criteri (scegliere uno o combinare)
      min_correct: 8
      require_all_correct: false
      max_mistakes: 3
      max_mistakes_per_question: 2
 
    # Consenti i tentativi
    retries:
      enabled: true
      max_retries: 3
 
    # Mostra le spiegazioni per le risposte errate
    show_explanations: true
 
    # Randomizza l'ordine delle domande
    randomize: true

Criteri di Superamento

Puoi impostare vari criteri per superare la fase di addestramento:

Minimo Corrette

yaml
passing_criteria:
  min_correct: 8
  total_questions: 10

L'annotatore deve rispondere correttamente ad almeno 8 domande su 10.

Richiedi Tutte Corrette

yaml
passing_criteria:
  require_all_correct: true

L'annotatore deve rispondere correttamente a ogni domanda per superare.

Massimo Errori

yaml
passing_criteria:
  max_mistakes: 3

L'annotatore viene squalificato dopo 3 errori totali.

Massimo Errori per Domanda

yaml
passing_criteria:
  max_mistakes_per_question: 2

L'annotatore viene squalificato dopo 2 errori su qualsiasi singola domanda.

Criteri Combinati

yaml
passing_criteria:
  min_correct: 8
  max_mistakes_per_question: 3

Deve ottenere 8 corrette E non fallire una singola domanda più di 3 volte.

Formato dei Dati di Addestramento

I dati di addestramento devono includere le risposte corrette e le spiegazioni opzionali:

json
[
  {
    "id": "train_1",
    "text": "I absolutely love this product! Best purchase ever!",
    "correct_answers": {
      "sentiment": "Positive"
    },
    "explanation": "This text expresses strong positive sentiment with words like 'love' and 'best'."
  },
  {
    "id": "train_2",
    "text": "This is the worst service I've ever experienced.",
    "correct_answers": {
      "sentiment": "Negative"
    },
    "explanation": "The words 'worst' and the overall complaint indicate negative sentiment."
  },
  {
    "id": "train_3",
    "text": "The package arrived on time.",
    "correct_answers": {
      "sentiment": "Neutral"
    },
    "explanation": "This is a factual statement without emotional indicators."
  }
]

Addestramento Multi-Schema

Per i compiti con più schemi di annotazione:

json
{
  "id": "train_1",
  "text": "Apple announced new iPhone features yesterday.",
  "correct_answers": {
    "sentiment": "Neutral",
    "topic": "Technology"
  },
  "explanation": {
    "sentiment": "This is a factual news statement.",
    "topic": "The text discusses Apple and iPhone, which are tech topics."
  }
}

Esperienza dell'Utente

Flusso di Addestramento

  1. L'utente vede l'indicatore "Fase di Addestramento"
  2. La domanda viene visualizzata con il modulo di annotazione
  3. L'utente invia la propria risposta
  4. Il feedback viene mostrato immediatamente:
    • Corretto: Segno di spunta verde, procedi al successivo
    • Errato: X rossa, spiegazione mostrata, opzione di ripetizione

Visualizzazione del Feedback

Quando un annotatore risponde in modo errato:

  • La risposta corretta è evidenziata
  • La spiegazione fornita è mostrata
  • Appare il pulsante di ripetizione (se i tentativi sono abilitati)
  • Il progresso verso i criteri di superamento è visualizzato

Monitoraggio dell'Amministratore

Tieni traccia delle prestazioni dell'addestramento nella dashboard di amministrazione:

  • Tassi di completamento
  • Medie delle risposte corrette
  • Tassi di passaggio/fallimento
  • Tempo trascorso nell'addestramento
  • Accuratezza per domanda

Accedi tramite gli endpoint API di /admin:

text
GET /api/admin/training/stats
GET /api/admin/training/user/{user_id}

Esempio: Addestramento per l'Analisi del Sentiment

yaml
task_name: "Sentiment Analysis"
task_dir: "."
port: 8000
 
# Dati di annotazione principali
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
 
# Configurazione della fase di addestramento
phases:
  training:
    enabled: true
    data_file: "data/training_questions.json"
    schema_name: sentiment
 
    passing_criteria:
      min_correct: 8
      total_questions: 10
      max_mistakes_per_question: 2
 
    retries:
      enabled: true
      max_retries: 3
 
    show_explanations: true
    randomize: true
 
output_annotation_dir: "output/"
output_annotation_format: "json"
allow_all_users: true

Esempio: Addestramento NER

yaml
annotation_schemes:
  - annotation_type: span
    name: entities
    description: "Highlight named entities"
    labels:
      - Person
      - Organization
      - Location
      - Date
 
phases:
  training:
    enabled: true
    data_file: "data/ner_training.json"
    schema_name: entities
 
    passing_criteria:
      min_correct: 7
      total_questions: 10
 
    show_explanations: true

Dati di addestramento per l'annotazione span:

json
{
  "id": "train_1",
  "text": "Tim Cook announced that Apple will open a new store in New York on March 15.",
  "correct_answers": {
    "entities": [
      {"start": 0, "end": 8, "label": "Person"},
      {"start": 24, "end": 29, "label": "Organization"},
      {"start": 54, "end": 62, "label": "Location"},
      {"start": 66, "end": 74, "label": "Date"}
    ]
  },
  "explanation": "Tim Cook is a Person, Apple is an Organization, New York is a Location, and March 15 is a Date."
}

Best Practice

1. Inizia Semplice

Inizia con esempi semplici prima di introdurre i casi limite:

json
[
  {"text": "I love this!", "correct_answers": {"sentiment": "Positive"}},
  {"text": "I hate this!", "correct_answers": {"sentiment": "Negative"}},
  {"text": "It arrived yesterday.", "correct_answers": {"sentiment": "Neutral"}}
]

2. Copri Tutte le Etichette

Assicurati che l'addestramento includa esempi di ogni etichetta possibile:

json
[
  {"correct_answers": {"sentiment": "Positive"}},
  {"correct_answers": {"sentiment": "Negative"}},
  {"correct_answers": {"sentiment": "Neutral"}}
]

3. Scrivi Spiegazioni Chiare

Le spiegazioni dovrebbero insegnare le linee guida di annotazione:

json
{
  "explanation": "While this text mentions a problem, the overall tone is constructive and the reviewer expresses satisfaction with the resolution. This makes it Positive rather than Negative."
}

4. Imposta Criteri Ragionevoli

Non richiedere la perfezione inutilmente:

yaml
# Troppo rigido - potrebbe perdere buoni annotatori
passing_criteria:
  require_all_correct: true
 
# Meglio - consente l'apprendimento
passing_criteria:
  min_correct: 8
  total_questions: 10

5. Includi i Casi Limite

Aggiungi esempi difficili per preparare gli annotatori:

json
{
  "text": "Not bad at all, I guess it could be worse.",
  "correct_answers": {"sentiment": "Neutral"},
  "explanation": "Despite negative words like 'not bad' and 'worse', this is actually a lukewarm endorsement - neutral rather than positive or negative."
}

Integrazione con i Flussi di Lavoro

L'addestramento si integra con i flussi di lavoro multi-fase:

yaml
phases:
  consent:
    enabled: true
    data_file: "data/consent.json"
 
  prestudy:
    enabled: true
    data_file: "data/demographics.json"
 
  instructions:
    enabled: true
    content: "data/instructions.html"
 
  training:
    enabled: true
    data_file: "data/training.json"
    schema_name: sentiment
    passing_criteria:
      min_correct: 8
 
  annotation:
    # Compito principale - sempre abilitato
    enabled: true
 
  poststudy:
    enabled: true
    data_file: "data/feedback.json"

Considerazioni sulle Prestazioni

  • I dati di addestramento vengono caricati all'avvio
  • Il progresso viene memorizzato in memoria per sessione
  • Impatto minimo sulle prestazioni dell'annotazione principale
  • Considera di separare l'addestramento complesso in più fasi

Ulteriori Letture

Per i dettagli di implementazione, consulta la documentazione sorgente.