Datenaufteilungen für AutoML-Modelle

Auf dieser Seite wird beschrieben, wie Vertex AI die Trainings-, Validierungs- und Test-Datasets zum Trainieren eines AutoML-Modells verwendet und wie Sie die Aufteilung Ihrer Daten in diese drei Datasets steuern können. AutoML verwendet Datenaufteilungen unterschiedlich je nach Datentyp der Trainingsdaten.

Auf dieser Seite werden Datenaufteilungen für Bild-, Text- und Videodaten beschrieben. Informationen zu Datenaufteilungen für Tabellendaten finden Sie unter Datenaufteilungen für Tabellendaten.

Bild

Bei Bild-Datasets nutzt AutoML das Trainings-Dataset zum Trainieren des Modells und das Validierungs-Dataset zum Validieren der Ergebnisse, die das Modell während des Trainings zurückgibt. Nach Abschluss des Trainings verwendet AutoML das Test-Dataset, um die endgültigen Bewertungsmesswerte bereitzustellen.

Text

Bei Text-Datasets werden die Trainings- und Validierungs-Datasets verwendet, um verschiedene Kombinationen aus Vorverarbeitungs-, Architektur- und Hyperparameteroptionen auszuprobieren. Die Qualität der resultierenden Trainingsmodelle wird anschließend mit dem Validierungs-Dataset bewertet. Dabei wird außerdem ermittelt, welche zusätzlichen Optionskombinationen nützlich sein könnten.

Wenn sich durch weitere Bewertungen keine weiteren Qualitätsverbesserungen mehr ergeben, wird die Modellversion als das endgültige, leistungsstärkste trainierte Modell erachtet. Als Nächstes trainiert Vertex AI zwei weitere Modelle mithilfe der in der parallelen Abstimmungsphase ermittelten Parameter und Architektur:

  1. Ein Modell wird mit Ihren Trainings- und Validierungs-Datasets trainiert.

    Vertex AI erstellt die Messwerte für die Modellbewertung für dieses Modell mithilfe des Test-Datasets. Hierbei wird zum ersten Mal das Test-Dataset verwendet. Durch diesen Ansatz liefern die abschließenden Bewertungsmesswerte ein verzerrungsfreies Abbild der Leistung des endgültigen Trainingsmodells in der Produktion.

  2. Ein Modell wird mit Ihren Trainings-, Validierungs- und Test-Datasets trainiert.

    Mit diesem Modell fordern Sie Vorhersagen an.

Video

Bei Video-Datasets nutzt AutoML das Trainings-Dataset, um das Modell zu trainieren, und dann das Test-Dataset, um die endgültigen Bewertungsmesswerte bereitzustellen. Das Validierungs-Dataset wird für Video-Datasets nicht verwendet.

Sie können festlegen, dass Vertex AI Ihre Daten automatisch aufteilt. Die Daten werden nach einem Prozentsatz zufällig in die drei Datasets aufgeteilt. Dies ist die einfachste Möglichkeit, Daten aufzuteilen, und es funktioniert in den meisten Fällen gut.

Festgelegt Text Bild Video
Training 80 80 80
Validierung 10 10
Test 10 10 20

Übernehmen Sie zur Bestätigung der Standarddatenaufteilung die Standardeinstellung in der Google Cloud Console oder lassen Sie das Feld Split für die API leer.

Wenn Sie festlegen möchten, wie die Daten in Datasets aufgeteilt werden, haben Sie folgende Möglichkeiten:

Sie wählen nur eine dieser Optionen aus. Dies entscheiden Sie beim Trainieren des Modells. Einige dieser Optionen erfordern Änderungen an den Trainingsdaten (z. B. am Label ml_use). Sie müssen diese Optionen nicht verwenden, um Daten oder Labels für die Datenaufteilungsoptionen hinzuzufügen. Sie können beim Trainieren Ihres Modells noch eine andere Option auswählen.

Manuelle Aufteilung für unstrukturierte Daten

Die manuelle Aufteilung wird auch als "vordefinierte Aufteilung" bezeichnet.

Wenn Sie die Datenaufteilung mit dem Label ml_use steuern möchten, müssen Sie das Label ml_use für Ihre Daten festlegen.

Wert für das Label „ml_use“ festlegen

Sie können das Label ml_use für Vision-, Video- und Textdaten zum Importzeitpunkt (pro Datenelement oder für die gesamte Importdatei) festlegen oder nach dem Datenimport mithilfe der Google Cloud Console.

ml_use für einzelne Datenelemente zum Importzeitpunkt festlegen

Sie können das Label ml_use für jedes Datenelement festlegen, indem Sie einen Wert für das Feld aiplatform.googleapis.com/ml_use in Ihre JSON Lines-Daten aufnehmen oder den Wert der ersten Spalte der CSV-Datei festlegen. Details finden Sie in den Informationen zum Vorbereiten von Daten für Ihren Datentyp.

