Questo tutorial mostra come creare un modello personalizzato per la classificazione dei contenuti utilizzando AutoML Natural Language. L'applicazione addestra un modello personalizzato utilizzando un corpus di "momenti felici" in crowdsourcing dal set di dati open source di Kaggle HappyDB. Il modello risultante classifica i momenti felici in categorie che riflettono le cause della felicità.
I dati sono resi disponibili tramite una licenza Creative Commons CCO: dominio pubblico.
Il tutorial illustra l'addestramento del modello personalizzato, la valutazione delle sue prestazioni e la classificazione di nuovi contenuti.
Prerequisiti
Configura l'ambiente del progetto
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API AutoML Natural Language.
-
Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API AutoML Natural Language.
- Installa Google Cloud CLI.
- Segui le istruzioni per creare un account di servizio e scaricare un file di chiavi.
- Imposta la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALS
sul percorso del file di chiavi dell'account di servizio che hai scaricato al momento della creazione dell'account di servizio. Ad esempio:export GOOGLE_APPLICATION_CREDENTIALS=key-file
- Aggiungi il tuo nuovo account di servizio al ruolo IAM AutoML Editor con i comandi seguenti. Sostituisci project-id con il nome del tuo
progetto Google Cloud e service-account-name con il nome del
nuovo account di servizio, ad esempio
service-account1@myproject.iam.gserviceaccount.com
.gcloud auth login gcloud config set project project-id gcloud projects add-iam-policy-binding project-id
--member=serviceAccount:service-account-name
--role='roles/automl.editor' - Consenti agli account di servizio AutoML Natural Language di accedere alle risorse del tuo progetto Google Cloud:
gcloud projects add-iam-policy-binding project-id
--member="serviceAccount:custom-vision@appspot.gserviceaccount.com"
--role="roles/storage.admin" - Installa la libreria client.
- Imposta le variabili di ambiente PROJECT_ID e REGION_NAME.
Sostituisci project-id con l'ID progetto del tuo progetto Google Cloud Platform. Al momento AutoML Natural Language richiede la localitàus-central1
.export PROJECT_ID="project-id" export REGION_NAME="us-central1"
- Crea un bucket Google Cloud Storage per archiviare i documenti che utilizzerai per addestrare il tuo modello personalizzato.
Il nome del bucket deve essere nel formato:$PROJECT_ID-lcm
. Il seguente comando crea un bucket di archiviazione denominato$PROJECT_ID-lcm
nella regioneus-central1
.gsutil mb -p $PROJECT_ID -c regional -l $REGION_NAME gs://$PROJECT_ID-lcm/
- Copia il file
happiness.csv
dal bucket pubblico al bucket Google Cloud Storage.
Il filehappiness.csv
si trova nella cartella NL-classification nel bucket pubblico cloud-ml-data.
Posizioni dei file di codice sorgente
Se vuoi il codice sorgente, lo trovi qui. Copia pure i file di codice sorgente nella cartella del progetto della Google Cloud Platform. In caso contrario, ti consigliamo di copiare direttamente il codice da questa pagina man mano che raggiungi ogni passaggio.
Python
Il tutorial è costituito da questi programmi Python:
language_text_classification_create_dataset.py
- Include la funzionalità per creare un set di datiimport_dataset.py
- Include la funzionalità per importare un set di datilanguage_text_classification_create_model.py
- Include la funzionalità per creare un modellolist_model_evaluations.py
– Include funzionalità per elencare le valutazioni dei modellilanguage_text_classification_predict.py
– Include funzionalità relative alla previsionedelete_model.py
- Includi la funzionalità per eliminare un modello
Java
Il tutorial è costituito da questi file Java:
LanguageTextClassificationCreateDataset.java
- Include la funzionalità per creare un set di datiImportDataset.java
- Include la funzionalità per importare un set di datiLanguageTextClassificationCreateModel.java
- Include la funzionalità per creare un modelloListModelEvaluations.java
– Include funzionalità per elencare le valutazioni dei modelliLanguageTextClassificationPredict.java
– Include funzionalità relative alla previsioneDeleteModel.java
- Include la funzionalità per eliminare un modello
Node.js
Il tutorial è costituito da questi programmi Node.js:
language_text_classification_create_dataset.js
- Include la funzionalità per creare un set di datiimport_dataset.js
- Include la funzionalità per importare un set di datilanguage_text_classification_create_model.js
- Include la funzionalità per creare un modellolist_model_evaluations.js
– Include funzionalità per elencare le valutazioni dei modellilanguage_text_classification_predict.js
– Include funzionalità relative alla previsionedelete_model.js
- Includi la funzionalità per eliminare un modello
Esecuzione dell'applicazione
Passaggio 1: crea un set di dati
Il primo passaggio nella creazione di un modello personalizzato è creare un set di dati vuoto che conserverà alla fine i dati di addestramento del modello. Quando crei un set di dati, devi specificare il tipo di classificazione che deve essere eseguito dal modello personalizzato:
- MULTICLASS assegna un'unica etichetta a ciascun documento classificato
- MULTILABEL consente di assegnare più etichette a un documento
Questo tutorial crea un set di dati denominato "happydb" e utilizza MULTICLASS.
Copia il codice
Python
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Python.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Java.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Node.js.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Richiesta
Esegui la funzione create_dataset
per creare un set di dati vuoto. Dovrai modificare le seguenti righe di codice:
- Imposta
project_id
sul tuo PROJECT_ID Imposta
display_name
per il set di dati (happydb
)
Python
python language_text_classification_create_dataset.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.LanguageTextClassificationCreateDataset"
Node.js
node language_text_classification_create_dataset.js
Risposta
La risposta include i dettagli del set di dati appena creato, tra cui l'ID set di dati che utilizzerai per fare riferimento al set di dati nelle richieste future. Ti consigliamo di impostare una variabile di ambiente DATASET_ID
sul valore dell'ID set di dati restituito.
Dataset name: projects/216065747626/locations/us-central1/datasets/TCN7372141011130533778 Dataset id: TCN7372141011130533778 Dataset display name: happydb Text classification dataset specification: classification_type: MULTICLASS Dataset example count: 0 Dataset create time: seconds: 1530251987 nanos: 216586000
Passaggio 2: importa gli elementi di addestramento nel set di dati
Il passaggio successivo consiste nel completare il set di dati con un elenco di contenuti di addestramento etichettati utilizzando le categorie di destinazione.
L'interfaccia della funzione import_dataset
prende come input un file .csv che elenca le posizioni di tutti i documenti di addestramento e l'etichetta corretta per ciascun documento di addestramento.
(Consulta Preparazione dei dati di addestramento per i dettagli sul formato richiesto.) Per questo tutorial, utilizzeremo
happiness.csv
, che hai caricato in Google Cloud Storage in alto.
Copia il codice
Python
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Python.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Java.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Node.js.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Richiesta
Esegui la funzione import_data
per importare i contenuti di addestramento. Il primo frammento di codice da modificare è l'ID set di dati del passaggio precedente e il secondo è l'URI di happiness.csv
. Dovrai modificare le seguenti righe di codice:
- Imposta
project_id
sul tuo PROJECT_ID - Imposta
dataset_id
per il set di dati (dall'output del passaggio precedente) Imposta
path
, che è l'URI di (gs://YOUR_PROJECT_ID-lcm/csv/happiness.csv
)
Python
python import_dataset.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.ImportDataset"
Node.js
node import_dataset.js
Risposta
Processing import... Dataset imported.
Passaggio 3: crea (addestra) il modello
Ora che hai un set di dati di documenti di addestramento etichettati, puoi addestrare un nuovo modello.
Copia il codice
Python
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Python.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Java.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Node.js.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Richiesta
Richiama la funzione create_model
per creare un modello. L'ID set di dati proviene dai
passaggi precedenti. Dovrai modificare le seguenti righe di codice:
- Imposta
project_id
sul tuo PROJECT_ID - Imposta
dataset_id
per il set di dati (dall'output del passaggio precedente) Imposta
display_name
per il tuo modello (happydb_model)
Python
python language_text_classification_create_model.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.LanguageTextClassificationCreateModel"
Node.js
node language_text_classification_create_model.js
Risposta
La funzione create_model
avvia un'operazione di addestramento e visualizza il relativo nome. L'addestramento avviene in modo asincrono e può richiedere un po' di tempo, quindi puoi utilizzare l'ID operazione per controllare lo stato dell'addestramento.
Al termine dell'addestramento, create_model
restituisce l'ID modello. Come per l'ID set di dati, è consigliabile impostare una variabile di ambiente MODEL_ID
sul valore dell'ID modello restituito.
Training operation name: projects/216065747626/locations/us-central1/operations/TCN3007727620979824033 Training started... Model name: projects/216065747626/locations/us-central1/models/TCN7683346839371803263 Model id: TCN7683346839371803263 Model display name: happydb_model Model create time: seconds: 1529649600 nanos: 966000000 Model deployment state: deployed
Passaggio 4: valuta il modello
Dopo l'addestramento, puoi valutare l'idoneità del modello esaminandone precisione, richiamo e punteggio F1.
La funzione display_evaluation
utilizza l'ID modello come parametro.
Copia il codice
Python
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Python.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Java.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Node.js.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Richiesta
Invia una richiesta per visualizzare le prestazioni di valutazione complessive del modello eseguendo la seguente richiesta. Dovrai modificare le seguenti righe di codice:
- Imposta
project_id
sul tuo PROJECT_ID Imposta
model_id
sull'ID del modello
Python
python list_model_evaluations.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.ListModelEvaluations"
Node.js
node list_model_evaluations.js
Risposta
Se i punteggi di precisione e richiamo sono troppo bassi, puoi rafforzare il set di dati di addestramento e addestrare nuovamente il modello. Per maggiori informazioni, consulta Valutazione dei modelli.
Precision and recall are based on a score threshold of 0.5 Model Precision: 96.3% Model Recall: 95.7% Model F1 score: 96.0% Model Precision@1: 96.33% Model Recall@1: 95.74% Model F1 score@1: 96.04%
Passaggio 5: esegui il deployment del modello
Quando il modello personalizzato soddisfa gli standard di qualità, puoi eseguirne il deployment e richiedere previsioni.
Copia il codice
Python
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Python.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Java.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Node.js.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Richiesta
Per la funzione deploy_model
devi modificare le seguenti righe di codice:
- Imposta
project_id
sul tuo PROJECT_ID Imposta
model_id
sull'ID del modello
Python
python deploy_model.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.DeployModel.java"
Node.js
node deploy_model.js
Risposta
Model deployment finished.
Passaggio 6: utilizza il modello per fare una previsione
Dopo aver eseguito il deployment del modello, puoi utilizzarlo per classificare nuovi contenuti.
Copia il codice
Python
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Python.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Java.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Node.js.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Richiesta
Per la funzione predict
devi modificare le seguenti righe di codice:
- Imposta
project_id
sul tuo PROJECT_ID - Imposta
model_id
sull'ID del modello Imposta il valore
content
che vuoi prevedere
Python
python language_text_classification_predict.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.LanguageTextClassificationPredict"
Node.js
node language_text_classification_predict.js
Risposta
La funzione restituisce il punteggio di classificazione che determina il livello di corrispondenza dei contenuti con ogni categoria.
Prediction results: Predicted class name: affection Predicted class score: 0.9702693223953247
Passaggio 7: elimina un modello
Quando hai finito di utilizzare questo modello di esempio, puoi eliminarlo definitivamente. Non potrai più utilizzare il modello per le previsioni.
Copia il codice
Python
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Python.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Java.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Node.js.
Per eseguire l'autenticazione in AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Richiesta
Effettua una richiesta con il tipo di operazione delete_model
per eliminare un modello che hai creato. Dovrai modificare le seguenti righe di codice:
- Imposta
project_id
sul tuo PROJECT_ID Imposta
model_id
sull'ID del modello
Python
python delete_model.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.DeleteModel"
Node.js
node delete_model.js
Risposta
Model deleted.