Introduzione all'algoritmo Linear Learner integrato

Con gli algoritmi integrati su AI Platform Training, puoi inviare i tuoi dati di addestramento, selezionare un algoritmo e lasciare che AI Platform Training gestisca la pre-elaborazione e l'addestramento senza scrivere alcun codice per un'applicazione di addestramento.

Panoramica

In questo tutorial, addestrerai un modello Linear Learner senza scrivere qualsiasi codice. Devi inviare il set di dati del reddito da censimento a AI Platform Training per la pre-elaborazione e l'addestramento, poi esegui il deployment modello su AI Platform Training per ottenere previsioni. Il modello risultante prevede la probabilità che il reddito annuo di un individuo sia superiore a 50.000 $.

Prima di iniziare

Per completare questo tutorial dalla riga di comando, utilizza Cloud Shell o qualsiasi in cui è installata Google Cloud CLI.

Completa i seguenti passaggi per configurare un account Google Cloud, abilitare le API richieste e installare e attivare Google Cloud CLI:

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Abilita le API AI Platform Training & Prediction and Compute Engine.

    Abilita le API

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  9. Abilita le API AI Platform Training & Prediction and Compute Engine.

    Abilita le API

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init

Configurazione

Per utilizzare algoritmi tabulari integrati, devi rimuovere la riga di intestazione dal file CSV e spostare i valori di destinazione nella prima colonna. Abbiamo modificato set di dati originale del censimento da utilizzare in questo tutorial, che è stato ospitato in un nel bucket Cloud Storage, gs://cloud-samples-data/ai-platform/census/algorithms/data/.

Console

Prima di iniziare il job di addestramento, devi copiare i dati dal nostro dal bucket Cloud Storage pubblico al bucket Cloud Storage.

Copia i dati di esempio nel bucket Cloud Storage

  1. Innanzitutto, scarica i dati di addestramento e test dai nostri nel bucket Cloud Storage.

    1. Accedi al nostro bucket Cloud Storage pubblico:

      Ottenere i dati di esempio

    2. Scarica sia test.csv sia train.csv:

      1. Fai clic sul nome del file.

      2. Nella pagina Dettagli oggetto, fai clic su Scarica. Questi di file vengono scaricati nel tuo ambiente locale ai-platform_census_algorithms_data_test.csv e rispettivamente ai-platform_census_algorithms_data_train.csv.

  2. Quindi, carica i dati di addestramento e test in Cloud Storage di sincronizzare la directory di una VM con un bucket.

    1. Vai alla pagina Browser per il tuo bucket Cloud Storage. Seleziona il tuo progetto dal menu a discesa Seleziona un progetto elenco o aprilo in una nuova scheda:

      Pagina del browser di Cloud Storage

    2. Fai clic sul nome del bucket che vuoi utilizzare o creane uno nuovo se non ne hai uno. Se crei un nuovo bucket, assicurati che sia un bucket regionale e seleziona la stessa regione in cui stai eseguendo il job di addestramento di AI Platform Training).

    3. (Facoltativo) Fai clic su Crea cartella per creare una cartella per l'elemento dei file che carichi. Inserisci un nome per la cartella (ad esempio, "dati") e fai clic su Crea. Quindi, passa alla nuova cartella. facendo clic sul nome della cartella.

    4. Fai clic su Carica file per caricare sia l'addestramento che il test. file, ai-platform_census_algorithms_data_train.csv e ai-platform_census_algorithms_data_test.csv al tuo bucket.

Ora che i dati sono stati copiati nel bucket, puoi avviare un job di addestramento selezionando il tipo di algoritmo che vuoi utilizzare.

Selezionare l'algoritmo

  1. Vai alla pagina dei job di AI Platform Training nella Console Google Cloud:

    Pagina dei job di AI Platform Training

  2. Fai clic sul pulsante Nuovo job di addestramento. Tra le opzioni che Fai clic su Addestramento con algoritmi integrati sotto. La Viene visualizzata la pagina Crea un nuovo job di addestramento.

  3. La creazione del job di addestramento è divisa in quattro passaggi. Il primo è Algoritmo di addestramento. Seleziona Apprendimento lineare e fai clic su Avanti.

gcloud

Configura le variabili di ambiente per l'ID progetto, per Cloud Storage il percorso dei dati di addestramento in Cloud Storage e l'algoritmo selezione.

Gli algoritmi integrati di AI Platform Training si trovano in container Docker ospitati in Container Registry.

