Flusso di lavoro del machine learning

AI Platform abilita molte parti del flusso di lavoro del machine learning (ML). Questo documento fornisce una descrizione introduttiva del processo di ML complessiva e spiega dove si inserisce ciascun servizio AI Platform.

Per un'introduzione ai servizi, consulta la panoramica tecnica di AI Platform.

Una breve descrizione del machine learning

Il machine learning (ML) è una branca secondaria dell'intelligenza artificiale (AI). L'obiettivo dell'ML è far sì che i computer imparino dai dati che ricevono. Invece di scrivere un codice che descriva l'azione che deve essere eseguita dal computer, il codice fornisce un algoritmo che si adatta in base a esempi di comportamento previsti. Il programma risultante, costituito dall'algoritmo e dai parametri appresi associati, è chiamato modello addestrato.

Il flusso di lavoro ML

Il diagramma seguente fornisce una panoramica generale delle fasi di un flusso di lavoro ML. Le caselle blu indicano dove AI Platform fornisce API e servizi gestiti:

Flusso di lavoro ML
Flusso di lavoro di ML

Per sviluppare e gestire un modello pronto per la produzione, devi seguire le seguenti fasi:

  • Recupera e prepara i dati.

  • Sviluppare il modello.

  • Addestra un modello ML sui tuoi dati:

    • Addestramento del modello
    • Valuta l'accuratezza del modello
    • Ottimizzare gli iperparametri
  • Esegui il deployment del modello addestrato.

  • Invia richieste di previsione al tuo modello:

    • Previsione online
    • Previsione batch
  • Monitora le previsioni in modo continuativo.

  • Gestisci i tuoi modelli e le relative versioni.

Queste fasi sono iterative. Potresti dover rivalutare e tornare a un passaggio precedente in qualsiasi momento della procedura.

Il resto di questa pagina illustra le fasi in dettaglio.

Prima di iniziare, valuta il problema

Prima di iniziare a pensare a come risolvere un problema con l'IA, prenditi un po' di tempo per riflettere sul problema che stai cercando di risolvere. Poniti le seguenti domande:

Hai un problema ben definito da risolvere?

Esistono molti approcci diversi quando si utilizza il machine learning per riconoscere schemi nei dati. È importante definire le informazioni che stai cercando di ottenere dal modello e il motivo per cui ti servono.

L'IA è la soluzione migliore per il problema?

L'ML supervisionato (lo stile di ML descritto in questa documentazione) è adatto a determinati tipi di problemi.

Ti consigliamo di utilizzare il machine learning per il tuo problema solo se hai accesso a un insieme di dati di dimensioni adeguate da cui addestrare il modello. Non esistono regole precise su quanti dati sono sufficienti. Ogni caratteristica (attributo dati) che includi nel modello aumenta il numero di istanze (record di dati) necessarie per addestrare correttamente il modello. Consulta le best practice per l'apprendimento automatico per alcune indicazioni sull'ingegneria delle funzionalità.

Devi anche tenere conto della suddivisione del set di dati in tre sottoinsiemi: uno per l'addestramento, uno per la valutazione (o convalida) e uno per i test.

Esamina le alternative che potrebbero offrire un modo più semplice e concreto per risolvere il problema.

Come puoi misurare il successo del modello?

Una delle maggiori sfide della creazione di un modello ML è sapere quando è completata la fase di sviluppo del modello. È facile continuare a perfezionare il modello indefinitamente, ottenendo miglioramenti sempre più piccoli in termini di precisione. Prima di iniziare la procedura, devi sapere che cosa si intende per successo. Valuta il livello di accuratezza sufficiente per le tue esigenze. Valuta le conseguenze del corrispondente livello di errore.

Recupera e prepara i dati

Devi avere accesso a un ampio insieme di dati di addestramento che includa l'attributo (chiamato caratteristica in ML) che vuoi essere in grado di dedurre (prevedere) in base alle altre caratteristiche.