Wenn Datenelemente in Ihren Daten wiederholt werden, also wenn z. B. ein Video-, Bild- oder Text-Snippet mehrmals in Ihrer Importdatei vorkommt, verwendet Vertex AI den Wert ml_use für das erste Datenelement, das es ermittelt, und ignoriert alle nachfolgenden ml_use-Werte. Das erste ermittelte Element ist nicht unbedingt das Element, das sich am nächsten am Anfang der Uploaddatei befindet.

ml_use für vollständige Uploaddateien festlegen

Wenn die Daten nach verschiedenen ml_use-Werten in verschiedene Uploaddateien sortiert werden können, können Sie den ml_use-Wert für die gesamte Uploaddatei mithilfe des Drop-down-Menüs pro Datei festlegen, wenn Sie die Dateien mit der Google Cloud Console hochladen oder über das Zuordnungsfeld dataItemLabels in der Methode datasets.import.

Wenn Sie ml_use für eine Uploaddatei festlegen und die Datei außerdem ml_use-Werte enthält, haben die ml_use-Werte in der Datei Vorrang vor dem dateiübergreifenden Wert.

ml_use nach dem Import festlegen

Nachdem Sie Ihre Daten hochgeladen haben, können Sie den ml_use-Wert für bestimmte Datenelemente in der Google Cloud Console festlegen oder aktualisieren. Wählen Sie dazu ein oder mehrere Elemente in der Listenansicht aus und verwenden Sie das Drop-down-Menü ML-Nutzung zuweisen.

Wenn Sie eine Datendatei neu hochladen, wird der ml_use-Wert nicht aktualisiert, auch wenn sich die ml_use-Werte geändert haben. Sie können ml_use-Werte nach dem Import nicht mithilfe der Vertex AI API aktualisieren.

Label „ml_use“ verwenden

Wenn Sie Ihr Modell trainieren, geben Sie für die Datenaufteilung in der Google Cloud Console Manuell (Erweitert) an. Wenn Sie das Training über die Vertex AI API ausführen, verwenden Sie das FilterSplit-Objekt und geben labels.aiplatform.googleapis.com/ml_use=training für den Trainingsfilter, labels.aiplatform.googleapis.com/ml_use=validation für Validierungsfilter und labels.aiplatform.googleapis.com/ml_use=test für den Testfilter an. Beispiel:

model = job.run(
dataset=dataset,
model_display_name=_name,
training_filter_split="labels.aiplatform.googleapis.com/ml_use=training",
validation_filter_split="labels.aiplatform.googleapis.com/ml_use=validation",
test_filter_split="labels.aiplatform.googleapis.com/ml_use=test")

Alle Datenelemente mit einem ml_use-Wert werden dann dem angegebenen Dataset zugewiesen. Datenelemente, für die ml_use nicht festgelegt ist, sind vom Trainingsvorgang ausgeschlossen.

Datenfilteraufteilung

Sie können andere Labels (neben ml-use) und andere Felder zur Aufteilung Ihrer Daten verwenden. Nutzen Sie hierfür in der Vertex AI API das Objekt FilterSplit. Beispielsweise können Sie für trainingFilter den Wert labels.flower=rose, für validationFilter den Wert labels.flower=daisy und für testFilter den Wert labels.flower=dahlia festlegen. Mit dieser Einstellung werden alle Daten mit dem Label rose dem Trainings-Dataset hinzugefügt. Alle Daten mit dem Label daisy werden dem Validierungs-Dataset und alle mit dahlia gekennzeichneten Daten werden dem Test-Dataset hinzugefügt.

Wenn Sie nach mehreren Feldern filtern, kann ein Datenelement mehreren Filtern entsprechen. In diesem Fall hat das Trainings-Dataset Vorrang, gefolgt vom Validierungs-Dataset und dann vom Test-Dataset. Anders ausgedrückt: Ein Element wird nur dann in das Test-Dataset aufgenommen, wenn es dem Filter für das Test-Dataset, aber nicht dem Trainings- oder Validierungsfilter entspricht. Wenn ein Element keinem Filter für eines der Datasets entspricht, wird es vom Training ausgeschlossen.

Verwenden Sie keine Kategorien für die Datenaufteilung, die sich auf die Vorhersage des Modells beziehen. Jeder Ihrer Datasets muss den Datenbereich wiedergeben, den das Modell für Vorhersagen verwendet. Verwenden Sie beispielsweise die zuvor beschriebenen Filter nicht für ein Modell, in dem Bilder nach dem Blumentyp kategorisiert werden sollen.

Wenn kein Filter gefunden werden soll, legen Sie ihn auf „-“ (das Minuszeichen) fest.

Mathematische Aufteilung

Die mathematische Aufteilung wird auch als "Bruchaufteilung" bezeichnet.

Standardmäßig werden Ihre Daten gemäß den Standardprozentsätzen für Ihren Datentyp zufällig in die Datasets aufgeteilt. Sie können die Prozentsätze in alle Werte ändern, die insgesamt 100 ergeben. Bei der Vertex AI API werden Bruchzahlen verwendet, die insgesamt 1,0 ergeben.

Die Prozentsätze ändern Sie mit dem Objekt FractionSplit. Für die Bild-, Text- und Videodatentypen können Sie die Aufteilungsprozentsätze beim Trainieren des Modells auch mit der Google Cloud Console aktualisieren.