Panoramica
Kubeflow è un framework Kubernetes native e open source per lo sviluppo, la gestione e l'esecuzione dei carichi di lavoro di machine learning (ML). Si tratta di una piattaforma che riunisce una gamma di strumenti adatti ai principali scenari di utilizzo dell'AI/ML, come l'esplorazione e le pipeline di dati, ma anche l'addestramento e la fornitura dei modelli.
Grazie a Kubeflow, i data scientist possono accedere a queste funzionalità tramite un portale che offre astrazioni di livello elevato per interagire con gli strumenti forniti. In questo modo, i data scientist non devono necessariamente conoscere in dettaglio come funziona l'interazione tra Kubernetes e tali strumenti. Kubeflow è progettato appositamente per essere eseguito su Kubernetes e ne incorpora molti dei concetti chiave, incluso il modello dell'operatore.
A cosa serve Kubeflow?
Kubeflow risolve molte delle problematiche legate all'orchestrazione delle pipeline di ML fornendo un set di strumenti e API che semplifica il processo di addestramento e distribuzione dei modelli di ML con modalità scalabili. Con "pipeline" si intende un flusso di lavoro di ML, compresi i suoi componenti e le relative interazioni. Con un unico progetto, Kubeflow è in grado di soddisfare le esigenze di più team, permettendo loro di lavorare da qualsiasi infrastruttura. Ciò offre ai data scientist la possibilità di addestrare e distribuire i modelli di ML dal cloud di loro scelta, come IBM Cloud, Google Cloud, AWS di Amazon e Azure.
Nel complesso, Kubeflow consente la standardizzazione delle operazioni di ML (MLOps) gestendo i progetti e sfruttando al tempo stesso tutti i vantaggi del cloud computing. Alcuni degli scenari di utilizzo principali di Kubeflow includono la preparazione dei dati e l'addestramento, la valutazione, l'ottimizzazione e il deployment dei modelli.
Perché eseguire i carichi di lavoro di ML su Kubernetes?
Kubernetes svolge un ruolo chiave nell'accelerazione del ciclo di vita del machine learning poiché fornisce ai data scientist i livelli di agilità, flessibilità, portabilità e scalabilità indispensabili per l'addestramento, il test e il deployment dei modelli di ML.
Scalabilità: Kubernetes facilita la scalabilità dei carichi di lavoro di ML in base alle necessità. In questo modo le attività di machine learning sostengono elaborazioni e addestramenti su larga scala senza interferire con altri elementi del progetto.
Efficienza: Kubernetes ottimizza l'allocazione delle risorse pianificando i carichi di lavoro su nodi, in base alla loro disponibilità e capacità. Verificando che le risorse di elaborazione siano utilizzate intenzionalmente, gli utenti possono ridurre i costi a fronte di un aumento delle prestazioni.
Portabilità: Kubernetes offre un ambiente standardizzato e indipendente dalla piattaforma con il quale i data scientist possono sviluppare una pipeline di ML e distribuirla tra più ambienti e piattaforme cloud, senza doversi occupare dei problemi di compatibilità e dei vincoli con i fornitori.
Tolleranza di errore: grazie alla tolleranza di errore incorporata e alle capacità di riparazione automatica, puoi affidare a Kubernetes l'esecuzione continua delle pipeline di ML, anche in caso di guasto hardware o software.
Quali sono i componenti di Kubeflow?
- La Kubeflow Central Dashboard consiste in un'interfaccia web autenticata che dà accesso a Kubeflow e ai componenti del suo ecosistema. In quanto hub centralizzato, riunisce le interfacce utente di diversi strumenti e servizi all'interno del cluster, offrendo così un punto di accesso unificato per la gestione della piattaforma di machine learning.
- Kubeflow si integra con i notebook Jupyter, offrendo quindi un ambiente interattivo per l'esplorazione dei dati, la sperimentazione e lo sviluppo dei modelli. I notebook supportano diversi linguaggi di programmazione, tra cui Python, R e Scala, e consentono agli utenti di collaborare alla creazione e all'esecuzione di flussi di lavoro di ML riproducibili.
- Le Kubeflow Pipelines permettono di definire ed eseguire flussi di lavoro di ML complessi come grafi aciclici diretti (DAG). Sono un metodo usato per orchestrare e automatizzare i processi end to end come l'elaborazione preliminare dei dati e l'addestramento, la valutazione e il deployment dei modelli, favorendo la riproducibilità, la scalabilità e la collaborazione nei progetti di ML. Kubeflow Pipelines SDK è una raccolta di pacchetti Python che consente agli utenti di definire ed eseguire i flussi di lavoro di machine learning in modo preciso ed efficiente.
- Il Kubeflow Training Operator fornisce strumenti per l'addestramento su larga scala dei modelli di machine learning. Supporta anche l'addestramento distribuito, grazie a framework come TensorFlow, PyTorch e XGBoost. Gli utenti possono sfruttare la scalabilità e le funzionalità di gestione delle risorse di Kubernetes per addestrare i modelli in modo efficiente nei cluster di sistemi.
- Kubeflow Serving permette agli utenti di distribuire i modelli di ML addestrati come servizi scalabili pronti per il passaggio in produzione. Consiste in un'interfaccia coerente per la fornitura di modelli che si basa sui framework più comuni, come TensorFlow Serving, Seldon Core o server di inferenza personalizzati. La distribuzione dei modelli può avvenire in tempo reale o in batch, con previsioni fornite tramite endpoint HTTP.
- Kubeflow Metadata è un repository centralizzato per il tracciamento e la gestione dei metadati associati agli esperimenti, alle esecuzioni e agli artefatti di ML. Offre una vista coerente dei metadati di ML nell'intero flusso di lavoro, garantendo così riproducibilità, collaborazione e governance nei progetti di ML.
Inoltre, Kubeflow fornisce interfacce utente basate sul web per il monitoraggio e la gestione degli esperimenti di ML, i processi di addestramento dei modelli e i servizi di inferenza. Con le visualizzazioni, le metriche e i log offerti da tali interfacce, gli utenti sono in grado di monitorare i progressi dei flussi di lavoro di ML, risolvere i problemi e prendere decisioni informate.
Poiché si basa sul modello dell'operatore di Kubernetes, Kubeflow è caratterizzato da estensibilità e possibilità di personalizzazione che lo rendono adatto ad ambienti e scenari di utilizzo specifici. Gli utenti possono anche ottimizzare le funzionalità dei flussi di lavoro di ML integrando componenti aggiuntivi, come strumenti per l'elaborazione preliminare dei dati, archivi di funzionalità, soluzioni di monitoraggio e sorgenti di dati esterne.
Il ruolo di Red Hat
Red Hat® OpenShift® è la piattaforma affidabile, coerente e completa per lo sviluppo, la distribuzione e la gestione delle applicazioni in tutti gli ambienti. Con funzionalità DevOps come OpenShift Pipelines, OpenShift GitOps e Red Hat Quay e l'integrazione con acceleratori hardware, Red Hat OpenShift migliora la collaborazione e accelera la distribuzione di applicazioni basate sull'intelligenza artificiale (IA).
Red Hat OpenShift AI è un editor visivo adatto alla creazione e all'automazione di esperimenti e pipeline di data science basato sulle pipeline Kubeflow. Si tratta di una piattaforma MLOps integrata per la creazione, l'addestramento, la distribuzione e il monitoraggio su larga scala di applicazioni basate sull'IA e di modelli di base e predittivi in ambienti cloud ibridi. Puoi automatizzare e semplificare il processo iterativo di integrazione dei modelli di ML nei processi di sviluppo software, rollout in produzione, monitoraggio, riaddestramento e ridistribuzione per previsioni sempre costanti.
Disponibile in modo nativo su IBM Cloud, Google Cloud, AWS e Azure, Red Hat OpenShift consente agli utenti di automatizzare la gestione dei cluster Kubernetes per creare, distribuire e ampliare le applicazioni in modo rapido con una piattaforma applicativa pronta per il passaggio in produzione.