Articles

Una panoramica del flusso di lavoro di apprendimento automatico end-to-end

Icona di un occhio

In questa sezione, forniamo una panoramica di alto livello di un flusso di lavoro tipico per lo sviluppo di software basato sull’apprendimento automatico.In generale, l’obiettivo di un progetto di apprendimento automatico è quello di costruire un modello statistico utilizzando i dati raccolti e applicando algoritmi di apprendimento automatico a loro.Pertanto, ogni software basato su ML include tre artefatti principali: dati, modello ML e Codice. Corrispondente a questi artefatti, il tipico flusso di lavoro di apprendimento automatico è costituito da tre fasi principali:

  • Data Engineering: acquisizione dati & preparazione dei dati,
  • ML Model Engineering: ML model training & serving e
  • Code Engineering :integrazione del modello ML nel prodotto finale.

La figura seguente mostra i passaggi principali coinvolti in un tipico flusso di lavoro ML.

Machine Learning Engineering

Data Engineering

Il passo iniziale in qualsiasi flusso di lavoro di data science è quello di acquisire e preparare i dati da analizzare.In genere, i dati vengono integrati da varie risorse e hanno diversi formati.La preparazione dei dati segue la fase di acquisizione dei dati, che è secondo Gartner “un processo iterativo e agile per esplorare, combinare, pulire e trasformare i dati grezzi in set di dati curati per l’integrazione dei dati, data science, data discovery e analytics/business intelligence (BI) casi d’uso”.In particolare, anche se la fase di preparazione è una fase intermedia volta a preparare i dati per l’analisi, questa fase è segnalato per essere il più costoso per quanto riguarda le risorse e il tempo.La preparazione dei dati è un’attività critica nel flusso di lavoro di data science perché è importante evitare la propagazione di errori di dati alla fase successiva, l’analisi dei dati, in quanto ciò comporterebbe la derivazione di intuizioni errate dai dati.

La pipeline di Data Engineering include una sequenza di operazioni sui dati disponibili che porta alla fornitura di set di dati di formazione e test per gli algoritmi di machine learning:

  1. Data Ingestion-Raccolta dei dati utilizzando vari framework e formati,come Spark, HDFS, CSV, ecc. Questa fase potrebbe includere anche la generazione di dati sintetici o l’arricchimento dei dati.
  2. Esplorazione e validazione-Include la profilazione dei dati per ottenere informazioni sul contenuto e sulla struttura dei dati. L’output di questo passaggio è un insieme di metadati, come max, min, avg di valori. Le operazioni di convalida dei dati sono funzioni di rilevamento degli errori definite dall’utente, che scansionano il set di dati per individuare alcuni errori.
  3. Dati Wrangling (Pulizia)-Il processo di ri-formattazione attributi particolari e correggere gli errori nei dati, come valori mancanti imputazione.
  4. Etichettatura dei dati: il funzionamento della pipeline di ingegneria dei dati, in cui ciascun punto dati viene assegnato a una categoria specifica.
  5. Data Splitting – Suddivisione dei dati in set di dati di formazione, convalida e test da utilizzare durante le fasi di machine learning di base per produrre il modello ML.

Model Engineering

Il nucleo del flusso di lavoro ML è la fase di scrittura ed esecuzione di algoritmi di machine learning per ottenere un modello ML. La pipeline di ingegneria del modello include una serie di operazioni che portano a un modello finale:

  1. Model Training – Il processo di applicazione dell’algoritmo di machine learning sui dati di allenamento per addestrare un modello ML. Include anche l’ingegneria delle funzionalità e l’ottimizzazione dell’iperparametro per l’attività di formazione del modello.
  2. Valutazione del modello-Convalida del modello addestrato per garantire che soddisfi gli obiettivi codificati originali prima di servire il modello ML in produzione all’utente finale.
  3. Model Testing-Esecuzione del “Model Acceptance Test” finale utilizzando il set di dati hold backtest.
  4. Imballaggio del modello-Il processo di esportazione del modello ML finale in un formato specifico (ad esempio PMML, PFA o ONNX), che descrive il modello, al fine di essere utilizzato dall’applicazione aziendale.

Distribuzione del modello

Una volta formato un modello di apprendimento automatico, è necessario distribuirlo come parte di un’applicazione aziendale, ad esempio un’applicazione mobile o desktop.I modelli ML richiedono vari punti dati (vettore di funzionalità) per produrre previsioni.La fase finale del flusso di lavoro ML è l’integrazione del modello ML precedentemente progettato nel software esistente.Questa fase include le seguenti operazioni:

  1. Model Serving – Il processo di indirizzamento dell’artefatto del modello ML in un ambiente di produzione.
  2. Monitoraggio delle prestazioni del modello: il processo di osservazione delle prestazioni del modello ML basato su dati in tempo reale e precedentemente non visti, come previsioni o raccomandazioni. In particolare, siamo interessati a segnali ML-specifici, come la deviazione di previsione dalle prestazioni del modello precedente. Questi segnali potrebbero essere usati come trigger per la rieducazione del modello.
  3. Registrazione delle prestazioni del modello-Ogni richiesta di inferenza risulta nel log-record.