Stack MLOps: processo di sviluppo del modello come codice
Questo articolo descrive come MLOps Stacks consente di implementare il processo di sviluppo e distribuzione come codice in un repository controllato dal codice sorgente. Descrive anche i vantaggi dello sviluppo di modelli nella piattaforma Databricks Data Intelligence, una singola piattaforma che unifica ogni passaggio del processo di sviluppo e distribuzione del modello.
Che cos'è MLOps Stacks?
Con gli stack MLOps, l'intero processo di sviluppo del modello viene implementato, salvato e monitorato come codice in un repository controllato dal codice sorgente. L'automazione del processo in questo modo facilita distribuzioni ripetibili, prevedibili e sistematiche e consente l'integrazione con il processo CI/CD. Rappresenta il processo di sviluppo del modello come codice consente di distribuire il codice anziché distribuirlo. La distribuzione del codice automatizza la possibilità di compilare il modello, semplificando notevolmente il training del modello quando necessario.
Quando si crea un progetto usando MLOps Stacks, si definiscono i componenti del processo di sviluppo e distribuzione di ML, ad esempio i notebook da usare per progettazione di funzionalità, training, test e distribuzione, pipeline per training e test, aree di lavoro da usare per ogni fase e flussi di lavoro CI/CD usando GitHub Actions o Azure DevOps per il test e la distribuzione automatizzati del codice.
L'ambiente creato da MLOps Stacks implementa il flusso di lavoro MLOps consigliato da Databricks. È possibile personalizzare il codice per creare stack in base ai processi o ai requisiti dell'organizzazione.
Come funziona MLOps Stacks?
Usare l'interfaccia della riga di comando di Databricks per creare uno stack MLOps. Per istruzioni dettagliate, vedere Bundle di asset di Databricks per stack MLOps.
Quando si avvia un progetto MLOps Stacks, il software esegue la procedura per immettere i dettagli di configurazione e quindi crea una directory contenente i file che compongono il progetto. Questa directory, o stack, implementa il flusso di lavoro MLOps di produzione consigliato da Databricks. I componenti visualizzati nel diagramma vengono creati automaticamente ed è necessario modificare solo i file per aggiungere il codice personalizzato.
Nel diagramma:
- R: un data scientist o un tecnico ml inizializza il progetto usando
databricks bundle init mlops-stacks
. Quando si inizializza il progetto, è possibile scegliere di configurare i componenti del codice ml (in genere usati dai data scientist), i componenti CI/CD (in genere usati dai tecnici di MACHINE Learning) o entrambi. - B: I tecnici ml configurano i segreti dell'entità servizio di Databricks per CI/CD.
- C: I data scientist sviluppano modelli in Databricks o nel sistema locale.
- D: I data scientist creano richieste pull per aggiornare il codice di Machine Learning.
- E: lo strumento di esecuzione CI/CD esegue notebook, crea processi ed esegue altre attività nelle aree di lavoro di staging e produzione.
L'organizzazione può usare lo stack predefinito o personalizzarlo in base alle esigenze per aggiungere, rimuovere o modificare i componenti in base alle procedure dell'organizzazione. Per informazioni dettagliate, vedere il file leggimi del repository GitHub.
MLOps Stacks è progettato con una struttura modulare per consentire ai diversi team di ML di lavorare in modo indipendente in un progetto, seguendo al tempo stesso le procedure consigliate di progettazione del software e mantenendo ci/CD di livello di produzione. I tecnici di produzione configurano l'infrastruttura di Machine Learning che consente ai data scientist di sviluppare, testare e distribuire pipeline e modelli di MACHINE Learning nell'ambiente di produzione.
Come illustrato nel diagramma, lo stack MLOps predefinito include i tre componenti seguenti:
- Codice ML. MlOps Stacks crea un set di modelli per un progetto ml, inclusi notebook per il training, l'inferenza batch e così via. Il modello standardizzato consente ai data scientist di iniziare rapidamente, unifica la struttura del progetto tra i team e applica codice modularizzato pronto per i test.
- Risorse ml come codice. Gli stack MLOps definiscono risorse come aree di lavoro e pipeline per attività come training e inferenza batch. Le risorse sono definite nei bundle di asset di Databricks per facilitare il test, l'ottimizzazione e il controllo della versione per l'ambiente ml. Ad esempio, è possibile provare un tipo di istanza più grande per la ripetizione automatica del training del modello e la modifica viene rilevata automaticamente per riferimento futuro.
- CI/CD. È possibile usare GitHub Actions o Azure DevOps per testare e distribuire codice e risorse ml, assicurandosi che tutte le modifiche di produzione vengano eseguite tramite l'automazione e che solo il codice testato venga distribuito a prod.
Flusso del progetto MLOps
Un progetto MLOps Stacks predefinito include una pipeline di Machine Learning con flussi di lavoro CI/CD per testare e distribuire processi di training e inferenza batch automatizzati nei processi di sviluppo, gestione temporanea e produzione di Databricks. MLOps Stacks è configurabile, quindi è possibile modificare la struttura del progetto per soddisfare i processi dell'organizzazione.
Il diagramma mostra il processo implementato dallo stack MLOps predefinito. Nell'area di lavoro sviluppo, i data scientist eseggono l'iterazione sul codice di Machine Learning e sulle richieste pull dei file. Le richieste pull attivano unit test e test di integrazione in un'area di lavoro di Databricks di staging isolata. Quando una richiesta pull viene unita a main, i processi di training del modello e inferenza batch eseguiti nello staging vengono immediatamente aggiornati per eseguire il codice più recente. Dopo aver unito una richiesta pull a main, è possibile tagliare un nuovo ramo di rilascio come parte del processo di rilascio pianificato e distribuire le modifiche al codice nell'ambiente di produzione.
Struttura del progetto MLOps Stacks
Uno stack MLOps usa i bundle di asset di Databricks, una raccolta di file di origine che funge da definizione end-to-end di un progetto. Questi file di origine includono informazioni su come devono essere testate e distribuite. La raccolta dei file come bundle semplifica la condivisione delle modifiche alla versione e l'uso di procedure consigliate per la progettazione software, ad esempio controllo del codice, revisione del codice, test e CI/CD.
Il diagramma mostra i file creati per lo stack MLOps predefinito. Per informazioni dettagliate sui file inclusi nello stack, vedere la documentazione sul repository GitHub o sui bundle di asset di Databricks per stack MLOps.
Componenti di MLOps Stacks
Uno "stack" si riferisce al set di strumenti usati in un processo di sviluppo. Lo stack MLOps predefinito sfrutta la piattaforma databricks unificata e usa gli strumenti seguenti:
Componente | Strumento in Databricks |
---|---|
Codice di sviluppo del modello ml | Notebook di Databricks, MLflow |
Sviluppo e gestione in Azure | Progettazione di funzionalità |
Repository di modelli di Machine Learning | Modelli nel catalogo unity |
Gestione del modello di Machine Learning | Mosaic AI Model Serving |
Infrastruttura come codice | Bundle di asset di Databricks |
Orchestrator | Processi Databricks |
CI/CD | GitHub Actions, Azure DevOps |
Monitoraggio delle prestazioni dei dati e dei modelli | Monitoraggio di Lakehouse |
Passaggi successivi
Per iniziare, vedere Bundle di asset di Databricks per stack MLOps o il repository Databricks MLOps Stacks in GitHub.