PROJECT_ID=YOUR_PROJECT_ID
BUCKET_NAME=YOUR_BUCKET_NAME
REGION="us-central1"
gcloud config set project $PROJECT_ID
gcloud config set compute/region $REGION

# Copy the training data into your Cloud Storage bucket, and set the path
# to your copy of the training data.
TRAINING_DATA_SOURCE=gs://cloud-samples-data/ai-platform/census/algorithms/data/train.csv
TRAINING_DATA_PATH=gs://$BUCKET_NAME/algorithms-demo/data/train.csv
gcloud storage cp $TRAINING_DATA_SOURCE $TRAINING_DATA_PATH

# Specify the Docker container URI specific to the algorithm.
IMAGE_URI="gcr.io/cloud-ml-algos/linear_learner_cpu:latest"

Invio di un job di addestramento

Per inviare un job, devi specificare alcuni argomenti di addestramento di base relativi all'algoritmo Linear Learner.

Argomenti generali per il job di addestramento:

Argomenti del job di addestramento
Argomento Descrizione
job-id ID univoco per il job di addestramento. Puoi utilizzarlo per trovare i log per lo stato del job di addestramento dopo l'invio.
job-dir Percorso Cloud Storage in cui AI Platform Training salva i file di addestramento dopo aver completato con successo un job di addestramento.
scale-tier Specifica i tipi di macchina per l'addestramento. Usa BASIC per selezionare la configurazione di una sola macchina.
master-image-uri URI di Container Registry utilizzato per specificare il container Docker in cui eseguire per il job di addestramento. Utilizza il container per l'architettura algoritmo di Linear Learner definito in precedenza come IMAGE_URI.
region Specifica la regione disponibile in cui eseguire il job di addestramento. Per questo tutorial, puoi usare la regione us-central1.

Argomenti specifici dell'algoritmo Linear Learner integrato:

Argomenti degli algoritmi
Argomento Descrizione
preprocess Argomento booleano che indica se AI Platform Training deve pre-elaborare i dati.
model_type Indica il tipo di modello da addestrare: classificazione o regressione.
training_data_path Percorso Cloud Storage dei dati di addestramento, che deve essere un file CSV.
learning_rate Il tasso di apprendimento utilizzato dall'ottimizzatore lineare.
max_steps Numero di passaggi per i quali eseguire l'addestramento.
batch_size Numero di esempi da utilizzare per fase di addestramento.

Per un elenco dettagliato di tutti gli altri flag dell'algoritmo Linear Learner, consulta le di riferimento Linear Learner lineari.

Console

  1. Lascia selezionata l'opzione Abilita pre-elaborazione automatica dei dati.

  2. In Percorso dati di addestramento, fai clic su Sfoglia. Nel riquadro a destra, fai clic sul nome del bucket in cui hai caricato i dati di addestramento, e vai al tuo ai-platform_census_algorithms_data_train.csv .

  3. Lascia invariati i campi di Dati di convalida e Dati di test impostazioni predefinite.

  4. In Directory di output, inserisci il percorso del tuo bucket Cloud Storage in cui vuoi che AI Platform Training archivi gli output un lavoro di addestramento lungo. Puoi compilare direttamente il percorso del bucket Cloud Storage, o fai clic sul pulsante Sfoglia per selezionarla.

    Per tenere tutto in ordine, crea una nuova directory all'interno bucket Cloud Storage per questo job di addestramento. Puoi farlo all'interno Riquadro Sfoglia.

    Fai clic su Avanti.

  5. Per Tipo di modello, seleziona Classificazione.

  6. Lascia invariate le impostazioni predefinite di tutti gli altri campi e fai clic su Avanti.

  7. Nella pagina Impostazioni job:

    1. Inserisci un ID job univoco (ad es. "linear_example").
    2. Inserisci un'regione disponibile (ad es. "us-central1").
    3. Seleziona "STANDARD" per il livello di scalabilità.

    Fai clic su Fine per inviare il job di addestramento.

