Questa pagina mostra come addestrare un modello di rilevamento degli oggetti AutoML da un set di dati immagine utilizzando la console Google Cloud o l'API Vertex AI.
Addestra un modello AutoML
Console Google Cloud
Nella sezione Vertex AI della console Google Cloud, vai alla pagina Set di dati.
Fai clic sul nome del set di dati da utilizzare per addestrare il modello in modo da aprire la relativa pagina dei dettagli.
Fai clic su Addestra nuovo modello.
Come metodo di addestramento, seleziona
AutoML.Nella sezione Scegli dove utilizzare il modello, scegli la località host del modello:
Cloud, Edge o Vertex AI Vision.Fai clic su Continua.
Assegna un nome al modello.
Se vuoi impostare manualmente la modalità di suddivisione dei dati di addestramento, espandi Opzioni avanzate e seleziona un'opzione di suddivisione dati. Scopri di più.
Fai clic su Inizia addestramento.
L'addestramento del modello può richiedere molte ore, a seconda delle dimensioni e della complessità dei dati e del budget per l'addestramento, se ne hai specificato uno. Puoi chiudere questa scheda e riaprirla in un secondo momento. Riceverai un'email al termine dell'addestramento del modello.
API
Seleziona la scheda seguente per la tua lingua o il tuo ambiente:
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION: regione in cui si trova il set di dati e in cui viene creato il modello. Ad esempio,
us-central1
. - PROJECT: il tuo ID progetto.
- TRAININGPIPELINE_DISPLAYNAME: obbligatorio. Un nome visualizzato per trainingPipeline.
- DATASET_ID: il numero ID del set di dati da utilizzare per l'addestramento.
fractionSplit
: facoltativo. Uno dei tanti possibili ML utilizza le opzioni di suddivisione per i tuoi dati. PerfractionSplit
, la somma dei valori deve essere 1. Ad esempio:-
{"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
-
- MODEL_DISPLAYNAME*: un nome visualizzato per il modello caricato (creato) da TrainingPipeline.
- MODEL_DESCRIPTION*: una descrizione del modello.
- modelToUpload.labels*: qualsiasi insieme di coppie chiave-valore per organizzare i tuoi modelli. Ecco alcuni esempi:
- "env": "prod"
- "tier": "backend"
- MODELTYPE†: il tipo di modello ospitato su cloud da addestrare. Le opzioni sono:
CLOUD_1
: un modello personalizzato per l'utilizzo in Google Cloud e che non può essere esportato. Rispetto ai modelli CLOUD_HIGH_ACCURACY_1 e CLOUD_LOW_LATENCY_1 riportati sopra, dovrebbe avere una qualità di previsione superiore e una latenza minore.CLOUD_HIGH_ACCURACY_1
: un modello personalizzato per l'utilizzo in Google Cloud e che non può essere esportato. Si prevede che questo modello abbia una latenza maggiore, ma dovrebbe anche avere una qualità di previsione superiore rispetto agli altri modelli cloud.CLOUD_LOW_LATENCY_1
: un modello personalizzato per essere utilizzato in Google Cloud e che non può essere esportato. Questo modello dovrebbe avere una bassa latenza, ma potrebbe avere una qualità di previsione inferiore rispetto ad altri modelli cloud.
- NODE_HOUR_BUDGET†: il costo effettivo dell'addestramento sarà uguale o inferiore a questo valore. Per i modelli Cloud, il budget deve essere compreso tra 20.000 e 900.000 milliore nodo (inclusi). Il valore predefinito è 216.000,che rappresenta un giorno di tempo totale di esecuzione, supponendo che vengano utilizzati 9 nodi.
- PROJECT_NUMBER: il numero di progetto generato automaticamente per il tuo progetto
* | La descrizione del file di schema specificata in trainingTaskDefinition descrive l'utilizzo di questo campo. |
† | Il file di schema specificato in trainingTaskDefinition dichiara e descrive questo campo. |
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
Corpo JSON della richiesta:
{ "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 } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
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
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$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
La risposta contiene informazioni sulle specifiche e su TRAININGPIPELINE_ID.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Controlla la suddivisione dei dati utilizzando REST
Puoi controllare il modo in cui i dati di addestramento vengono suddivisi tra set di addestramento, convalida e test. Quando utilizzi l'API Vertex AI, usa l'oggetto Split
per determinare la suddivisione dei dati. L'oggetto Split
può essere incluso nell'oggetto InputConfig
come uno dei vari tipi di oggetti, ognuno dei quali offre un modo diverso per
suddividere i dati di addestramento. Puoi selezionare un solo metodo.
-
FractionSplit
:- TRAINING_FRACTION: la frazione dei dati di addestramento da utilizzare per il set di addestramento.
- VALIDATION_FRACTION: la frazione dei dati di addestramento da utilizzare per il set di convalida. Non utilizzato per i dati video.
- TEST_FRACTION: la frazione dei dati di addestramento da utilizzare per il set di test.
Se viene specificata una delle frazioni, specifica tutte le frazioni. La somma delle frazioni deve essere 1,0. I valori predefiniti per le frazioni variano a seconda del tipo di dati. Scopri di più.
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
-
FilterSplit
: - TRAINING_FILTER: gli elementi di dati che corrispondono a questo filtro vengono utilizzati per il set di addestramento.
- VALIDATION_FILTER: gli elementi di dati che corrispondono a questo filtro vengono utilizzati per il set di convalida. Deve essere "-" per i dati video.
- TEST_FILTER: gli elementi di dati che corrispondono a questo filtro vengono utilizzati per il set di test.
Questi filtri possono essere utilizzati con l'etichetta ml_use
o con qualsiasi etichetta applicata ai dati. Scopri di più sull'utilizzo dell'etichetta ml-use e di altre etichette per filtrare i dati.
L'esempio seguente mostra come utilizzare l'oggetto filterSplit
con l'etichetta ml_use
, che include il set di convalida:
"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" }