Skip to content
此页面尚未提供您所选语言的版本,当前显示英文版本。

Trainingsphase

Annotatoren mit Übungsfragen trainieren und qualifizieren, bevor die Hauptaufgabe beginnt.

Trainingsphase

Potato 2.0 enthält eine optionale Trainingsphase, die Annotatoren vor Beginn der Hauptannotationsaufgabe qualifiziert. Annotatoren beantworten Übungsfragen mit bekannten richtigen Antworten und erhalten Feedback zu ihrer Leistung.

Anwendungsfälle

  • Sicherstellen, dass Annotatoren die Aufgabe verstehen
  • Minderwertige Annotatoren herausfiltern
  • Geführtes Üben vor echten Annotationen bereitstellen
  • Grundlegende Qualitätsmetriken erfassen
  • Annotationsrichtlinien durch Beispiele vermitteln

Funktionsweise

  1. Annotatoren beantworten eine Reihe von Trainingsfragen
  2. Sie erhalten sofortiges Feedback zu jeder Antwort
  3. Fortschritt wird gegenüber Bestehenskriterien verfolgt
  4. Nur Annotatoren, die bestehen, können zur Hauptaufgabe übergehen

Konfiguration

Grundeinrichtung

yaml
phases:
  training:
    enabled: true
    data_file: "data/training_data.json"
    schema_name: sentiment  # Which annotation scheme to train
 
    # Passing criteria
    passing_criteria:
      min_correct: 8  # Must get at least 8 correct
      total_questions: 10

Vollständige Konfiguration

yaml
phases:
  training:
    enabled: true
    data_file: "data/training_data.json"
    schema_name: sentiment
 
    passing_criteria:
      # Different criteria options (choose one or combine)
      min_correct: 8
      require_all_correct: false
      max_mistakes: 3
      max_mistakes_per_question: 2
 
    # Allow retries
    retries:
      enabled: true
      max_retries: 3
 
    # Show explanations for incorrect answers
    show_explanations: true
 
    # Randomize question order
    randomize: true

Bestehenskriterien

Verschiedene Kriterien für das Bestehen der Trainingsphase können festgelegt werden:

Mindest-Richtige

yaml
passing_criteria:
  min_correct: 8
  total_questions: 10

Annotator muss mindestens 8 von 10 Fragen richtig beantworten.

Alle richtig erforderlich

yaml
passing_criteria:
  require_all_correct: true

Annotator muss jede Frage richtig beantworten, um zu bestehen.

Maximale Fehler

yaml
passing_criteria:
  max_mistakes: 3

Annotator wird nach 3 Gesamtfehlern disqualifiziert.

Maximale Fehler pro Frage

yaml
passing_criteria:
  max_mistakes_per_question: 2

Annotator wird nach 2 Fehlern bei einer einzelnen Frage disqualifiziert.

Kombinierte Kriterien

yaml
passing_criteria:
  min_correct: 8
  max_mistakes_per_question: 3

Muss 8 richtig UND keine einzelne Frage mehr als 3 Mal falsch beantworten.

Trainingsdatenformat

Trainingsdaten müssen richtige Antworten und optionale Erklärungen enthalten:

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."
  }
]

Multi-Schema-Training

Für Aufgaben mit mehreren Annotationsschemata:

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."
  }
}

Nutzererfahrung

Trainingsablauf

  1. Nutzer sieht den Indikator "Trainingsphase"
  2. Frage wird mit Annotationsformular angezeigt
  3. Nutzer sendet seine Antwort ab
  4. Feedback wird sofort angezeigt:
    • Richtig: Grünes Häkchen, weiter zur nächsten Frage
    • Falsch: Rotes X, Erklärung angezeigt, Wiederholungsoption

Feedback-Anzeige

Wenn ein Annotator falsch antwortet:

  • Die richtige Antwort wird hervorgehoben
  • Die bereitgestellte Erklärung wird angezeigt
  • Wiederholungsschaltfläche erscheint (wenn Wiederholungen aktiviert)
  • Fortschritt zu den Bestehenskriterien wird angezeigt

Admin-Überwachung

Trainingsleistung im Admin-Dashboard verfolgen:

  • Abschlussraten
  • Durchschnittliche richtige Antworten
  • Bestanden-/Nicht-bestanden-Raten
  • Im Training verbrachte Zeit
  • Genauigkeit pro Frage

Zugriff über /admin-API-Endpunkte:

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

Beispiel: Sentiment-Analyse-Training

yaml
task_name: "Sentiment Analysis"
task_dir: "."
port: 8000
 
# Main annotation data
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
 
# Training phase configuration
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

Beispiel: NER-Training

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

Trainingsdaten für Span-Annotation:

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."
}

Bewährte Vorgehensweisen

1. Einfach beginnen

Mit einfachen Beispielen beginnen, bevor Grenzfälle eingeführt werden:

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. Alle Labels abdecken

Sicherstellen, dass das Training Beispiele für jedes mögliche Label enthält:

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

3. Klare Erklärungen schreiben

Erklärungen sollten die Annotationsrichtlinien vermitteln:

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. Angemessene Kriterien festlegen

Keine unnötige Perfektion fordern:

yaml
# Too strict - may lose good annotators
passing_criteria:
  require_all_correct: true
 
# Better - allows for learning
passing_criteria:
  min_correct: 8
  total_questions: 10

5. Grenzfälle einschließen

Knifflige Beispiele hinzufügen, um Annotatoren vorzubereiten:

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."
}

Integration mit Workflows

Training integriert sich in mehrphasige Workflows:

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:
    # Main task - always enabled
    enabled: true
 
  poststudy:
    enabled: true
    data_file: "data/feedback.json"

Leistungsüberlegungen

  • Trainingsdaten werden beim Start geladen
  • Fortschritt wird im Arbeitsspeicher pro Sitzung gespeichert
  • Minimale Auswirkung auf die Hauptannotationsleistung
  • Bei komplexem Training die Aufteilung auf mehrere Phasen erwägen

Weiterführende Informationen

Implementierungsdetails finden Sie in der Quelldokumentation.