Questo articolo è stato pubblicato nell'ambito del Blogathon sulla scienza dei dati
Flussi di lavoro di apprendimento. L'apprendimento automatico è una parola d'ordine in questi giorni. Tutti sembrano voler saltare nel ML in questi giorni. Molte startup e startup implementano progetti di machine learning in molti modi. Ma solo una parte di questi prodotti può funzionare e mantenersi a lungo termine.
Cos'è DevOps?
Il software deve essere creato ed eseguito correttamente. Quindi, Com'è il ciclo di vita completo di un prodotto software??
Bene, DevOps rende l'intero processo operativo del software senza soluzione di continuità. Consiste in un insieme di pratiche e processi che lavorano insieme per automatizzare e integrare l'intero processo di sviluppo del software.
DevOps unifica il processo di sviluppo del software (Dev) e funzionamento del software (Ops). DevOps semplifica l'automazione, il monitoraggio e il buon funzionamento della creazione, lo sviluppo, l'integrazione, test, l'implemento, il lancio, Manutenzione, ridimensionamento, la manutenzione e la gestione dell'infrastruttura software.
Alcuni obiettivi chiave di DevOps sono cicli di sviluppo brevi, fluido e veloce, implementazione veloce, rilasci stabili e seguire correttamente gli obiettivi di business. I sostenitori e i professionisti di DevOps usano l'arte del ciclo infinito (sopra) per rappresentare il ciclo DevOps e mostrare come ogni processo si relaziona con l'altro. Questo mostra anche come lo sviluppo e le operazioni del software siano un ruolo costante.. Hai bisogno di collaborazione e miglioramento costanti durante tutto il ciclo.
La corretta implementazione di DevOps consente alle organizzazioni di fare di più. Integrazione continua (CI) e consegna continua (cd) aiutare le organizzazioni a vedere uno sviluppo più efficiente e una maggiore frequenza di distribuzione. I tempi di riparazione sono ridotti, i difetti di sicurezza informatica possono essere facilmente rilevati e facilitare la sperimentazione e il test.
Perciò, possiamo dire che DevOps rende l'intero processo di ingegneria del software più facile da implementare e mantenere.
MLOps: DevOps per l'apprendimento automatico
MLOps prende in prestito molti dei principi di DevOps nel tentativo di rendere l'intero ciclo ML più efficiente e più facile da usare.. L'obiettivo principale di MLOps è creare pipeline ML automatizzate e tenere traccia dei tempi e di altre metriche. Le pipeline verranno utilizzate per più iterazioni durante il ciclo di vita del progetto AA.
MLOps consiste di:
- Design
- Modello di sviluppo
- Operazioni
La fase di progettazione consiste nell'ingegneria dei requisiti, Priorità dei casi d'uso ML, controllo della disponibilità dei dati e altri passaggi.
Lo sviluppo del modello include l'ingegneria dell'apprendimento automatico, modellazione, ingegneria dei dati e test e convalida dei modelli.
Le operazioni si occupano dell'implementazione dei modelli, Condutture CI / Monitoraggio e manutenzione di CD e modelli.
Vediamo ora come appare lo scenario generale MLOps per Azure MLOps.
Microsoft Azure MLOps
Azure MLOps segue gli obiettivi di:
- Sviluppo e sperimentazione di modelli più rapidi
- Implementazione più rapida dei modelli in produzione
- Controllo di qualità e tracciamento del lignaggio dall'inizio alla fine
Las herramientas MLOps ayudan a realizar un seguimiento de los cambios en la Origine datiUN "Origine dati" si riferisce a qualsiasi luogo o supporto in cui è possibile ottenere informazioni. Queste fonti possono essere sia primarie che, come sondaggi ed esperimenti, come secondario, come banche dati, articoli accademici o rapporti statistici. La scelta corretta di una fonte di dati è fondamentale per garantire la validità e l'affidabilità delle informazioni nella ricerca e nell'analisi.... o las canalizaciones de datos, il codice, Modelli SDK, eccetera. Il ciclo di vita diventa più semplice ed efficiente con l'automazione, flussi di lavoro ripetibili e risorse che possono essere riutilizzate più e più volte.
I servizi di Azure Machine Learning ci consentono di creare pipeline di Machine Learning riproducibili. Anche gli ambienti software per l'addestramento e la distribuzione dei modelli sono riutilizzabili. Queste pipeline ci consentono di aggiornare i modelli, testare nuovi modelli e implementare continuamente nuovi modelli AA.
Il tipico processo AA
Il tipico processo di Machine Learning consiste in:
1. Raccolta dati
2. Modello di allenamento
3. Imballare il modello
4. Convalida il modello
5. Distribuisci modello
6. Modello del monitor
7. Riqualificare il modello
Ma in molti casi, il processo ha bisogno di più perfezionamento. Sono disponibili nuovi dati e il codice è cambiato. Sono in esecuzione più processi, ognuno dei quali coinvolge una grande quantità di dati.
Generalmente, la maggior parte dei dati è disorganizzata. Anche i dati grezzi devono essere condizionati.
In che modo MLOps può aiutare??
MLOps è costituito da diversi elementi. Alcuni elementi degni di nota sono l'automazione della distribuzione, monitoraggio, test del telaio, controllo della versione dei dati, eccetera. MLOps cerca di prendere i concetti di DevOps e migliorare l'intero processo di apprendimento automatico.
Tutta l'architettura di Azure Machine Learning ha questo aspetto:
MLOps dovrebbe eseguire un processo coordinato che può facilitare il flusso dell'intero processo e supportare anche gli ambienti CI / CD di grandi dimensioni.
MLOps può aiutare con l'automazione, facilitare le implementazioni del codice. La convalida è anche facilitata dalle migliori pratiche di controllo della qualità di SWE. En el caso del addestramentoLa formazione è un processo sistematico volto a migliorare le competenze, conoscenze o abilità fisiche. Viene applicato in vari ambiti, come lo sport, Formazione e sviluppo professionale. Un programma di allenamento efficace include la pianificazione degli obiettivi, Pratica regolare e valutazione dei progressi. L'adattamento alle esigenze individuali e la motivazione sono fattori chiave per ottenere risultati di successo e sostenibili in qualsiasi disciplina.... di modelli, se pensiamo che il nostro modello abbia bisogno di una riqualificazione, possiamo sempre tornare indietro e fare una riqualificazione del modello.
Azure Machine Learning ha molti modelli pre-addestrati specifici del dominio, come:
Visione, parla, linguaggio, ricerca, eccetera.
Se parliamo di, che cos'è esattamente Azure ML Services?, è una suite di servizi cloud di Azure insieme a un kit di sviluppo software Python / R, che ci permette di preparare i dati, costruire modelli, gestire i modelli, modellini di treni, monitorare gli esperimenti e implementare i modelli.
Ci sono molti elementi coinvolti, vediamone qualcuna.
Set di dati: registrare i dati
esperimenti: Gare di allenamento
Condutture: Flusso di lavoro di formazione
Modelli: Modelli registrati
Punti finali: modelli distribuiti ed endpoint del flusso di lavoro di formazione
Calcolare: Computing Gestito
Ambienti: Ambienti definiti di formazione e inferenza.
I servizi di Azure sono costruiti in modo tale da essere conformi a DevOps e far funzionare tutto correttamente.
Gestire il ciclo di vita del machine learning con MLOps è un gioco da ragazzi. I modelli devono essere monitorati e riqualificati. I processi MLOps facilitano risultati di business reali e, così, consentire un time-to-market e un'implementazione più rapidi per le soluzioni basate su ML. Aumentano anche la collaborazione e l'allineamento tra i team.
Azure MLOps
Azure Machine Learning ha le seguenti funzionalità MLOps.
Crea pipeline ML riproducibili
Possiamo definire tubi riutilizzabili e ripetibili. Tutti i passaggi che comprendono la raccolta dei dati e la valutazione del modello possono essere riutilizzati.
Ambienti software riutilizzabili
Le dipendenze software dei nostri progetti possono essere tracciate e riprodotte secondo necessità.
Registrati, impacchetta e distribuisci modelli da qualsiasi luogo
La registrazione del modello rende i passaggi precedenti molto facili da implementare. I modelli hanno nome e versione.
Acquisisci i dati di governance per un ciclo di vita di machine learning end-to-end
Azure ML può integrarsi con Git per tenere traccia del nostro codice. Possiamo controllare da quale filiale / il repository viene dal nostro codice. Possiamo anche tracciare, profilo e versione i nostri dati.
Avvisi e notifiche per eventi nel ciclo di vita AA
Azure Machine Learning elenca le pietre miliari in Azure EventGrid, che può essere utilizzato per vari scopi.
Monitorare i problemi operativi
Possiamo comprendere i dati che vengono inviati al nostro modello e le previsioni che vengono restituite. In modo che possiamo capire come si sta comportando il modello.
Automatizza il ciclo di vita degli AA
Azure Pipelines e Github possono essere usati per creare un'integrazione continua e autonoma che addestra un modello. La maggior parte delle fasi del ciclo di vita AA può essere automatizzata.
Quindi, come pensiero generale, possiamo capire che MLOps è un concetto in cui utilizziamo varie risorse per rendere l'intero viaggio ML fluido ed efficiente.
Quindi, pensando a un ipotetico flusso di lavoro MLOps, primo, il team di data science e il team di sviluppo dell'applicazione collaboreranno per creare l'applicazione e anche addestrare il modello. Dopo, l'applicazione sarà testata. parallelo, il modello sarà validato. Dopo, il modello sarà implementato e l'applicazione sarà lanciata.
L'applicazione e il modello saranno monitorati. Dal processo generale di gestione dei modelli e delle applicazioni, possiamo eseguire analisi delle prestazioni. A seconda delle esigenze, possiamo anche riqualificare il modello.
Veamos un proyecto de ML de muestra en Azure DevOpsAzure DevOps es una plataforma integral que ofrece herramientas para la planificación, desarrollo y entrega de software. Incluye servicios como Azure Boards, para la gestión de proyectos; Azure Repos, para el control de versiones; y Azure Pipelines, que automatiza la integración y entrega continua. Su enfoque colaborativo permite a los equipos de desarrollo optimizar sus procesos y mejorar la calidad del software, facilitando una mayor agilidad en el ciclo de....
I vari argomenti di cui abbiamo discusso sono visibili qui.
Quando si entra in Repos, possiamo controllare il codice e altri file.
Per quanto riguarda i tubi, vediamo una pipeline eseguita con successo.
Possiamo vedere che tutti i lavori sono stati eseguiti correttamente.
Per il progetto AA di un campione particolare, possiamo vedere i requisiti.
Possiamo implementare i requisiti.
pip install azure-cli==2.0.69 pip install --upgrade azureml-sdk[cli] pip install -r requisiti.txt
Codice per addestrare il modello:
Inizia importando le cose necessarie.
importare sottaceti da azureml.core import Workspace da azureml.core.run import Esegui importare il sistema operativo da sklearn.datasets import load_diabetes da sklearn.linear_model import Ridge da sklearn.metrics import mean_squared_error da sklearn.model_selection import train_test_split da sklearn.externals importa joblib importa numpy come np import json sottoprocesso di importazione dalla digitazione import Tuple, Elenco # run_history_name="devops" # the.makedirs('./uscite', exist_ok=Vero) # #ws.get_details() # Inizia a registrare i risultati su AML # run = Run.start_logging(spazio di lavoro = ws, history_name = run_history_name) run = Run.get_submitted_run()
Ottenere i dati.
X, y = carico_diabete(return_X_y=Vero) colonne = ["età", "Genere", "bmi", "bp", "s1", "s2", "s3", "s4", "s5", "s6"] X_treno, X_test, y_train, y_test = train_test_split(X, e, test_size=0.2, stato_casuale=0) dati = {"treno": {"X": X_treno, "e": y_train}, "test": {"X": X_test, "e": y_test}}
Prossimo, addestramento.
# Immagine a caso alfa alfa = np.arange(0.0, 1.0, 0.05) alfa = alfa[np.random.choice(alfa.forma[0], 1, sostituisci=Falso)][0] Stampa(alfa) run.log("alfa", alfa) reg = cresta(alfa = alfa) reg.fit(dati["treno"]["X"], dati["treno"]["e"]) preds = reg.predict(dati["test"]["X"]) run.log("mse", mean_squared_error(pred, dati["test"]["e"])) # Salva il modello come parte della cronologia della corsa nome_modello = "sklearn_regression_model.pkl" # nome_modello = "." con aperto(nome del modello, "wb") come file: joblib.dump(valore=reg, nome file=nome_modello) # carica il file del modello esplicitamente negli artefatti run.upload_file(nome="./uscite/" + nome del modello, path_or_stream=nome_modello) Stampa("Caricato il modello {} sperimentare {}".formato(nome del modello, run.experiment.name)) dirpath = os.getcwd() Stampa(dirpath) # registra il modello # run.log_model(nome_file = nome_modello) # Stampa('Registrato il modello {} per eseguire la storia {}'.formato(nome del modello, run.history.name)) Stampa("Vengono caricati i seguenti file ") Stampa(run.get_file_names()) esegui.completo()
Ci sono molte differenze significative nel modo in cui operiamo qui.
Me, essere uno studente, Non avevo esattamente un business case o le risorse monetarie per lavorare su un progetto di machine learning completo in Azure DevOps. Il lavoro di cui sopra viene svolto prendendo come riferimento.
Visita questo repository per riferimento: DevOpsForAI
conclusione
MLOps può risolvere molti problemi legati al ciclo di vita del machine learning. Perciò, anche molte delle sfide generali sono risolte.
MLOps è una proposta molto interessante per le aziende per eseguire i propri modelli ML. MLOps rende il lavoro tra i team super facile e diretto.
Questi sono alcuni dei riferimenti che ho usato per raccogliere conoscenze per questo articolo. Buona lettura.
Riferimenti:
2. https://docs.microsoft.com/en-us/learn/modules/start-ml-lifecycle-mlops/1-introduction
3. https://docs.microsoft.com/en-us/azure/architecture/example-scenario/mlops/mlops-technical-paper
4. https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/ai/mlops-python
A proposito di me:
Prateek Majumder
Scienza dei dati e analisi | Specialista in marketing digitale | SEO | Creazione di contenuti
Connettiti con me su Linkedin.
I miei altri articoli su DataPeaker: Collegamento.
Grazie.
Il supporto mostrato in questo articolo non è di proprietà di DataPeaker e viene utilizzato a discrezione dell'autore.