gcloud

  1. Configura tutti gli argomenti per il job di addestramento e l'algoritmo, prima di utilizzare gcloud per inviare il job:

    DATASET_NAME="census"
    ALGORITHM="linear"
    MODEL_TYPE="classification"
    MODEL_NAME="${DATASET_NAME}_${ALGORITHM}_${MODEL_TYPE}"
    
    # Give a unique name to your training job.
    DATE="$(date '+%Y%m%d_%H%M%S')"
    JOB_ID="${MODEL_NAME}_${DATE}"
    
    # Make sure you have access to this Cloud Storage bucket.
    JOB_DIR="gs://${BUCKET_NAME}/algorithms_training/${MODEL_NAME}/${DATE}"
    
  2. Invia il job:

    gcloud ai-platform jobs submit training $JOB_ID \
      --master-image-uri=$IMAGE_URI --scale-tier=BASIC --job-dir=$JOB_DIR \
      -- \
      --preprocess --model_type=$MODEL_TYPE --batch_size=250 \
      --learning_rate=0.1 --max_steps=1000 --training_data_path=$TRAINING_DATA_PATH
    

  3. Dopo che il job è stato inviato correttamente, puoi visualizzare i log utilizzando i seguenti comandi gcloud:

    gcloud ai-platform jobs describe $JOB_ID
    gcloud ai-platform jobs stream-logs $JOB_ID
    

Informazioni sulla directory di lavoro

Dopo aver completato con successo un job di addestramento, AI Platform Training crea un modello addestrato nel bucket Cloud Storage, insieme artefatti. All'interno di JOB_DIR puoi trovare la seguente struttura di directory:

  • artefatti/
    • metadata.json
  • model/ (un TensorFlow SavedModel Google Cloud che contiene anche un file deployment_config.yaml)
    • saved_model.pb
    • deployment_config.yaml
  • processed_data/
    • test.csv
    • training.csv
    • validation.csv

La directory del job contiene anche vari file di checkpoint del modello "esperimento" .

Verifica che la struttura della directory in JOB_DIR corrisponda a:

