Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: ✔️ Servizio Azure Kubernetes Standard automatico ✔️ Servizio Azure Kubernetes standard
In questo articolo vengono illustrate le operazioni di machine learning (MLOps), compresi i tipi di procedure e gli strumenti utilizzati, e come questo possa semplificare e velocizzare i flussi di lavoro di intelligenza artificiale e machine learning in Servizio Azure Kubernetes (AKS).
Modalità del cluster AKS per MLOps
AKS supporta due modalità del cluster: AKS Automatico e AKS Standard. Scegliere AKS Automatic quando si vuole una configurazione di base pronta per la produzione con meno attività di gestione della piattaforma successive alla distribuzione. Scegliere AKS Standard quando è necessario un controllo più approfondito sull'infrastruttura del cluster e sulla configurazione della piattaforma.
I concetti relativi al ciclo di vita di MLOps in questo articolo si applicano a entrambe le modalità. Tuttavia, la responsabilità dell'implementazione varia in base alla modalità: Il servizio Azure Kubernetes automatico fornisce impostazioni predefinite più preconfigurate, mentre il servizio Azure Kubernetes Standard richiede in genere una configurazione della piattaforma e una proprietà del ciclo di vita più espliciti.
| Area | AKS Automatico | Servizio Azure Kubernetes Standard |
|---|---|---|
| Configurazione del cluster di base | Più impostazioni predefinite | Opzioni di configurazione più esplicite |
| Operazioni del pool di nodi di sistema | Altro comportamento gestito dal servizio | Altro comportamento gestito dall'operatore |
| Controlli di sicurezza di base | Diversi controlli sono preconfigurati in scenari comuni | I controlli sono comunemente abilitati e gestiti dagli operatori |
| Baseline di rete | Impostazioni predefinite con opinioni per i modelli comuni | Flessibilità di configurazione di rete più ampia |
| Operazioni e aggiornamenti | Comportamento operativo più gestito | Altro comportamento indirizzato all'operatore |
| Focus sull'implementazione di MLOps | Convalidare, gestire e ottimizzare le impostazioni predefinite | Progettare e configurare i controlli della piattaforma |
Che cos'è MLOps?
Le operazioni di Machine Learning (MLOps) includono procedure che facilitano la collaborazione tra data scientist, operazioni IT e stakeholder aziendali, assicurandosi che i modelli di Machine Learning vengano sviluppati, distribuiti e mantenuti in modo efficiente. MLOps applica i principi DevOps ai progetti di Machine Learning, che puntano ad automatizzare e semplificare il ciclo di vita di Machine Learning end-to-end. Questo ciclo di vita include l'addestramento, la pacchettizzazione, la validazione, la distribuzione, il monitoraggio e il riaddestramento dei modelli.
MLOps richiede più ruoli e strumenti per collaborare in modo efficace. I data scientist si concentrano sulle attività correlate al training del modello, noto come ciclo interno. I tecnici di Machine Learning e i team delle operazioni IT gestiscono il ciclo esterno, in cui applicano le procedure DevOps per creare pacchetti, convalidare, distribuire e monitorare i modelli. Quando il modello necessita di messa a punto o di riaddestramento, il processo ritorna al ciclo interno.
Questi passaggi del ciclo di vita sono uguali in tutte le modalità del cluster AKS. La differenza principale sta in quanta parte della configurazione della piattaforma e della configurazione operativa viene gestita direttamente dai tuoi team.
Pipeline MLOps
La pipeline MLOps può sfruttare vari strumenti e microservizi distribuiti in sequenza o in parallelo. Di seguito sono riportati alcuni esempi di componenti chiave nella pipeline che traggono vantaggio dall'implementazione delle procedure consigliate seguenti per ridurre il sovraccarico e consentire un'iterazione più rapida:
- Archivio dati non strutturato per il flusso di nuovi dati nell'applicazione
- Database vettoriale per archiviare ed eseguire query su dati strutturati e pre-elaborati
- Framework di inserimento e indicizzazione dei dati
- Flussi di lavoro per l'ingestione di vettori e/o il riaddestramento del modello
- Strumenti di raccolta e avvisi delle metriche (rilevamento delle prestazioni del modello, volume di dati inseriti e così via)
- Strumenti di gestione del ciclo di vita
Questi componenti della pipeline sono rilevanti sia per il servizio Azure Kubernetes Automatic che per il servizio Azure Kubernetes Standard. La scelta della modalità influisce principalmente sui limiti di proprietà della piattaforma anziché sulla finalità della pipeline.
DevOps e MLOps
DevOps è una combinazione di strumenti e procedure che consentono di creare applicazioni affidabili e riproducibili. L'obiettivo dell'uso di DevOps è offrire rapidamente valore agli utenti finali. La creazione, la distribuzione e il monitoraggio di modelli affidabili e riproducibili per offrire valore agli utenti finali è l'obiettivo principale di MLOps.
Esistono tre processi essenziali per MLOps:
- Carichi di lavoro di Machine Learning per i quali un data scientist è responsabile, tra cui l'analisi esplorativa dei dati (EDA), la progettazione delle funzionalità e il training e l'ottimizzazione dei modelli.
- Procedure di sviluppo software, tra cui pianificazione, sviluppo, test e creazione di pacchetti del modello per la distribuzione.
- Aspetti operativi della distribuzione e della gestione del modello nell'ambiente di produzione, tra cui il rilascio, la configurazione delle risorse e il monitoraggio del modello.
In AKS Automatic, i team possono spesso dedicare meno impegno alla configurazione standard della piattaforma e di più all’orchestrazione di criteri, qualità e ciclo di vita del modello. In AKS Standard, i team in genere eseguono una configurazione e una progettazione della piattaforma più esplicite.
Principi DevOps che si applicano a MLOps
MLOps sfrutta diversi principi di DevOps per migliorare il ciclo di vita di Machine Learning, ad esempio l'automazione, l'integrazione continua e il recapito (CI/CD), il controllo del codice sorgente, la pianificazione Agile e l'infrastruttura come codice (IaC).
Automazione
Automatizzando le attività, è possibile ridurre gli errori manuali, aumentare l'efficienza e garantire la coerenza nel ciclo di vita di Machine Learning. L'automazione può essere applicata a varie fasi, tra cui raccolta dati, training del modello, distribuzione e monitoraggio. Grazie all'automazione, è anche possibile applicare misure proattive nella pipeline di intelligenza artificiale per garantire la conformità dei dati ai criteri dell'organizzazione.
Ad esempio, la pipeline può automatizzare:
- Messa a punto/riaddestramento dei modelli a intervalli di tempo regolari o quando viene raccolta una determinata quantità di nuovi dati nella tua applicazione.
- Rilevamento della riduzione delle prestazioni per avviare l'ottimizzazione o la ripetizione del training in un subset di dati diverso.
- Analisi di vulnerabilità ed esposizioni comuni sulle immagini del contenitore di base estratte dai registri contenitori esterni per garantire procedure di sicurezza sicure.
In entrambe le modalità del cluster AKS, includere l'automazione per la convalida dei criteri, il rilevamento della deriva della configurazione e la governance delle versioni, oltre ai trigger relativi alla qualità del modello.
Integrazione continua (CI)
L'integrazione continua illustra la creazione e la verifica degli aspetti del processo di sviluppo del modello. L'obiettivo della CI è creare il codice e verificarne la qualità, insieme a quella del modello, prima della distribuzione. Sono inclusi i test su un intervallo di set di dati di esempio per garantire che il modello esegua le prestazioni previste e soddisfi gli standard di qualità.
In MLOps, CI potrebbe comportare:
- Refactoring in script Python o R del codice esplorativo nei notebook di Jupyter.
- Convalida dei nuovi dati di input per i valori mancanti o di errore.
- Test unitari e test di integrazione nella pipeline end-to-end.
Per eseguire l'esecuzione di linting e unit test, è possibile usare strumenti di automazione come Azure Pipelines in Azure DevOps o GitHub Actions.
In AKS Automatic, la CI in genere convalida gli artefatti rispetto ai valori predefiniti previsti dalla piattaforma. In AKS Standard, CI spesso verifica le ipotesi in base alle impostazioni della piattaforma configurate esplicitamente.
Consegna continua (CD)
La consegna continua comprende i passaggi necessari per distribuire in modo sicuro un modello in produzione. Il primo passaggio consiste nel creare un pacchetto e distribuire il modello in ambienti di pre-produzione, ad esempio ambienti di sviluppo e test. La portabilità dei parametri, degli iperparametri e degli altri artefatti del modello è un aspetto importante da mantenere man mano che si promuove il codice tramite questi ambienti. Questa portabilità è particolarmente importante quando si tratta di modelli di linguaggio di grandi dimensioni e modelli di diffusione stabili. Dopo che il modello ha superato gli unit test e i test di controllo della qualità (QA), è possibile approvarlo per la distribuzione nell'ambiente di produzione.
Le procedure di promozione sono simili in entrambe le modalità del cluster del servizio Azure Kubernetes, ma le pipeline standard del servizio Azure Kubernetes includono spesso una convalida più specifica dell'infrastruttura prima del rilascio.
Controllo del codice sorgente
Il controllo del codice sorgente, o il controllo della versione, è essenziale per gestire le modifiche apportate al codice e ai modelli. In un sistema di Machine Learning, si riferisce al controllo delle versioni dei dati, al controllo delle versioni del codice e al controllo delle versioni del modello, che consentono ai team interfunzionali di collaborare in modo efficace e tenere traccia delle modifiche nel tempo. L'uso di un sistema di controllo del codice sorgente basato su Git, ad esempio Azure Repos in Azure DevOps o in un repository GitHub, consente di mantenere a livello di codice una cronologia delle modifiche, ripristinare le versioni precedenti e gestire rami per esperimenti diversi.
Pianificazione Agile
La pianificazione Agile prevede l'isolamento del lavoro negli sprint, che sono brevi intervalli di tempo per completare attività specifiche. Questo approccio consente ai team di adattarsi rapidamente alle modifiche e offrire miglioramenti incrementali al modello. Il training dei modelli può essere un processo continuo e la pianificazione Agile può aiutare a definire l'ambito del progetto e a migliorare l'allineamento del team.
Per gestire la pianificazione Agile, è possibile usare strumenti come Azure Boards in Azure DevOps o GitHub.
Infrastruttura come codice (IaC)
L'infrastruttura viene usata come codice per ripetere e automatizzare l'infrastruttura necessaria per eseguire il training, la distribuzione e la gestione dei modelli. In un sistema di Machine Learning IaC semplifica e definisce le risorse di Azure appropriate necessarie per il tipo di processo specifico nel codice e il codice viene mantenuto in un repository. In questo modo è possibile controllare la versione dell'infrastruttura e apportare modifiche per l'ottimizzazione delle risorse, l'efficacia dei costi e così via in base alle esigenze.
In AKS Automatic, IaC si concentra comunemente sulle definizioni dei carichi di lavoro, sui controlli di governance e sulla coerenza dell'ambiente. In AKS Standard, IaC spesso include una configurazione esplicita più ampia del cluster e della piattaforma.
Contenuti correlati
Consulta gli articoli seguenti per scoprire le procedure consigliate per MLOps nelle tue applicazioni intelligenti su AKS:
- Procedure consigliate per le operazioni di Machine Learning in AKS
- Confronto tra funzionalità automatiche del servizio Azure Kubernetes e Standard del servizio Azure Kubernetes
- Distribuisci un modello IA con AI toolchain operator
- Procedure consigliate per la gestione delle risorse in AKS
- Applicare la sicurezza dei pod nel cluster AKS come sviluppatore di applicazioni