Ad esempio, supponiamo che tu voglia che il modello preveda il prezzo di vendita di una casa. Inizia con un ampio insieme di dati che descrivono le caratteristiche delle case in una determinata area, incluso il prezzo di vendita di ciascuna casa.

Analisi dei dati

Dopo aver recuperato i dati, devi analizzarli e comprenderli e prepararli per essere utilizzati come input per il processo di addestramento. Ad esempio, potresti dover eseguire i seguenti passaggi:

  • Unisci i dati provenienti da più origini e razionalizzali in un unico set di dati.
  • Visualizza i dati per cercare le tendenze.
  • Utilizza linguaggi e strumenti incentrati sui dati per trovare pattern nei dati.
  • Identificare le funzionalità nei dati. Le caratteristiche comprendono il sottoinsieme di attributi di dati che utilizzi nel modello.
  • Pulisci i dati per trovare eventuali valori anomali causati da errori di inserimento o misurazione dei dati.

Pre-elaborazione dei dati

Nel passaggio di preelaborazione, trasformi i dati validi e puliti nel formato più adatto alle esigenze del tuo modello. Ecco alcuni esempi di preelaborazione dei dati:

  • Normalizzazione dei dati numerici in base a una scala comune.
  • Applicazione di regole di formattazione ai dati. Ad esempio, la rimozione del tagging HTML da un elemento di testo.
  • Riduzione della ridondanza dei dati tramite semplificazione. Ad esempio, la conversione di una caratteristica di testo in una rappresentazione di bag of words.
  • Rappresentazione numerica del testo. Ad esempio, l'assegnazione di valori a ogni valore possibile in una caratteristica categorica.
  • Assegnazione di valori chiave alle istanze di dati.

Assistenza di Google Cloud per l'esplorazione e la preparazione dei dati

TensorFlow ha diverse librerie di pre-elaborazione che puoi utilizzare con AI Platform. Ad esempio, tf.transform.

Puoi eseguire il deployment e pubblicare pipeline scikit-learn su AI Platform per applicare trasformazioni predefinite per l'addestramento e la previsione online. L'applicazione di trasformazioni personalizzate è in versione beta.

Puoi eseguire il deployment di una routine di previsione personalizzata (beta) per assicurarti che AI Platform pre-elabori l'input al momento della previsione nello stesso modo in cui hai pre-elaborato i dati durante l'addestramento.

Inoltre, valuta i seguenti servizi Google Cloud:

  • I notebook gestiti dall'utente di Vertex AI Workbench sono istanze di immagini VM di deep learning preconfezionate con i notebook JupyterLab e ottimizzate per le attività di data science di deep learning, dalla preparazione ed esplorazione dei dati allo sviluppo rapido di prototipi.

  • BigQuery è un servizio di data warehouse completamente gestito che consente l'analisi ad hoc su dati in tempo reale con l'SQL standard.

  • Dataproc è un servizio cloud completamente gestito per l'esecuzione di cluster Apache Spark e Apache Hadoop.

  • Dataflow è un servizio completamente gestito per la trasformazione e l'arricchimento dei dati in modalità flusso (in tempo reale) e batch (cronologica), con uguale affidabilità ed espressività.

  • Dataprep è un servizio dati intelligente e serverless che consente di esplorare in modo visivo, pulire e preparare dati strutturati e non strutturati.

Codifica il modello

Sviluppare il modello utilizzando tecniche di ML consolidate o definendo nuovi approcci e operazioni.

Per iniziare a imparare, consulta la guida introduttiva di TensorFlow. Puoi anche seguire la documentazione di scikit-learn o la documentazione di XGBoost per creare il tuo modello. Poi, esamina alcuni esempi di codice progettati per funzionare con la piattaforma AI.

Addestra, valuta e ottimizza il modello