gcloud storage ls $JOB_DIR/* --all-versions

esegui il deployment del modello addestrato

AI Platform Prediction organizza i modelli addestrati utilizzando modello e Risorse della versione. Un modello AI Platform Prediction è un container per più versioni del tuo modello di machine learning.

Per eseguire il deployment di un modello, crea una risorsa del modello in AI Platform Prediction, crea una versione di quel modello, poi utilizza il modello e la versione per richiedere per le previsioni.

Scopri di più su come eseguire il deployment di modelli in AI Platform Prediction.

Console

  1. Nella pagina Job, puoi trovare un elenco di tutti i tuoi job di addestramento. Fai clic sul nome del job di addestramento appena inviato ("linear_example" o il nome del job utilizzato).

  2. Nella pagina Dettagli job puoi visualizzare l'avanzamento generale della tua oppure fai clic su Visualizza log per una visualizzazione più dettagliata dell'avanzamento.

  3. Una volta completato il job, verrà visualizzato il pulsante Esegui il deployment del modello in alto. Fai clic su Esegui il deployment del modello.

  4. Seleziona "Esegui il deployment come nuovo modello" e inserisci un nome per il modello, ad esempio "lineare_model". Quindi, fai clic su Conferma.

  5. Nella pagina Crea versione, inserisci un nome per la versione, ad esempio "v1" e lascia invariate le impostazioni predefinite di tutti gli altri campi. Clic Salva.

  6. Nella pagina Dettagli modello viene visualizzato il nome della tua versione. Versione richiede qualche minuto. Quando la versione è pronta, viene visualizzato un segno di spunta accanto al nome della versione.

  7. Fai clic sul nome della versione ("v1") per passare ai Dettagli versione. . Nel passaggio successivo di questo tutorial, invia una richiesta di previsione

gcloud

Il processo di addestramento con l'algoritmo Linear Learner integrato produce una deployment_config.yaml, che semplifica il deployment del modello su AI Platform Prediction per le previsioni.

  1. Copia il file nella tua directory locale e visualizzane il contenuto:

    gcloud storage cp $JOB_DIR/model/deployment_config.yaml .
    cat deployment_config.yaml
    

    Il file deployment_config.yaml dovrebbe essere simile al seguenti:

    deploymentUri: gs://YOUR_BUCKET_NAME/algorithms_training/census_linear_classification/20190227060114/model
    framework: TENSORFLOW
    labels:
      global_step: '1000'
      job_id: census_linear_classification_20190227060114
      accuracy: '86'
    runtimeVersion: '1.14'
    pythonVersion: '2.7'
    
  2. Crea il modello e la versione in AI Platform Training:

    MODEL_NAME="${DATASET_NAME}_${ALGORITHM}_${MODEL_TYPE}"
    gcloud ai-platform models create $MODEL_NAME --regions $REGION
    
    # Create a model and a version using the file above.
    VERSION_NAME="v_${DATE}"
    
    gcloud ai-platform versions create $VERSION_NAME \
      --model $MODEL_NAME \
      --config deployment_config.yaml
    

    La creazione della versione richiede alcuni minuti.

Ricevi previsioni online

Quando richiedi previsioni, devi assicurarti che i dati di input siano allo stesso modo dei dati di addestramento. Prima dell'addestramento, AI Platform Training pre-elabora i dati trasformandoli nel corpus mostrato in metadata.json.

Il modello Linear Learner applica una pre-elaborazione simile ai dati di input prima di fare previsioni.

Console

  1. Nella pagina Dettagli versione della "v1", la versione appena creata, puoi inviare una richiesta di previsione di esempio.

    Seleziona il pulsante Testa e Usa.

  2. Copia il seguente esempio nel campo di immissione:

     {
       "instances": [
         {"csv_row": "44, Private, 160323, Some-college, 10, Married-civ-spouse, Machine-op-inspct, Husband, Black, Male, 7688, 0, 40, United-States", "key": "dummy-key"}
       ]
     }
    
  3. Fai clic su Test.

    Il risultato della previsione di esempio contiene diversi campi. Elenco classes mostra la classe >50K' prevista:

    {
       "predictions": [
         {
           ...
           "classes": [
             ">50K"
           ],
           ...
         }
       ]
     }
    

    In questo caso, il modello di cui è stato eseguito il deployment prevede l'individuo la cui le informazioni che hai fornito fanno guadagnare uno stipendio superiore a 50.000 $. (Da non è deterministico, il tuo modello può differire.)

gcloud

  1. Rivedi le ultime righe di metadata.json:

    gcloud storage cat $JOB_DIR/artifacts/metadata.json | tail
    

    L'oggetto target_column.mapping mostra come verranno visualizzate le classi previste vengono visualizzate nei risultati della previsione:

        "target_algorithm": "TensorFlow",
        "target_column": {
          "mapping": {
            "0": "<=50K",
            "1": ">50K"
          },
        "num_category": 2,
        "type": "classification"
      }
    }
    
  2. Prepara l'input di previsione per un'istanza di dati. Tieni presente che devi fornisci ogni istanza di dati come oggetto JSON con i seguenti campi:

    • csv_row, una stringa contenente una riga di elementi separati da virgole nel nello stesso formato delle istanze usate durante l'addestramento.
    • key, un identificatore di stringa univoco per ogni istanza. Questo agisce come una chiave istanza viene visualizzato come parte dell'output della previsione, in modo da poter abbinare ogni previsione all'istanza di input corrispondente.

      Questa è necessaria per i previsione, perché in batch la previsione elabora l'input e salva l'output in un ordine imprevedibile.

      Per la previsione online, che produce output nello stesso ordine del fornito, le chiavi delle istanze sono meno cruciali. Solo questo esempio esegue una previsione su una singola istanza, quindi il valore non importa.

    Per inviare una richiesta di previsione online utilizzando Google Cloud CLI, come in Ad esempio, scrivi ogni istanza in una riga di un file JSON delimitato da nuova riga.

    Esegui questi comandi nel terminale per creare input per un singolo che puoi inviare ad AI Platform Prediction:

     # A sample record from census dataset. Ground truth is >50K
    RAW_DATA_POINT='44, Private, 160323, Some-college, 10, Married-civ-spouse, Machine-op-inspct, Husband, Black, Male, 7688, 0, 40, United-States'
    
     # Create a prediction request file
    echo "{\"csv_row\": \"$RAW_DATA_POINT\", \"key\": \"dummy-key\"}" > sample_input.json
    
    # Check the prediction request file.
    cat sample_input.json
    
  3. Invia la richiesta di previsione:

    gcloud ai-platform predict \
      --model $MODEL_NAME \
      --version $VERSION_NAME \
      --json-instances sample_input.json \
      --format "value(predictions[0].classes[0])" \
      --signature-name "predict"
    

    L'output della previsione viene filtrato in modo da mostrare solo la classe prevista:

    >50K
    

Molto probabilmente, l'output della previsione è >50K. Il modello di cui è stato eseguito il deployment prevede il privato le cui informazioni da te fornite guadagna uno stipendio superiore a 50.000 €. Poiché l'addestramento non è deterministico, il modello potrebbe differire.

Informazioni sui dati

Il set di dati Census Income usati da questo esempio per l'addestramento, UC Irvine Machine Learning Repository.

Dati del censimento gentilmente concessi da: Lichman, M. (2013); Repository di machine learning UCI http://archive.ics.uci.edu/ml. Irvine, CA: University of California, School of Information and Computer Science.

Passaggi successivi