Flusso di lavoro del machine learning

AI Platform consente molte parti del flusso di lavoro di machine learning (ML). Questo documento fornisce una descrizione introduttiva del processo ML complessivo e spiega dove si inserisce ogni servizio AI Platform nel processo.

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

Una breve descrizione del machine learning

Il machine learning (ML) è un sottocampo dell'intelligenza artificiale (AI). L'obiettivo del machine learning è far sì che i computer apprendano dai dati che fornisci. Anziché scrivere codice che descrive l'azione che il computer deve eseguire, fornisce un algoritmo che si adatta in base a esempi di comportamento previsto. Il programma risultante, composto dall'algoritmo e dai parametri appresi associati, è chiamato modello addestrato.

Flusso di lavoro ML

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

Flusso di lavoro ML
Flusso di lavoro ML

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

  • Recupera i tuoi dati e preparali.

  • Sviluppa il modello.

  • Addestra un modello ML sui tuoi dati:

    • Addestra modello
    • Valuta l'accuratezza del modello
    • Ottimizza iperparametri
  • Esegui il deployment del modello addestrato.

  • Invia richieste di previsione al tuo modello:

    • Previsione online
    • Previsione batch
  • Monitora costantemente le previsioni.

  • Gestisci i modelli e le relative versioni.

Queste fasi sono iterative. In qualsiasi momento del processo potrebbe essere necessario rivalutare e tornare a un passaggio precedente.

Il resto di questa pagina illustra in dettaglio le fasi.

Prima di iniziare, valuta il problema

Prima di iniziare a pensare a come risolvere un problema con il machine learning, pensa al problema che stai cercando di risolvere. Poniti le seguenti domande:

Hai un problema ben definito da risolvere?

Sono possibili approcci diversi quando si utilizza il machine learning per riconoscere i pattern nei dati. È importante definire le informazioni che si sta cercando di ottenere dal modello e il motivo per cui sono necessarie.

Il machine learning è la soluzione migliore per il problema?

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

Dovresti considerare l'utilizzo del machine learning per il tuo problema solo se hai accesso a un set di dati dimensionabile da cui addestrare il modello. Non esistono valori assoluti sulla quantità di dati sufficienti. Ogni caratteristica (attributo dei dati) che includi nel modello aumenta il numero di istanze (record di dati) necessarie per addestrare correttamente il modello. Consulta le best practice per il machine learning per alcune indicazioni sul feature engineering.

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 fornire un modo più semplice e concreto per risolvere il problema.

Come si misura il successo del modello?

Una delle maggiori sfide della creazione di un modello ML è sapere quando è stata completata la fase di sviluppo del modello. Si è tentati di continuare a perfezionare il modello per sempre, ottenendo miglioramenti sempre più piccoli in termini di accuratezza. Prima di iniziare il processo, devi sapere che cosa significa avere successo. Considera il livello di precisione sufficiente per le tue esigenze. Considera le conseguenze del livello di errore corrispondente.

Recupera i tuoi dati e preparali

Devi avere accesso a un grande set di dati di addestramento che includa l'attributo (chiamato funzionalità in ML) che vuoi essere in grado di dedurre (previsione) in base alle altre caratteristiche.

Ad esempio, supponiamo che tu voglia che il modello preveda il prezzo di vendita di un'abitazione. Inizia con un grande insieme di dati che descrivono le caratteristiche delle case in una data area, compreso il prezzo di vendita di ogni abitazione.

Analisi dei dati

Dopo aver recuperato i dati, devi analizzarli e comprenderli e prepararli affinché fungano da input per il processo di addestramento. Ad esempio, potrebbe essere necessario eseguire questi passaggi:

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

Pre-elaborazione dei dati

Nella fase di pre-elaborazione, trasformi dati validi e puliti nel formato più adatto alle esigenze del tuo modello. Ecco alcuni esempi di pre-elaborazione dei dati:

  • Normalizzazione dei dati numerici su una scala comune.
  • Applicazione di regole di formattazione ai dati. Ad esempio, rimuovere i tag HTML da una funzionalità di testo.
  • Ridurre la ridondanza dei dati attraverso la semplificazione. Ad esempio, la conversione di una funzionalità di testo in una rappresentazione borsa di parole.
  • Rappresentazione numerica del testo. Ad esempio, assegnare valori a ogni valore possibile in una funzionalità categorica.
  • Assegnazione di coppie chiave-valore alle istanze di dati.

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

TensorFlow dispone di diverse librerie di pre-elaborazione utilizzabili con AI Platform. Ad esempio, tf.transform.

Puoi eseguire il deployment e gestire le pipeline scikit-learn su AI Platform per applicare trasformazioni integrate 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-elabora l'input al momento della previsione nello stesso modo in cui hai pre-elaborato i dati durante l'addestramento.

Inoltre, considera i seguenti servizi Google Cloud:

  • I blocchi note gestiti dall'utente di Vertex AI Workbench sono istanze di Deep Learning VM Images preconfigurate con blocchi note JupyterLab e ottimizzate per attività di data science di deep learning, dalla preparazione e l'esplorazione dei dati fino 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 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 gli stessi livelli di affidabilità ed espressività.

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

Codificare il modello

Sviluppa il tuo modello utilizzando tecniche ML consolidate o definendo nuove operazioni e approcci.

Inizia ad apprendere consultando la guida introduttiva di TensorFlow. Puoi anche seguire la documentazione di scikit-learn o la documentazione di XGBoost per creare il tuo modello. Esamina poi alcuni esempi di codice progettati per funzionare con AI Platform.

Addestra, valuta e ottimizza il tuo modello

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

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

Allo stesso modo, durante la valutazione del modello addestrato, gli fornisci dati che includono i valori target. Puoi confrontare i risultati delle previsioni del modello con i valori effettivi dei dati di valutazione e utilizzare tecniche statistiche appropriate per il tuo modello per misurarne l'efficacia.

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

Test del modello

Durante l'addestramento, applichi il modello ai dati noti per regolare le impostazioni e migliorare i risultati. Se i risultati sono sufficienti per le esigenze della tua applicazione, devi eseguire il deployment del modello in qualsiasi sistema utilizzato dall'applicazione e testarlo.

Per testare il modello, eseguine i dati in un contesto il più vicino 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.

Puoi anche creare set di dati di test diversi a seconda della natura del modello. Ad esempio, puoi utilizzare set di dati diversi per località o punti temporali specifici oppure puoi dividere le istanze per imitare dati demografici diversi.

Durante il processo di test, apporti modifiche 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 gli strumenti per caricare il modello ML addestrato nel cloud, in modo che tu possa inviare richieste di previsione al modello.

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

Quindi, 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 un codice personalizzato (beta) per personalizzare il modo in cui gestisce le richieste di previsione.

Invia richieste di previsione al modello

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

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

Monitorare il servizio di previsione

Monitora costantemente le previsioni. AI Platform fornisce API per esaminare i job in esecuzione. Inoltre, il funzionamento del modello di cui hai eseguito il deployment è supportato da vari strumenti Google Cloud, ad esempio Cloud Logging e Cloud Monitoring.

Gestisci i tuoi modelli e le tue versioni

AI Platform offre varie interfacce per la gestione del modello e delle versioni, tra cui un'API REST, lo gcloud ai-platform strumento a riga di comando e la console Google Cloud.

Passaggi successivi