Auf dieser Seite wird gezeigt, wie Sie mithilfe der Google Cloud Console oder der Vertex AI API ein AutoML-Modell zur Objekterkennung aus einem Bild-Dataset trainieren.
AutoML-Modell trainieren
Google Cloud Console
Rufen Sie in der Google Cloud Console im Abschnitt "Vertex AI" die Seite Datasets auf.
Klicken Sie auf den Namen des Datasets, das Sie zum Trainieren Ihres Modells verwenden möchten, um dessen Detailseite zu öffnen.
Klicken Sie auf Neues Modell trainieren.
Wählen Sie als Trainingsmethode
AutoML aus.Wählen Sie im Abschnitt Wählen Sie aus, wo das Modell verwendet werden soll aus, wo das Modell gehostet wird:
Cloud, Edge oder Vertex AI Vision.Klicken Sie auf Weiter.
Geben Sie einen Namen für das Modell ein.
Wenn Sie die Aufteilung Ihrer Trainingsdaten manuell festlegen möchten, maximieren Sie Erweiterte Optionen und wählen Sie eine Option für die Datenaufteilung aus. Weitere Informationen
Klicken Sie auf Training starten.
Das Modelltraining kann viele Stunden dauern, je nach Größe und Komplexität Ihrer Daten und Ihres Trainingsbudgets, sofern Sie eines angegeben haben. Sie können diesen Tab schließen und später zu ihm zurückkehren. Wenn das Training für Ihr Modell abgeschlossen ist, erhalten eine E-Mail.
API
Wählen Sie unten den Tab für Ihre Sprache oder Umgebung aus:
REST
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- LOCATION: Region, in der sich das Dataset befindet und das Modell erstellt wird. Beispiel:
us-central1
. - PROJECT: Ihre Projekt-ID.
- TRAININGPIPELINE_DISPLAYNAME: erforderlich. Ein Anzeigename für die trainingPipeline.
- DATASET_ID: Die ID-Nummer für das Dataset, das für das Training verwendet werden soll.
fractionSplit
: Optional. Eine von mehreren möglichen ML-Aufteilungsoptionen für Ihre Daten. FürfractionSplit
muss die Summe der Werte 1 ergeben. Beispiel:-
{"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
-
- MODEL_DISPLAYNAME*: Ein Anzeigename für das von der TrainingPipeline hochgeladene (erstellte) Modell.
- MODEL_DESCRIPTION*: Eine Beschreibung für das Modell.
- modelToUpload.labels*: Beliebiger Satz von Schlüssel/Wert-Paaren, um Ihre Modelle zu organisieren. Beispiel:
- "env": "prod"
- "tier": "backend"
- MODELTYPE†: Der Typ des in der Cloud gehosteten Modells, das trainiert werden soll. Folgende Optionen sind verfügbar:
CLOUD_1
: Ein Modell, das sich am besten zur Verwendung in Google Cloud eignet und nicht exportiert werden kann. Im Vergleich zu den obigen Modellen CLOUD_HIGH_ACCURACY_1 und CLOUD_LOW_LATENCY_1 werden eine höhere Vorhersagequalität und eine geringere Latenz erwartet.CLOUD_HIGH_ACCURACY_1
: Ein Modell, das sich am besten zur Verwendung in Google Cloud eignet und nicht exportiert werden kann. Dieses Modell hat eine höhere Latenz, sollte jedoch auch eine höhere Vorhersagequalität als andere Cloud-Modelle haben.CLOUD_LOW_LATENCY_1
: Ein Modell, das sich am besten für die Verwendung in Google Cloud eignet und nicht exportiert werden kann. Dieses Modell hat eine geringe Latenz, kann jedoch eine niedrigere Vorhersagequalität als andere Cloud-Modelle haben.
- NODE_HOUR_BUDGET†: Die tatsächliche Höhe der Trainingskosten kann gleich oder kleiner als dieser Wert sein. Für Cloud-Modelle muss das Budget folgenden Wert betragen: 20.000 - 900.000 Milli-Knotenstunden (einschließlich). Der Standardwert ist 216.000, was einem Tag in Echtzeit entspricht, wobei 9 Knoten verwendet werden.
- PROJECT_NUMBER: Die automatisch generierte Projektnummer Ihres Projekts
* | In der Beschreibung der Schemadatei, die Sie in trainingTaskDefinition angeben, wird die Verwendung dieses Felds beschrieben. |
† | In der Schemadatei, die Sie in trainingTaskDefinition angeben, wird dieses Feld deklariert und beschrieben. |
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
JSON-Text der Anfrage:
{ "displayName": "TRAININGPIPELINE_DISPLAYNAME", "inputDataConfig": { "datasetId": "DATASET_ID", "fractionSplit": { "trainingFraction": "DECIMAL", "validationFraction": "DECIMAL", "testFraction": "DECIMAL" } }, "modelToUpload": { "displayName": "MODEL_DISPLAYNAME", "description": "MODEL_DESCRIPTION", "labels": { "KEY": "VALUE" } }, "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_image_object_detection_1.0.0.yaml", "trainingTaskInputs": { "modelType": ["MODELTYPE"], "budgetMilliNodeHours": NODE_HOUR_BUDGET } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content
Die Antwort enthält Informationen zu Spezifikationen sowie die TRAININGPIPELINE_ID.
Java
Bevor Sie dieses Beispiel anwenden, folgen Sie den Java-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Datenaufteilung mit REST steuern
Sie können steuern, wie Ihre Trainingsdaten auf die Trainings-, Validierungs- und Test-Datasets aufgeteilt werden. Verwenden Sie bei der Vertex AI API das Objekt Split
, um die Datenaufteilung zu bestimmen. Das Split
-Objekt kann als einer von mehreren Objekttypen in das InputConfig
-Objekt aufgenommen werden. Jedes Objekt bietet eine andere Möglichkeit zur Aufteilung der Trainingsdaten. Sie können nur eine Methode auswählen.
-
FractionSplit
:- TRAINING_FRACTION: Der Anteil der Trainingsdaten, die für das Trainings-Dataset verwendet werden sollen.
- VALIDATION_FRACTION: Der Anteil der Trainingsdaten, die für das Validierungs-Dataset verwendet werden sollen. Nicht für Videodaten verwendet.
- TEST_FRACTION: Der Anteil der Trainingsdaten, die für das Test-Dataset verwendet werden sollen.
Wenn Bruchzahlen angegeben werden, müssen alle angegeben werden. Die Bruchwerte müssen zusammengenommen 1,0 ergeben. Die Standardwerte für die Brüche variieren je nach Datentyp. Weitere Informationen
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
-
FilterSplit
: - TRAINING_FILTER: Datenelemente, die diesem Filter entsprechen, werden für das Trainings-Dataset verwendet.
- VALIDATION_FILTER: Datenelemente, die diesem Filter entsprechen, werden für das Validierungs-Dataset verwendet. Muss für Videodaten „-” sein.
- TEST_FILTER: Datenelemente, die diesem Filter entsprechen, werden für das Test-Dataset verwendet.
Diese Filter können mit dem Label ml_use
oder mit anderen Labels verwendet werden, die Sie auf Ihre Daten anwenden. Weitere Informationen zum Filtern von Daten finden Sie unter Labels für ml-use verwenden und weitere Labels.
Das folgende Beispiel zeigt, wie das Objekt filterSplit
mit dem Label ml_use
verwendet wird, wobei das Validierungs-Dataset enthalten ist:
"filterSplit": { "trainingFilter": "labels.aiplatform.googleapis.com/ml_use=training", "validationFilter": "labels.aiplatform.googleapis.com/ml_use=validation", "testFilter": "labels.aiplatform.googleapis.com/ml_use=test" }