Texttrainingsdaten vorbereiten

Auf dieser Seite wird beschrieben, wie Sie Textdaten für die Verwendung in einem Vertex AI-Dataset vorbereiten. Das Format der Texteingabedaten hängt vom Ziel ab. Beispielsweise unterscheidet sich die Datenvorbereitung für die Textklassifizierung von der Sentimentanalyse für Text.

In den folgenden Abschnitten werden die Datenanforderungen, Empfehlungen und Eingabedateien für jedes Ziel erläutert.

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 JSONL- oder 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.

JSONL

Das Format, die Feldnamen und die Werttypen für JSONL-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

JSONL-Beispiel

Das folgende Beispiel zeigt, wie Sie das Schema zum Erstellen Ihrer eigenen JSONL-Datei verwenden. 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 JSONL- oder 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.

JSONL

Das Format, die Feldnamen und die Werttypen für JSONL-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

JSONL-Beispiel

Das folgende Beispiel zeigt, wie Sie das Schema zum Erstellen Ihrer eigenen JSONL-Datei verwenden. 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

Entitätsextraktion

Trainingsdaten für die Entitätsextraktion bestehen aus Dokumenten, die mit den Labels annotiert sind, die die Typen der Entitäten angeben, die Ihr Modell ermitteln soll. Beispielsweise können Sie ein Modell zur Entitätsextraktion erstellen, um eine spezielle Terminologie in rechtlichen Dokumenten oder Patenten zu ermitteln. Annotationen geben die Positionen der Entitäten an, die Sie mit einem Label versehen, sowie die Labels selbst.

Wenn Sie strukturierte oder halbstrukturierte Dokumente für ein Dataset zum Trainieren von AutoML-Modellen annotieren, z. B. Rechnungen oder Verträge, kann Vertex AI die Position einer Annotation auf der Seite als Kriterium für das passende Label berücksichtigen. Beispielsweise enthält ein Immobilienvertrag sowohl einen Abnahmetermin als auch ein Vertragsdatum. Vertex AI kann zwischen den Entitäten basierend auf der räumlichen Position der Annotation unterscheiden.

Datenanforderungen

  • Sie müssen mindestens 50 und können nicht mehr als 1.000.000 Trainingsdokumente bereitstellen.
  • Sie müssen mindestens 1 und können nicht mehr als 100 eindeutige Labels bereitstellen, um Entitäten, die Sie extrahieren möchten, zu annotieren.
  • Sie können mit einem Label zwischen 1 und 10 Wörter annotieren.
  • Labelnamen können zwischen 2 und 30 Zeichen lang sein.
  • Sie können Annotationen in Ihre JSONL-Dateien aufnehmen oder später nach dem Hochladen von Dokumenten Annotationen über die Google Cloud Console hinzufügen.
  • 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 jedes Label mindestens 200-mal in Ihrem Trainings-Dataset.
  • Annotieren Sie jedes Vorkommen von Entitäten, die das Modell ermitteln soll.

Eingabedateien

Die Eingabedateien für die Entitätsextraktion müssen das JSONL-Format haben. Das Format, die Feldnamen und die Werttypen für JSONL-Dateien werden durch eine Schemadatei bestimmt, die aus öffentlich zugänglichen YAML-Dateien besteht.

Sie können die Schemadatei für die Entitätsextraktion von folgendem Cloud Storage-Speicherort herunterladen:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_extraction_io_format_1.0.0.yaml

Das folgende Beispiel zeigt, wie Sie das Schema zum Erstellen Ihrer eigenen JSONL-Datei verwenden. 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.


{
    "textSegmentAnnotations": [
      {
        "startOffset":number,
        "endOffset":number,
        "displayName": "label"
      },
      ...
    ],
    "textContent": "inline_text"|"textGcsUri": "gcs_uri_to_file",
    "dataItemResourceLabels": {
      "aiplatform.googleapis.com/ml_use": "training|test|validation"
    }
}

Sie können Dokumente auch mithilfe der Google Cloud Console annotieren. Erstellen Sie eine JSONL-Datei nur mit Inhalt (ohne das Feld textSegmentAnnotations); Dokumente werden ohne Vermerk in Vertex AI hochgeladen.

Sentimentanalyse

Trainingsdaten für die Sentimentanalyse bestehen aus Dokumenten, die mit einem Sentimentwert verknüpft sind, der das Sentiment des Inhalts angibt. Angenommen, Sie haben Tweets zu einem bestimmten Thema wie z. B. Flugreisen. Jedem Tweet ist ein Sentimentwert zugeordnet, der angibt, ob der Tweet positiv, negativ oder neutral ist.

Datenanforderungen

  • Sie müssen mindestens 10, können aber nicht mehr als 100.000 Trainingsdokumente bereitstellen.
  • Ein Sentimentwert muss eine Ganzzahl zwischen 0 und 10 sein. Den maximalen Sentimentwert legen Sie selbst fest. Wenn Sie beispielsweise ermitteln möchten, ob das Sentiment negativ, positiv oder neutral ist, können Sie die Trainingsdaten mit den Sentimentwerten 0 (negativ), 1 (neutral) und 2 (positiv) versehen. Der maximale Sentimentwert für dieses Dataset ist dann 2. Wenn Sie das Sentiment detaillierter erfassen möchten, z. B. durch fünf Sentimentstufen, können Sie die Dokumente von 0 (am negativsten) bis 4 (am positivsten) kennzeichnen.
  • Jeder Sentimentwert muss mindestens auf 10 Dokumente angewendet werden.
  • Die Sentimentwerte müssen aufeinanderfolgende Ganzzahlen sein, die bei null beginnen. Wenn Sie Lücken in den Werten haben oder nicht mit null beginnen, müssen Sie die Werte so ändern, dass sie aus von null beginnenden aufeinanderfolgenden Ganzzahlen bestehen.
  • 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.

  • Stellen Sie mindestens 100 Dokumente pro Sentimentwert bereit.
  • Verwenden Sie eine ausgewogene Anzahl an Dokumenten für jeden Sentimentwert. Mehr Beispiele für bestimmte Sentimentwerte als für andere können Verzerrungen im Modell verursachen.

Eingabedateien

Die Eingabedateien für die Sentimentanalyse können das JSONL- oder das CSV-Format haben.

JSONL

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

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

JSONL-Beispiel

Das folgende Beispiel zeigt, wie Sie das Schema zum Erstellen Ihrer eigenen JSONL-Datei verwenden. 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.


{
  "sentimentAnnotation": {
    "sentiment": number,
    "sentimentMax": number
  },
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
},
{
  "sentimentAnnotation": {
    "sentiment": number,
    "sentimentMax": number
  },
  "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",sentiment,sentimentMax

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

test,gs://path_to_file,sentiment_value,sentiment_max_value
test,"inline_text",sentiment_value,sentiment_max_value
training,gs://path_to_file,sentiment_value,sentiment_max_value
validation,gs://path_to_file,sentiment_value,sentiment_max_value

Nächste Schritte