Texttrainingsdaten für die Klassifizierung vorbereiten

.

Auf dieser Seite wird beschrieben, wie Sie Textdaten für die Verwendung in einem Vertex AI-Dataset vorbereiten, um Klassifizierungsmodelle mit einem und mehreren Labels zu trainieren.

Klassifizierung mit einem einzigen Label

Bei der Klassifizierung mit einem einzigen Label bestehen Trainingsdaten aus Dokumenten und der Klassifizierungskategorie, die für diese Dokumente gelten. Bei der Klassifizierung mit einem einzigen Label kann einem Dokument nur ein Label zugewiesen werden.

Datenanforderungen

  • Sie müssen mindestens 20 und können nicht mehr als 1.000.000 Trainingsdokumente bereitstellen.
  • Geben Sie mindestens zwei und nicht mehr als 5.000 eindeutige Kategorielabels an.
  • Sie müssen jedes Label auf mindestens zehn Dokumente anwenden.
  • Bei der Klassifizierung mit mehreren Labels können Sie ein oder mehrere Labels für ein Dokument anwenden.
  • Sie haben die Möglichkeit, Dokumente inline einzubinden oder auf TXT-Dateien in Cloud Storage-Buckets zu verweisen.

Best Practices für Textdaten zum Trainieren von AutoML-Modellen

Die folgenden Empfehlungen gelten für Datasets, die zum Trainieren von AutoML-Modellen verwendet werden.

  • Verwenden Sie Trainingsdaten, die ebenso vielfältig sind, wie die Daten, für die Vorhersagen erstellt werden. Binden Sie Dokumente unterschiedlicher Länge ein, Dokumente, die von verschiedenen Personen verfasst wurden, sowie Dokumente, die unterschiedliche Formulierungen oder Stile verwenden, usw.
  • Verwenden Sie Dokumente, die von einem menschlichen Leser leicht kategorisiert werden können. AutoML-Modelle können in der Regel keine Vorhersagen für Kategorielabels treffen, die von Menschen nicht zugewiesen werden können. Wenn also ein Mensch nicht darin unterwiesen werden kann, durch das Lesen eines Dokuments ein Label zuzuweisen, kann Ihr Modell wahrscheinlich auch nicht darauf trainiert werden.
  • Stellen Sie möglichst viele Trainingsdokumente pro Label bereit. Sie können die Konfidenzwerte des Modells verbessern, wenn Sie mehr Beispiele pro Label verwenden. Trainieren Sie ein Modell anhand von 50 Beispielen pro Label und bewerten Sie die Ergebnisse. Fügen Sie weitere Beispiele hinzu und trainieren Sie neu, bis Sie Ihre Genauigkeitsziele erreicht haben. Hierfür sind möglicherweise hunderte oder sogar 1.000 Beispiele pro Label erforderlich.
  • Das Modell funktioniert am besten, wenn für das am häufigsten verwendete Label höchstens 100 Mal mehr Dokumente vorhanden sind als für das am wenigsten verwendete Label. Es wird empfohlen, Labels mit sehr geringer Häufigkeit zu entfernen.
  • Binden Sie nach Möglichkeit ein Label vom Typ "Weitere" (z. B. None_of_the_above) für Dokumente ein, die keinem Ihrer definierten Labels entsprechen. Wenn Sie beispielsweise nur Dokumente zu den Themen Kunst und Unterhaltung mit Labeln versehen haben, Ihr Dataset jedoch Dokumente zu anderen Themen wie Sport oder Technik enthält, versehen Sie die Dokumente zu anderen Themen mit dem Label None_of_the_above. Ohne ein solches Label versucht das trainierte Modell, alle Dokumente einem der definierten Labels zuzuweisen, auch Dokumente, für die diese Labels insgesamt ungeeignet sind.
  • Wenn Sie eine große Anzahl an Dokumenten haben, die derzeit nicht mit Ihren Labels übereinstimmen, filtern Sie sie heraus, damit Ihr Modell Vorhersagen nicht aufgrund eines Labels der Kategorie "Weitere" verzerrt. Sie können beispielsweise mit einem Filtermodell vorhersagen, ob ein Dokument den aktuellen Labels entspricht oder der Kategorie "Weitere" zuzurechnen ist. Durch das Filtern haben Sie dann ein weiteres Modell, das nur Dokumente der thematisch definierten Bereiche klassifiziert.

