MLOps: DevOps nel mondo del Machine Learning

Nel 2018, negli ambienti professionali e nelle conferenze tematiche dedicate all'IA, è apparso il concetto di MLOps, che ha rapidamente preso piede nel settore e ora si sta sviluppando come direzione indipendente. In futuro, MLOps potrebbe diventare una delle aree più richieste nell'IT. Che cos'è e con cosa si mangia, capiamo sotto il taglio.

MLOps: DevOps nel mondo del Machine Learning

Cos'è MLOps

MLOps (unione di tecnologie e processi di apprendimento automatico e approcci all'implementazione di modelli sviluppati nei processi aziendali) è un nuovo modo di cooperazione tra rappresentanti aziendali, scienziati, matematici, specialisti di apprendimento automatico e ingegneri IT nella creazione di sistemi di intelligenza artificiale.

In altre parole, è un modo per trasformare metodi e tecnologie di machine learning in uno strumento utile per risolvere i problemi aziendali. 

Deve essere chiaro che la catena della produttività inizia molto prima dello sviluppo del modello. Il suo primo passo è definire l'obiettivo di business, l'ipotesi sul valore che può essere estratto dai dati e l'idea di business per applicarlo. 

Il concetto stesso di MLOps è nato come analogia al concetto di DevOps in relazione ai modelli e alle tecnologie di apprendimento automatico. DevOps è un approccio di sviluppo software che consente di aumentare la velocità delle singole modifiche mantenendo flessibilità e affidabilità utilizzando una serie di approcci, tra cui sviluppo continuo, separazione delle funzioni in una serie di microservizi indipendenti, test automatizzati e implementazione di singole modifiche, global monitoraggio della salute, un sistema di risposta rapida per i guasti rilevati, ecc. 

DevOps ha definito il ciclo di vita del software e nella comunità del software è nata l'idea di applicare la stessa tecnica ai big data. DataOps è un tentativo di adattare ed espandere la metodologia, tenendo conto delle peculiarità di archiviare, trasmettere ed elaborare grandi quantità di dati in una varietà di piattaforme interagenti.
  
Con l'avvento di una certa massa critica di modelli di machine learning incorporati nei processi aziendali delle imprese, è stata notata una forte somiglianza tra il ciclo di vita dei modelli matematici di machine learning e il ciclo di vita del software. L'unica differenza è che gli algoritmi del modello vengono creati utilizzando strumenti e metodi di machine learning. Pertanto, è nata naturalmente l'idea di applicare e adattare approcci già noti allo sviluppo di software per modelli di apprendimento automatico. Pertanto, le seguenti fasi chiave possono essere distinte nel ciclo di vita dei modelli di apprendimento automatico:

  • definizione di un'idea imprenditoriale;
  • modello di formazione;
  • test e implementazione del modello nel processo aziendale;
  • funzionamento del modello.

Quando durante il funzionamento diventa necessario modificare o riaddestrare il modello su nuovi dati, il ciclo ricomincia da capo: il modello viene finalizzato, testato e viene distribuita una nuova versione.

Ritiro. Perché rieducare e non rieducare? Il termine “model retraining” ha una doppia interpretazione: tra gli specialisti significa un difetto nel modello, quando il modello predice bene, in realtà ripete il parametro previsto sul set di addestramento, ma funziona molto peggio sul set di dati esterno. Naturalmente, un tale modello è un difetto, poiché questo difetto non ne consente l'applicazione.

In questo ciclo di vita, sembra logico utilizzare gli strumenti DevOps: test automatizzati, distribuzione e monitoraggio, registrazione del calcolo del modello come microservizi separati. Ma ci sono una serie di funzionalità che impediscono l'uso diretto di questi strumenti senza ulteriori collegamenti ML.

MLOps: DevOps nel mondo del Machine Learning

Come far funzionare i modelli e realizzare un profitto

Come esempio, in cui dimostreremo l'applicazione dell'approccio MLOps, prenderemo l'ormai classico compito di robotizzare la chat di supporto per un prodotto bancario (o qualsiasi altro). Un tipico processo aziendale di supporto via chat è il seguente: un cliente inserisce una domanda in una chat e riceve una risposta da uno specialista all'interno di una struttura di dialogo predefinita. Il compito di automatizzare una chat di questo tipo viene solitamente risolto utilizzando serie di regole definite da esperti che sono molto laboriose da sviluppare e mantenere. L'efficienza di tale automazione, a seconda del livello di complessità dell'attività, può essere del 20-30%. Naturalmente, nasce l'idea che sia più vantaggioso implementare un modulo di intelligenza artificiale, un modello sviluppato utilizzando l'apprendimento automatico che:

  • in grado di elaborare più richieste senza la partecipazione di un operatore (a seconda dell'argomento, in alcuni casi, l'efficienza può raggiungere il 70-80%);
  • si adatta meglio alla formulazione non standard nel dialogo - è in grado di determinare l'intento, il vero desiderio dell'utente per una richiesta formulata in modo poco chiaro;
  • è in grado di determinare quando la risposta del modello è adeguata, e quando sussistono dubbi sulla “coscienza” di tale risposta ed è necessario porre un'ulteriore domanda chiarificatrice o passare all'operatore;
  • può essere riaddestrato automaticamente (invece di un gruppo di sviluppatori che adattano e correggono costantemente gli scenari di risposta, il modello viene riaddestrato da un Data Scientist utilizzando le librerie di machine learning appropriate). 

MLOps: DevOps nel mondo del Machine Learning

Come far funzionare un modello così avanzato? 

Come per risolvere qualsiasi altro compito, prima di sviluppare un tale modulo, è necessario definire un processo aziendale e descrivere formalmente un compito specifico che risolveremo utilizzando il metodo dell'apprendimento automatico. A questo punto inizia il processo di operazionalizzazione, indicato con la sigla Ops. 

Il passo successivo è che il data scientist, in collaborazione con il data engineer, verifichi la disponibilità e la sufficienza dei dati e delle ipotesi di business sulla fattibilità dell'idea di business, sviluppando un prototipo del modello e verificandone l'effettiva efficacia. Solo dopo la conferma da parte dell'azienda può iniziare la transizione dallo sviluppo del modello all'integrazione in sistemi che eseguono uno specifico processo aziendale. La pianificazione dell'implementazione end-to-end, una profonda comprensione in ogni fase di come verrà utilizzato il modello e quale effetto economico porterà, è un momento fondamentale nei processi di introduzione degli approcci MLOps nel panorama tecnologico dell'azienda.

Con lo sviluppo delle tecnologie AI, il numero e la varietà di compiti che possono essere risolti con l'aiuto dell'apprendimento automatico stanno aumentando a valanga. Ciascuno di questi processi aziendali sta salvando l'azienda automatizzando il lavoro dei dipendenti di posizioni di massa (call center, controllo e smistamento di documenti, ecc.), sta espandendo la base di clienti aggiungendo nuove funzioni attraenti e convenienti, risparmiando denaro grazie al loro ottimale utilizzo e ridistribuzione delle risorse e molto altro ancora. In definitiva, qualsiasi processo è focalizzato sulla creazione di valore e, di conseguenza, deve portare un certo effetto economico. Qui è molto importante articolare chiaramente l'idea imprenditoriale e calcolare il profitto atteso dall'implementazione del modello nella struttura complessiva della creazione di valore dell'azienda. Ci sono situazioni in cui l'implementazione del modello non si giustifica e il tempo impiegato dagli specialisti dell'apprendimento automatico è molto più costoso del posto di lavoro dell'operatore che esegue questa attività. Ecco perché è necessario cercare di identificare tali casi nelle prime fasi della creazione di sistemi di intelligenza artificiale.

Di conseguenza, i modelli iniziano a portare profitto solo quando l'attività aziendale è stata formulata correttamente nel processo MLOps, sono state stabilite le priorità e il processo di introduzione del modello nel sistema è stato formulato nelle prime fasi di sviluppo.

Nuovo processo - nuove sfide

Una risposta esauriente alla domanda aziendale fondamentale su come i modelli ML siano applicabili alla risoluzione dei problemi, la questione generale della fiducia nell'IA è una delle sfide chiave nello sviluppo e nell'implementazione degli approcci MLOps. Inizialmente, le aziende sono scettiche sull'introduzione dell'apprendimento automatico nei processi: è difficile fare affidamento su modelli in luoghi in cui le persone di solito lavoravano in passato. Per le imprese, i programmi sembrano essere una "scatola nera", la cui pertinenza delle risposte deve ancora essere dimostrata. Inoltre, nel settore bancario, nel settore degli operatori di telecomunicazioni e altri, vi sono severi requisiti delle autorità di regolamentazione statali. Tutti i sistemi e gli algoritmi implementati nei processi bancari sono soggetti a verifica. Per risolvere questo problema, per dimostrare alle imprese e ai regolatori la validità e la correttezza delle risposte dell'intelligenza artificiale, insieme al modello vengono introdotti strumenti di monitoraggio. Inoltre, esiste una procedura di convalida indipendente, obbligatoria per i modelli regolamentari, che soddisfa i requisiti della Banca Centrale. Un gruppo di esperti indipendenti verifica i risultati ottenuti dal modello, tenendo conto dei dati di input.

La seconda sfida è la valutazione e la considerazione dei rischi del modello durante l'implementazione di un modello di machine learning. Anche se una persona non può rispondere con assoluta certezza alla domanda se quel vestito fosse bianco o blu, allora anche l'intelligenza artificiale ha il diritto di sbagliare. Vale anche la pena considerare che i dati possono cambiare nel tempo e che i modelli devono essere riaddestrati per produrre un risultato sufficientemente accurato. Affinché il processo aziendale non ne risenta, è necessario gestire i rischi del modello e monitorare le prestazioni del modello, riqualificandolo regolarmente su nuovi dati.

MLOps: DevOps nel mondo del Machine Learning

Ma dopo il primo stadio di sfiducia, comincia a manifestarsi l'effetto opposto. Più modelli vengono introdotti con successo nei processi, più l'azienda ha un crescente appetito per l'uso dell'intelligenza artificiale: ci sono compiti nuovi e nuovi che possono essere risolti utilizzando metodi di apprendimento automatico. Ogni attività avvia un intero processo che richiede determinate competenze:

  • i data engineer preparano ed elaborano i dati;
  • i data scientist applicano strumenti di machine learning e sviluppano un modello;
  • l'IT implementa il modello nel sistema;
  • L'ingegnere ML determina come integrare correttamente questo modello nel processo, quali strumenti informatici utilizzare a seconda dei requisiti per la modalità di applicazione del modello, tenendo conto del flusso delle richieste, dei tempi di risposta, ecc. 
  • Un architetto ML progetta come un prodotto software può essere fisicamente implementato in un sistema industriale.

L'intero ciclo richiede un gran numero di specialisti altamente qualificati. A un certo punto dello sviluppo e del grado di penetrazione dei modelli ML nei processi aziendali, risulta che il ridimensionamento lineare del numero di specialisti in proporzione alla crescita del numero di attività diventa costoso e inefficiente. Pertanto, si pone la questione dell'automazione del processo MLOps, definendo diverse classi standard di problemi di apprendimento automatico, sviluppando tipiche pipeline di elaborazione dei dati e modelli di riaddestramento. Nel quadro ideale, per risolvere tali problemi, sono richiesti professionisti che siano ugualmente esperti nelle competenze all'incrocio tra BigData, Data Science, DevOps e IT. Pertanto, il problema più grande nel settore della scienza dei dati e la sfida più grande nell'organizzazione dei processi MLOps è la mancanza di tale competenza nel mercato della formazione esistente. Gli specialisti che soddisfano tali requisiti sono attualmente rari nel mercato del lavoro e valgono il loro peso in oro.

Alla questione delle competenze

In teoria, tutte le attività MLOps possono essere risolte con i classici strumenti DevOps e senza ricorrere a un'estensione del modello di ruolo specializzata. Quindi, come abbiamo notato sopra, un data scientist dovrebbe essere non solo un matematico e un analista di dati, ma anche un guru dell'intera pipeline: sviluppo dell'architettura, programmazione di modelli in diversi linguaggi a seconda dell'architettura, preparazione di un data mart e distribuzione cade sulle sue spalle l'applicazione stessa. Tuttavia, la creazione di un legame tecnologico implementato nel processo MLOps end-to-end richiede fino all'80% del costo del lavoro, il che significa che un matematico qualificato, che è un Data Scientist di alta qualità, dedicherà solo il 20% del tempo alla sua specialità. Pertanto, la differenziazione dei ruoli degli specialisti che implementano il processo di implementazione dei modelli di machine learning diventa vitale. 

Il livello di dettaglio dei ruoli da delineare dipende dalle dimensioni dell'impresa. Una cosa è quando una startup ha uno specialista, un lavoratore nella riserva di ingegneri energetici, un ingegnere, un architetto e DevOps a pieno titolo. Diverso è il discorso quando, in una grande impresa, tutti i processi di sviluppo del modello sono concentrati su pochi Data Scientist di alto livello, mentre un programmatore o uno specialista di database - una competenza più diffusa e meno costosa nel mercato del lavoro - può assumere la maggior parte delle attività di routine.

Pertanto, dove il confine sta nella scelta degli specialisti per garantire il processo MLOps e il modo in cui è organizzato il processo di operativizzazione dei modelli sviluppati influisce direttamente sulla velocità e sulla qualità dei modelli sviluppati, sulla produttività del team e sul microclima in esso.

Cosa è già stato fatto dal nostro team

Di recente abbiamo iniziato a costruire il quadro delle competenze e i processi MLOps. Ma già ora, i nostri progetti sulla gestione del ciclo di vita dei modelli e sull'utilizzo dei modelli come servizio sono nella fase di test MVP.

Abbiamo anche determinato la struttura ottimale delle competenze per una grande impresa e la struttura organizzativa dell'interazione tra tutti i partecipanti al processo. Sono stati organizzati team agili per risolvere i problemi per l'intero spettro di clienti aziendali, nonché un processo di interazione con i team di progetto per creare piattaforme e infrastrutture, che è la base dell'edificio MLOps in costruzione.

Domande per il futuro

MLOps è un'area in crescita che sta vivendo una mancanza di competenze e guadagnerà slancio in futuro. Nel frattempo, è meglio basarsi sugli sviluppi e sulle pratiche di DevOps. L'obiettivo principale di MLOps è utilizzare i modelli ML in modo più efficace per risolvere i problemi aziendali. Ma questo solleva molte domande:

  • Come ridurre i tempi di lancio dei modelli in produzione?
  • Come ridurre gli attriti burocratici tra team di competenze diverse e aumentare l'attenzione alla cooperazione?
  • Come tenere traccia dei modelli, gestire le versioni e organizzare un monitoraggio efficace?
  • Come creare un ciclo di vita veramente circolare per un moderno modello ML?
  • Come standardizzare il processo di machine learning?

Le risposte a queste domande determineranno in gran parte quanto velocemente MLOps rivelerà il suo pieno potenziale.

Fonte: habr.com

Aggiungi un commento