Was ist Datenannotation?
Eine Einführung in einfacher Sprache: was Datenannotation ist, welche Aufgabentypen es gibt (Klassifikation, Span-Labeling, Ranking, Freitext) und wie ein Annotationsprojekt mit Potato abläuft.
Datenannotation heißt, Rohdaten mit Labels zu versehen, also Text, Bilder, Audio, Video oder Modellausgaben, damit sich diese Daten messen und vergleichen oder zum Trainieren und Prüfen von Machine-Learning-Modellen verwenden lassen. Ein Label kann eine Sentiment-Kategorie für einen Tweet sein, ein markierter Name in einem Satz, eine Qualitätsbewertung von 1–5 für die Antwort eines Chatbots oder eine Bounding Box um einen Fußgänger auf einem Foto.
Für Annotation stehen auch die Begriffe Data Labeling, Tagging oder Kodieren (so heißt es in den Sozialwissenschaften). Siehe Datenannotation und den verwandten Begriff des gelabelten Trainingsdatensatzes auf Wikipedia.
Warum das wichtig ist
Überwachtes maschinelles Lernen lernt aus Beispielen, bei denen die richtige Antwort schon dabeisteht. Wie gut diese Antworten sind, setzt die Obergrenze für die Qualität des Modells, weshalb sorgfältige Annotation oft der Teil eines Projekts mit der größten Wirkung ist. Über Annotation bewertest du außerdem ein Modell: Ob ein KI-System richtig liegt, muss in aller Regel ein Mensch beurteilen.
Die wichtigsten Arten von Annotationsaufgaben
Die meisten Projekte lassen sich einigen wenigen Familien zuordnen. Jede davon entspricht einem oder mehreren Bedienelementen in Potato (siehe Annotationsschemata).
- Klassifikation: eine oder mehrere Kategorien für ein ganzes Element wählen. Beispiel: Ist diese Rezension positiv, negativ oder neutral? Siehe Textklassifikation.
- Span-Labeling: einen Bereich innerhalb eines Elements markieren, etwa einen Namen in einem Satz oder einen Abschnitt eines Audioclips. Siehe Span-Annotation.
- Bewerten und Skalieren: ein Element auf einer Skala einordnen, etwa mit einem Qualitätsurteil von 1–5. Siehe Bewertungsskalen.
- Ranking und Vergleich: Elemente sortieren oder das bessere von zweien wählen. Siehe Pairwise und Best–Worst-Scaling.
- Strukturierte Annotation: Spans zu Relationen verbinden, Koreferenzketten bilden oder Ereignisse annotieren. Siehe Relations- und Ereignisextraktion.
- Freitext: eine Erklärung, eine Korrektur oder eine Transkription schreiben.
Ein minimales Beispiel
Eine Sentiment-Aufgabe sind in Potato ein paar Zeilen YAML. Der Block annotation_schemes legt fest, welche Labels die annotierende Person zu sehen bekommt:
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "What is the overall sentiment of this review?"
labels:
- Positive
- Negative
- NeutralMehr braucht es für die Oberfläche nicht. Du lieferst die Daten, rufst potato start auf, und die Annotierenden labeln im Browser.
Wie ein Projekt üblicherweise abläuft
- Aufgabe festlegen. Schreib die Frage und den Labelsatz auf.
- Richtlinien schreiben. Gib den Annotierenden Regeln und Beispiele an die Hand. Siehe Annotationsrichtlinien schreiben.
- Pilot. Labelt eine kleine Charge, sucht die Uneinigkeiten und schärft die Richtlinien nach.
- Mit Überlappung annotieren. Lass mehrere Personen dieselben Elemente labeln, damit du die Übereinstimmung messen kannst.
- Übereinstimmung messen. Siehe Inter-Annotator-Übereinstimmung.
- Adjudizieren und exportieren. Löst die Uneinigkeiten auf und exportiert für Training oder Auswertung.
Weiterführende Lektüre
- Das passende Annotationsschema wählen
- Schnellstart, damit Potato in fünf Minuten läuft
- Referenz zu Annotationsschemata