Datenaufteilungen für AutoML-Modelle

Auf dieser Seite wird gezeigt, wie die drei Datasets (Training, Validierung und Test) für das Trainieren eines AutoML-Modells verwendet werden und wie Sie Ihre Daten in Datasets für AutoML-Modelle aufteilen können.

Verwendung von Datenaufteilungen durch AutoML

AutoML verwendet Datenaufteilungen je nach Datentyp der Trainingsdaten.

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.

Tabellarisch

Bei tabellarischen Modellen verwendet der Trainingsprozess die folgenden Schritte:

  1. Modelltests

    Das Trainings-Dataset wird zum Trainieren von Modellen mit verschiedenen Kombinationen aus Vorverarbeitungs-, Architektur- und Hyperparameteroptionen verwendet. Diese Modelle werden mit dem Validierungs-Datasets hinsichtlich der Qualität bewertet. Dabei wird ermittelt, welche zusätzlichen Optionskombinationen nützlich sein könnten. Die in der parallelen Abstimmungsphase ermittelten besten Parameter und Architekturen werden zum Trainieren von zwei Ensemble-Modellen verwendet, wie unten beschrieben.

  2. Modellbewertung

    Vertex AI trainiert ein Bewertungsmodell und verwendet die Trainings- und Validierungs-Datasets als Trainingsdaten. Vertex AI erstellt die endgültigen 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.

  3. Bereitstellungsmodell

    Ein Modell wird mit den Trainings-, Validierungs- und Test-Datasets trainiert, um die Menge der Trainingsdaten zu maximieren. Mit diesem Modell fordern Sie Vorhersagen an.

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.

Optionen der Datenaufteilung

Sie können festlegen, dass Vertex AI Ihre Daten automatisch aufteilt. In vielen Fällen ist dies der beste Ansatz. Wenn Sie jedoch selbst steuern möchten, wie Ihre Daten in Datasets aufgeteilt werden, haben Sie dazu verschiedene Möglichkeiten.

Zum Aufteilen Ihrer Daten stehen folgende Optionen zur Verfügung:

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. mit dem Label ml_use oder der Spalte „Zeit“. 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.

Standardaufteilung verwenden

Vertex AI kann die Datenaufteilung automatisch für Sie ausführen. Die Daten werden dann abhängig vom Datentyp nach dem Zufallsprinzip in die drei Datasets aufgeteilt. Dies ist die einfachste Möglichkeit, um Daten aufzuteilen und funktioniert in den meisten Fällen gut.

Set Text Bild Video Tabellarisch
Training 80 80 80 80
Validierung 10 10 10
Test 10 10 20 10

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

Label ml_use verwenden

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

Bei allen AutoML-Datentypen außer Tabellen legen Sie in der Cloud Console für das Trainieren Ihres Modells die Option Manuell (Erweitert) für die Datenaufteilung fest. Wenn Sie das Training über die Vertex AI API ausführen, verwenden Sie das FilterSplit-Objekt und geben aiplatform.googleapis.com/ml_use=training für den Trainingsfilter, aiplatform.googleapis.com/ml_use=validation für Validierungsfilter und aiplatform.googleapis.com/ml_use=test für den Testfilter an.

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.

Für den tabellarischen Datentyp verwenden Sie die Spalte für die Datenaufteilung.

Datenfilter verwenden

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.

Sie sollten keine Kategorien für die Datenaufteilung verwenden, die sich auf die Vorhersage des Modells beziehen. Ihre Datasets müssen den Datenbereich wiedergeben, den das Modell für Vorhersagen nutzt. Verwenden Sie beispielsweise die oben 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.

Der Datenfilter wird für Tabellendaten nicht unterstützt.

Prozentsätze ändern

Wenn Sie keine andere Methode zur Steuerung der Datenaufteilung auswählen, werden die Daten gemäß den Standardprozentsätzen für Ihren Datentyp zufällig in die Sets 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 Cloud Console aktualisieren.

Zeitspalte verwenden

Bei tabellarischen Trainingsdaten können Sie für zeitkritische Daten eine Spalte als Zeitspalte festlegen. AI Platform verwendet dann die Zeitspalte für die Datenaufteilung, wobei die zeitlich frühesten Zeilen für das Training, die nächsten Zeilen für die Validierung und die neuesten Zeilen für Tests verwendet werden. Wenn Sie die API nutzen, können Sie auch die Prozentsätze für die Daten angeben, die für die Datasets verwendet werden sollen. Weitere Informationen finden Sie unter Zeitspalte.

Wert für das Label ml_use festlegen

Um die Datenaufteilung mit dem Label ml_use zu steuern, legen Sie zuerst einen Wert für das Label ml_use für Ihre Datenelemente fest.

Wie Sie das Label ml_use für Ihre Daten festlegen, hängt vom Datentyp ab:

ml_use für Vision-, Video- und Textdaten 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 und dafür einen Wert für das Feld aiplatform.googleapis.com/ml_use in Ihre JSONL-Daten aufnehmen oder den Wert der ersten Spalte der CSV-Datei festlegen. Ausführliche Informationen zum Vorbereiten von Daten für Ihren Datentyp finden Sie in diesem Artikel.

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-Dateien in verschiedene Uploaddateien sortiert werden können, können Sie den Wert ml_use für die gesamte Uploaddatei mithilfe des Drop-down-Menüs pro Datei und beim Hochladen von Dateien über der Cloud Console oder über das Zuordnungsfeld dataItemLabels in der Methode datasets.import festlegen.

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 Wert ml_use für bestimmte Datenelemente in der 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 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 Importieren nicht mithilfe der Vertex AI API aktualisieren.

ml_use für tabellarische Daten festlegen

Zur Festlegung von ml_use pro Zeile der Trainingsdaten für Tabellendaten geben Sie eine Spalte für die Datenaufteilung in den Trainingsdaten an und legen diese beim Trainieren des Modells fest. Weitere Informationen finden Sie unter Spalte "Datenaufteilung".