Eingabedateien

Die Klassifizierung mit einem einzigen Label unterstützt JSON Lines- und CSV-Eingabedateien. Sie können für ein bestimmtes Dokument nur ein Label (Annotation) angeben. In den folgenden Abschnitten werden die Eingabedateien erläutert und es werden Beispiele für jeden Dateityp dargestellt.

JSON Lines

Das Format, die Feldnamen und die Werttypen für JSON Lines-Dateien werden durch eine Schemadatei bestimmt, die aus öffentlich zugänglichen YAML-Dateien besteht.

Sie können die Schemadatei für die Klassifizierung mit einem einzigen Label von folgendem Cloud Storage-Speicherort herunterladen:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_single_label_io_format_1.0.0.yaml

Beispiel für JSON Lines

Das folgende Beispiel zeigt, wie Sie mit dem Schema eine eigene JSON Lines-Datei erstellen können. Das Beispiel nutzt Zeilenumbrüche für eine bessere Lesbarkeit. Setzen Sie Zeilenumbrüche in Ihren JSON-Dateien nur nach jedem Dokument. Das Feld dataItemResourceLabels gibt beispielsweise ml_use an und ist optional.

{
  "classificationAnnotation": {
    "displayName": "label"
  },
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "classificationAnnotation": {
    "displayName": "label2"
  },
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

CSV

Jede Zeile in einer CSV-Datei verweist auf ein einzelnes Dokument. Das folgende Beispiel zeigt das allgemeine Format einer gültigen CSV-Datei. Die Spalte ml_use ist optional.

[ml_use],gcs_file_uri|"inline_text",label

Das folgende Snippet ist ein Beispiel für eine CSV-Eingabedatei.

test,gs://path_to_file,label1
test,"inline_text",label2
training,gs://path_to_file,label3
validation,gs://path_to_file,label1

Klassifizierung mit mehreren Labels

Bei der Klassifizierung mit mehreren Labels bestehen Trainingsdaten aus Dokumenten und den Klassifizierungskategorien, die für diese Dokumente gelten. Durch die Klassifizierung mit mehreren Labels können einem Dokument ein oder mehrere Labels zugewiesen werden.

Datenanforderungen

  • Sie müssen mindestens 20 und können nicht mehr als 1.000.000 Trainingsdokumente bereitstellen.
  • Geben Sie mindestens zwei und nicht mehr als 5.000 eindeutige Kategorielabels an.
  • Sie müssen jedes Label auf mindestens zehn Dokumente anwenden.
  • Bei der Klassifizierung mit mehreren Labels können Sie ein oder mehrere Labels für ein Dokument anwenden.
  • Sie haben die Möglichkeit, Dokumente inline einzubinden oder auf TXT-Dateien in Cloud Storage-Buckets zu verweisen.

Best Practices für Textdaten zum Trainieren von AutoML-Modellen

Die folgenden Empfehlungen gelten für Datasets, die zum Trainieren von AutoML-Modellen verwendet werden.

  • Verwenden Sie Trainingsdaten, die ebenso vielfältig sind, wie die Daten, für die Vorhersagen erstellt werden. Binden Sie Dokumente unterschiedlicher Länge ein, Dokumente, die von verschiedenen Personen verfasst wurden, sowie Dokumente, die unterschiedliche Formulierungen oder Stile verwenden, usw.
  • Verwenden Sie Dokumente, die von einem menschlichen Leser leicht kategorisiert werden können. AutoML-Modelle können in der Regel keine Vorhersagen für Kategorielabels treffen, die von Menschen nicht zugewiesen werden können. Wenn also ein Mensch nicht darin unterwiesen werden kann, durch das Lesen eines Dokuments ein Label zuzuweisen, kann Ihr Modell wahrscheinlich auch nicht darauf trainiert werden.
  • Wenn Sie eine Klassifizierung mit mehreren Labels verwenden, wenden Sie alle relevanten Labels auf jedes Dokument an. So verwenden Sie, wenn Sie beispielsweise Dokumente mit Labels versehen, die Details zu Arzneimitteln enthalten, eventuell ein Dokument mit den Labels Dosage und Side Effects.
  • Stellen Sie möglichst viele Trainingsdokumente pro Label bereit. Sie können die Konfidenzwerte des Modells verbessern, wenn Sie mehr Beispiele pro Label verwenden. Bessere Konfidenzwerte sind besonders hilfreich, wenn Ihr Modell beim Klassifizieren eines Dokuments mehrere Labels zurückgibt. Trainieren Sie ein Modell anhand von 50 Beispielen pro Label und bewerten Sie die Ergebnisse. Fügen Sie weitere Beispiele hinzu und trainieren Sie neu, bis Sie Ihre Genauigkeitsziele erreicht haben. Hierfür sind möglicherweise hunderte oder sogar 1.000 Beispiele pro Label erforderlich.
  • Das Modell funktioniert am besten, wenn für das am häufigsten verwendete Label höchstens 100 Mal mehr Dokumente vorhanden sind als für das am wenigsten verwendete Label. Es wird empfohlen, Labels mit sehr geringer Häufigkeit zu entfernen.
  • Binden Sie nach Möglichkeit ein Label vom Typ "Weitere" (z. B. None_of_the_above) für Dokumente ein, die keinem Ihrer definierten Labels entsprechen. Wenn Sie beispielsweise nur Dokumente zu den Themen Kunst und Unterhaltung mit Labeln versehen haben, Ihr Dataset jedoch Dokumente zu anderen Themen wie Sport oder Technik enthält, versehen Sie die Dokumente zu anderen Themen mit dem Label None_of_the_above. Ohne ein solches Label versucht das trainierte Modell, alle Dokumente einem der definierten Labels zuzuweisen, auch Dokumente, für die diese Labels insgesamt ungeeignet sind.
  • Wenn Sie eine große Anzahl an Dokumenten haben, die derzeit nicht mit Ihren Labels übereinstimmen, filtern Sie sie heraus, damit Ihr Modell Vorhersagen nicht aufgrund eines Labels der Kategorie "Weitere" verzerrt. Sie können beispielsweise mit einem Filtermodell vorhersagen, ob ein Dokument den aktuellen Labels entspricht oder der Kategorie "Weitere" zuzurechnen ist. Durch das Filtern haben Sie dann ein weiteres Modell, das nur Dokumente der thematisch definierten Bereiche klassifiziert.

Eingabedateien

Die Klassifizierung mit mehreren Labels unterstützt JSON Lines- und CSV-Eingabedateien. Sie können für ein bestimmtes Dokument mehr als ein Label (Annotation) angeben. In den folgenden Abschnitten werden die Eingabedateien erläutert und es werden Beispiele für jeden Dateityp dargestellt.

JSON Lines

Das Format, die Feldnamen und die Werttypen für JSON Lines-Dateien werden durch eine Schemadatei bestimmt, die aus öffentlich zugänglichen YAML-Dateien besteht.

Sie können die Schemadatei für die Klassifizierung mit mehreren Labels von folgendem Cloud Storage-Speicherort herunterladen:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_multi_label_io_format_1.0.0.yaml

Beispiel für JSON Lines

Das folgende Beispiel zeigt, wie Sie mit dem Schema eine eigene JSON Lines-Datei erstellen können. Das Beispiel nutzt Zeilenumbrüche für eine bessere Lesbarkeit. Setzen Sie Zeilenumbrüche in Ihren JSON-Dateien nur nach jedem Dokument. Das Feld dataItemResourceLabels gibt beispielsweise ml_use an und ist optional.

{
  "classificationAnnotations": [{
    "displayName": "label1"
    },{
    "displayName": "label2"
  }],
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "classificationAnnotations": [{
    "displayName": "label2"
    },{
    "displayName": "label3"
  }],
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

CSV

Jede Zeile in einer CSV-Datei verweist auf ein einzelnes Dokument. Das folgende Beispiel zeigt das allgemeine Format einer gültigen CSV-Datei. Die Spalte ml_use ist optional.

[ml_use],gcs_file_uri|"inline_text",label1,label2,...

Das folgende Snippet ist ein Beispiel für eine CSV-Eingabedatei.

test,gs://path_to_file,label1,label2
test,"inline_text",label3
training,gs://path_to_file,label1,label2,label3
validation,gs://path_to_file,label4,label5