![Che cos'è una pipeline nel machine learning o apprendimento automatico?](https://static.wixstatic.com/media/3c029f_50e6977203c74601bfe9d785b01ae9c8~mv2.png/v1/fill/w_938,h_910,al_c,q_90,enc_auto/3c029f_50e6977203c74601bfe9d785b01ae9c8~mv2.png)
Che cos'è una pipeline?
Una pipeline di machine learning è un modo per codificare e automatizzare il flusso di lavoro necessario per produrre un modello di machine learning. Le pipeline di machine learning sono costituite da più passaggi sequenziali che eseguono qualsiasi operazione, dall'estrazione e pre-elaborazione dei dati all'addestramento e alla distribuzione del modello.
Per i team di data science, la pipeline di produzione dovrebbe essere il prodotto centrale. Incapsula tutte le migliori pratiche apprese per la produzione di un modello di apprendimento automatico per il caso d'uso dell'organizzazione e consente al team di eseguire su larga scala. Sia che tu stia mantenendo più modelli in produzione o supporti un singolo modello che deve essere aggiornato frequentemente, una pipeline di machine learning end-to-end è un must.
Quali sono i vantaggi di una pipeline di machine learning?
È utile esaminare le fasi che molti team di data science attraversano per comprendere i vantaggi di una pipeline di machine learning. L'implementazione dei primi modelli di machine learning tende ad essere molto orientata ai problemi e gli scienziati dei dati si concentrano sulla produzione di un modello per risolvere un singolo problema aziendale, ad esempio la classificazione delle immagini.
Il ciclo manuale
I team tendono a iniziare con un flusso di lavoro manuale, dove non esiste una vera infrastruttura. La raccolta dei dati, la pulizia dei dati, l'addestramento del modello e la valutazione sono probabilmente scritti in un unico taccuino. Il notebook viene eseguito localmente per produrre un modello, che viene consegnato a un ingegnere incaricato di trasformarlo in un endpoint API. In sostanza, in questo flusso di lavoro, il modello è il prodotto.
![Che cos'è una pipeline nel machine learning o apprendimento automatico?](https://static.wixstatic.com/media/3c029f_ae04122fa2ac433f9d0a4dec2f2a3df3~mv2.png/v1/fill/w_980,h_310,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/3c029f_ae04122fa2ac433f9d0a4dec2f2a3df3~mv2.png)
Il flusso di lavoro manuale è spesso ad hoc e inizia a interrompersi quando un team inizia ad accelerare il ciclo di iterazione perché i processi manuali sono difficili da ripetere e documentare. Un monolite di codice, anche in formato taccuino, tende a non essere adatto alla collaborazione.
Caratteristiche di una pipeline ML manuale:
Il modello è il prodotto
Processo manuale o guidato da script
Una disconnessione tra il data scientist e l'ingegnere
Ciclo di iterazione lento
Nessun test automatizzato o monitoraggio delle prestazioni
Nessun controllo di versione
La pipeline automatizzata
Una volta che i team passano da una fase in cui aggiornano occasionalmente un singolo modello a più modelli che si aggiornano frequentemente in produzione, un approccio di pipeline diventa fondamentale. In questo flusso di lavoro, non crei e mantieni un modello. Sviluppi e gestisci una pipeline. La pipeline è il prodotto.
![Che cos'è una pipeline nel machine learning o apprendimento automatico?](https://static.wixstatic.com/media/3c029f_f4a6d8938ec446f99189fd5841884228~mv2.png/v1/fill/w_980,h_425,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/3c029f_f4a6d8938ec446f99189fd5841884228~mv2.png)
Una pipeline automatizzata è costituita da componenti e da un progetto di come questi sono accoppiati per produrre e aggiornare il componente più cruciale: il modello. Nel flusso di lavoro automatizzato, entrano in gioco i solidi principi di ingegneria. Il codice è suddiviso in componenti più gestibili, come la convalida dei dati, il training del modello, la valutazione del modello e l'attivazione del re-training.
Il sistema offre la possibilità di eseguire, iterare e monitorare un singolo componente nel contesto dell'intera pipeline con la stessa facilità e rapida iterazione dell'esecuzione di una cella di notebook locale su un laptop. Consente inoltre di definire gli input e gli output richiesti, le dipendenze della libreria e le metriche monitorate. Questa capacità di suddividere la risoluzione dei problemi in componenti riproducibili, predefiniti ed eseguibili costringe il team ad aderire a un processo congiunto. Un processo congiunto, a sua volta, crea un linguaggio ben definito tra i data scientist e gli ingegneri e alla fine porta anche a una configurazione automatizzata che è l'equivalente ML dell'integrazione continua (CI), un prodotto in grado di aggiornarsi automaticamente.
Caratteristiche di una pipeline ML automatizzata:
La pipeline è il prodotto
Processo completamente automatizzato
Cooperazione tra il data scientist e l'ingegnere
Ciclo di iterazione veloce
Test automatizzati e monitoraggio delle prestazioni
Controllato dalla versione
L'approccio Pipeline consente la scalabilità dell'apprendimento automatico
La transizione da un ciclo manuale a una pipeline automatizzata può avere molte iterazioni intermedie a seconda della scala delle tue attività di apprendimento automatico e della composizione del tuo team. In definitiva, lo scopo di una pipeline è consentire di aumentare il ciclo di iterazione con l'ulteriore sicurezza che offre la codifica del processo e di scalare quanti modelli è possibile mantenere realisticamente in produzione.
Cosa considerare quando si costruisce una pipeline di machine learning?
Come affermato sopra, lo scopo è aumentare il ciclo di iterazione e la fiducia. Il tuo punto di partenza può variare; ad esempio, potresti aver già strutturato il tuo codice. I quattro passaggi seguenti sono un modo eccellente per affrontare la creazione di una pipeline ML:
Costruisci ogni passaggio in componenti riutilizzabili. Considera tutti i passaggi necessari per produrre il tuo modello di machine learning. Inizia con il modo in cui i dati vengono raccolti e pre-elaborati e procedi da lì. In genere si consiglia di limitare l'ambito di ciascun componente per renderlo più facile da comprendere e iterare.
Non dimenticare di codificare i test in componenti. Il test dovrebbe essere considerato una parte intrinseca della pipeline. Se, in un processo manuale, esegui alcuni controlli di integrità su come dovrebbero apparire i dati di input e le previsioni del modello, dovresti codificarli in una pipeline. Una pipeline offre l'opportunità di essere molto, molto più approfonditi con i test poiché non dovrai eseguirli manualmente ogni volta.
Lega i tuoi passi insieme. Esistono molti modi per gestire l'orchestrazione di una pipeline di machine learning, ma i principi rimangono gli stessi. Definisci l'ordine in cui vengono eseguiti i componenti e come gli input e gli output vengono eseguiti attraverso la pipeline. Noi, ovviamente, consigliamo di utilizzare Valohai per costruire la tua pipeline. La prossima sezione è una breve panoramica di come costruire una pipeline con Valohai.
Automatizza quando necessario. Sebbene la creazione di una pipeline introduca già l'automazione in quanto gestisce l'esecuzione dei passaggi successivi senza l'intervento umano, per molti l'obiettivo finale è anche eseguire automaticamente la pipeline di apprendimento automatico quando vengono soddisfatti criteri specifici. Ad esempio, è possibile monitorare la deriva del modello in produzione per avviare un ciclo di riaddestramento o semplicemente farlo più periodicamente, come ogni giorno.
A seconda del tuo caso d'uso specifico, la tua pipeline di machine learning finale potrebbe avere un aspetto diverso. Ad esempio, potresti addestrare, valutare e distribuire più modelli nella stessa pipeline. Esistono componenti comuni simili nella maggior parte delle pipeline di machine learning.
Esempi di diversi componenti di una pipeline:
Convalida dei dati
Pulizia dei dati
Formazione modello
Valutazione del modello
Convalida del modello
Innesco di riqualificazione
Inoltre, la pipeline ha anche componenti statici come:
Endpoint di distribuzione
Archivio metadati
Controllo della versione del codice sorgente
Implicazioni di una pipeline di modellizzazione
La pipeline di modellazione è uno strumento importante per i professionisti del machine learning.
Prima di continuare vogliamo farti vedere un possibile esempio di pipe line in un processo di creazione di un modello di ML
![Esempio di PipeLine nel Machine Learning](https://static.wixstatic.com/media/3c029f_ffbdb82af299464ea981acde90e2f7ea~mv2.png/v1/fill/w_945,h_416,al_c,q_90,enc_auto/3c029f_ffbdb82af299464ea981acde90e2f7ea~mv2.png)
Tuttavia, ci sono importanti implicazioni che devono essere considerate quando li si usa.
La principale confusione per i principianti quando si utilizzano le pipeline consiste nel comprendere ciò che la pipeline ha appreso o la configurazione specifica scoperta dalla pipeline.
Ad esempio, una pipeline può utilizzare una trasformazione dei dati che si configura automaticamente, come la tecnica RFECV per la selezione delle funzionalità.
Quando valuta una pipeline che utilizza una trasformazione dei dati configurata automaticamente, quale configurazione sceglie? o Quando ha adattato questa pipeline come modello finale per fare previsioni, quale configurazione ha scelto?
La risposta è che non importa .
Un altro esempio è l'uso dell'ottimizzazione degli iperparametri come passaggio finale della pipeline.
La ricerca della griglia verrà eseguita sui dati forniti da eventuali passaggi di trasformazione precedenti nella pipeline e quindi cercherà la migliore combinazione di iperparametri per il modello che utilizza tali dati, quindi adatterà un modello con tali iperparametri sui dati.
Durante la valutazione di una pipeline che esegue ricerche sulla griglia degli iperparametri del modello, quale configurazione sceglie? o Quando ha adattato questa pipeline come modello finale per fare previsioni, quale configurazione ha scelto?
La risposta è ancora una volta, non importa .
La risposta si applica quando si utilizza una fase di spostamento della soglia o di calibrazione della probabilità alla fine della pipeline.
Il motivo è lo stesso per cui non ci preoccupiamo della struttura interna specifica o dei coefficienti del modello scelto.
Ad esempio, quando si valuta un modello di regressione logistica, non è necessario ispezionare i coefficienti scelti su ogni "k-fold" di convalida incrociata per scegliere il modello. Invece, ci concentriamo sulla sua abilità predittiva fuori dal comune.
Allo stesso modo, quando si utilizza un modello di regressione logistica come modello finale per fare previsioni su nuovi dati, non è necessario ispezionare i coefficienti scelti quando si adatta il modello all'intero set di dati prima di effettuare previsioni.
Possiamo ispezionare e scoprire i coefficienti utilizzati dal modello come esercizio di analisi, ma non influisce sulla selezione e sull'uso del modello.
Questa stessa risposta si generalizza quando si considera una pipeline di modellazione.
Non ci interessa sapere quali funzionalità potrebbero essere state selezionate automaticamente da una trasformazione dei dati nella pipeline. Inoltre, non ci interessa sapere quali iperparametri sono stati scelti per il modello quando si utilizza una ricerca su griglia come passaggio finale nella pipeline di modellazione.
In tutti e tre i casi: il modello singolo, la pipeline con selezione automatica delle caratteristiche e la pipeline con una ricerca a griglia, stiamo valutando il " modello " o la " pipeline di modellazione " come unità atomica.
La pipeline consente a noi professionisti dell'apprendimento automatico di salire di un livello di astrazione ed essere meno interessati ai risultati specifici degli algoritmi e più interessati alla capacità di una sequenza di produzione.
Pertanto, possiamo concentrarci sulla valutazione della capacità degli algoritmi sul set di dati, non sul prodotto degli algoritmi, ovvero il modello. Una volta che abbiamo una stima della pipeline, possiamo applicarla ed essere certi che otterremo prestazioni simili, in media.
È un cambiamento nel modo di pensare e potrebbe volerci del tempo per abituarsi.
È anche la filosofia alla base delle moderne tecniche AutoML (auto apprendimento automatico delle macchine) che trattano l'apprendimento automatico applicato come un grande problema di ricerca combinatoria.
Riepilogo
Nello specifico hai imparato:
L'apprendimento automatico applicato non riguarda solo la ricerca di un modello con buone prestazioni; richiede anche la ricerca di una sequenza appropriata di fasi di preparazione dei dati e di fasi per la post-elaborazione delle previsioni.
Collettivamente, le operazioni necessarie per affrontare un problema di modellazione predittiva possono essere considerate un'unità atomica chiamata pipeline di modellazione.
L'approccio all'apprendimento automatico applicato attraverso la lente delle pipeline di modellazione richiede un cambiamento nel modo di pensare dalla valutazione di specifiche configurazioni del modello alle sequenze di trasformazioni e algoritmi.
Avete domande? Poni le tue domande nei commenti qui sotto e faremo del nostro meglio per rispondere.
Commentaires