AI Platform fornisce i servizi necessari per addestrare e valutare il tuo modello nel cloud. Inoltre, AI Platform offre la funzionalità di ottimizzazione degli iperparametri per ottimizzare il processo di addestramento.

Durante l'addestramento del modello, fornisci i dati per i quali conosci già il valore per l'attributo (la funzionalità) dei dati di destinazione. Esegui il modello per prevedere i valori target per i dati di addestramento, in modo che possa regolare le impostazioni per adattarsi meglio ai dati e quindi prevedere il valore target in modo più accurato.

Analogamente, quando valuti il modello addestrato, fornisci i dati che includono i valori target. Confronta i risultati delle previsioni del modello con i valori effettivi dei dati di valutazione e utilizza tecniche statistiche appropriate per il modello per valutarne il successo.

Puoi anche ottimizzare il modello modificando le operazioni o le impostazioni utilizzate per controllare il processo di addestramento, ad esempio il numero di passaggi di addestramento da eseguire. Questa tecnica è nota come ottimizzazione degli iperparametri.

Test del modello

Durante l'addestramento, applichi il modello a dati noti per regolare le impostazioni in modo da migliorare i risultati. Quando i risultati sono sufficienti per le esigenze della tua applicazione, devi eseguire il deployment del modello su qualsiasi sistema utilizzato dalla tua applicazione e testarlo.

Per testare il modello, esegui i dati in un contesto il più simile possibile all'applicazione finale e all'infrastruttura di produzione.

Utilizza un set di dati diverso da quelli utilizzati per l'addestramento e la valutazione. Idealmente, dovresti utilizzare un set di dati separato ogni volta che esegui il test, in modo che il tuo modello venga testato con dati che non ha mai elaborato prima.

Ti consigliamo inoltre di creare diversi set di dati di test a seconda della natura del tuo modello. Ad esempio, puoi utilizzare set di dati diversi per determinate località o determinati momenti nel tempo oppure puoi suddividere le istanze per simulare diversi gruppi demografici.

Durante la procedura di test, apporti aggiustamenti ai parametri e agli iperparametri del modello in base ai risultati del test. Potresti scoprire problemi nel modello o nella sua interazione con il resto dell'applicazione.

Ospita il tuo modello nel cloud

AI Platform fornisce strumenti per caricare il modello ML addestrato sul cloud in modo da poter inviare richieste di previsione al modello.

Per eseguire il deployment del modello addestrato su AI Platform, devi salvarlo utilizzando gli strumenti forniti dal tuo framework di machine learning. Questo comporta la serializzazione delle informazioni che rappresentano il tuo modello addestrato in un file che puoi implementare per la previsione nel cloud.

Poi carichi il modello salvato in un bucket Cloud Storage e crei una risorsa modello su AI Platform, specificando il percorso Cloud Storage del modello salvato.

Quando esegui il deployment del modello, puoi anche fornire codice personalizzato (beta) per personalizzare il modo in cui gestisce le richieste di previsione.

Invia richieste di previsione al tuo modello

AI Platform fornisce i servizi necessari per richiedere le previsioni del tuo modello nel cloud.

Esistono due modi per ottenere previsioni dai modelli addestrati: previsione online (a volte chiamata previsione HTTP) e previsione batch. In entrambi i casi, trasmetti i dati di input a un modello di machine learning ospitato sul cloud e ottieni inferenze per ogni istanza di dati.

Monitorare il servizio di previsione

Monitora le previsioni in modo continuativo. AI Platform fornisce API per esaminare i job in esecuzione. Inoltre, vari strumenti Google Cloud supportano il funzionamento del modello di cui è stato eseguito il deployment, come Cloud Logging e Cloud Monitoring.

Gestire i modelli e le relative versioni

AI Platform fornisce varie interfacce per gestire il modello e le sue versioni, tra cui un'API REST, lo strumento a riga di comando gcloud ai-platform e la console Google Cloud.

Passaggi successivi