Nel 2018, nei circoli professionali e durante le conferenze tematiche dedicate all'AI, è emerso il concetto di MLOps, che si è rapidamente affermato nel settore e ora si sviluppa come un'area autonoma. In prospettiva, MLOps potrebbe diventare uno dei settori più richiesti nell'IT. Di cosa si tratta e come si applica, scopriamolo a seguire.

Che cos'è MLOps
MLOps (unione di tecnologie e processi di apprendimento automatico e approcci per implementare i modelli sviluppati nei processi aziendali) è un nuovo modo di collaborazione tra rappresentanti del business, ricercatori, matematici, specialisti in apprendimento automatico e ingegneri IT nella creazione di sistemi di intelligenza artificiale.
In altre parole, è un modo per trasformare i metodi e le tecnologie di apprendimento automatico in uno strumento utile per risolvere i problemi aziendali.
È importante comprendere che la catena di produttività inizia molto prima dello sviluppo del modello. Il primo passo consiste nella definizione del compito aziendale, delle ipotesi sul valore che può essere estratto dai dati e delle idee aziendali per il suo utilizzo.
Il concetto stesso di MLOps è emerso come analogia del concetto di DevOps applicato a modelli e tecnologie di apprendimento automatico. DevOps è un approccio allo sviluppo software che consente di aumentare la velocità di implementazione delle singole modifiche mantenendo la flessibilità e l'affidabilità attraverso vari metodi, tra cui sviluppo continuo, suddivisione delle funzioni in una serie di microservizi indipendenti, test automatizzati e deployment delle singole modifiche, monitoraggio globale delle prestazioni, sistema di risposta rapida ai guasti riscontrati e altro.
DevOps ha definito il ciclo di vita del software e nella comunità degli specialisti è emersa l'idea di utilizzare la stessa metodologia applicata ai big data. DataOps è un tentativo di adattare ed espandere la metodologia tenendo conto delle peculiarità dello stoccaggio, della trasmissione e dell'elaborazione di grandi volumetrie di dati su piattaforme varie e interconnesse.
Con l'emergere di una certa massa critica di modelli di machine learning integrati nei processi aziendali, è stata notata una forte somiglianza tra il ciclo di vita dei modelli di machine learning e il ciclo di vita del software. L'unica differenza è che gli algoritmi dei modelli vengono creati attraverso strumenti e metodi di machine learning. Pertanto, è nata naturalmente l'idea di applicare e adattare agli algoritmi di machine learning approcci già noti allo sviluppo software. Così, nel ciclo di vita dei modelli di machine learning si possono individuare i seguenti passaggi chiave:
- definizione dell'idea aziendale;
- addestramento del modello;
- test e implementazione del modello nel processo aziendale;
- operatività del modello.
Quando durante l'operatività sorge la necessità di modificare o riaddestrare il modello su nuovi dati, il ciclo riparte: il modello viene perfezionato, testato e viene distribuita una nuova versione.
Nota. Perché riaddestrare, e non rieducare? Il termine 'rieducazione del modello' ha un doppio significato: tra gli esperti indica un difetto del modello, quando il modello prevede bene, replicando effettivamente il parametro previsto nel campione di addestramento, ma funziona molto peggio su un campione esterno di dati. Naturalmente, un tale modello è considerato difettoso, poiché questo difetto ne impedisce l'applicazione.
In questo ciclo di vita sembra logico utilizzare strumenti DevOps: test automatizzati, distribuzione e monitoraggio, presentazione del calcolo dei modelli come singoli microservizi. Ma ci sono anche una serie di caratteristiche che ostacolano l'applicazione diretta di questi strumenti senza un'ulteriore interfaccia ML.

Come far funzionare i modelli e generare profitto
Come esempio, su cui dimostreremo l'applicazione dell'approccio MLOps, prenderemo la classica sfida di automatizzare la chat di supporto per un prodotto bancario (o qualsiasi altro). Di solito, il processo aziendale di supporto tramite chat appare nel seguente modo: il cliente inserisce un messaggio con una domanda nella chat e riceve una risposta da un esperto all'interno di un albero di dialogo prestabilito. L'automazione di tale chat di solito viene realizzata attraverso set di regole definite da esperti, molto laboriose da sviluppare e mantenere. L'efficacia di tale automazione, a seconda del livello di complessità del compito, può variare dal 20% al 30%. Naturalmente, sorge l'idea che sia più vantaggioso implementare un modulo di intelligenza artificiale — un modello sviluppato tramite machine learning, che:
- è in grado di gestire un numero maggiore di richieste senza l'intervento di un operatore (a seconda dell'argomento, in alcuni casi l'efficacia può raggiungere il 70% - 80%);
- si adatta meglio a formulazioni non standard nel dialogo — è in grado di identificare l'intento, il reale desiderio dell'utente anche da richieste formulate in modo non chiaro;
- è in grado di riconoscere quando la risposta del modello è adeguata e quando, in caso di «coscienza» di questa risposta, ci siano dubbi e bisogna porre una domanda di chiarimento o passare all'operatore;
- può essere ulteriormente addestrata in modo automatizzato (anziché da un gruppo di sviluppatori che adattano e correggono continuamente gli scenari di risposta, il modello viene ulteriormente addestrato da uno specialista in Data Science, utilizzando le librerie di machine learning appropriate).

Come far funzionare un modello così avanzato?
Come per la risoluzione di qualsiasi altro compito, prima di sviluppare tale modulo è necessario definire il processo aziendale e descrivere formalmente il compito specifico che andremo a risolvere utilizzando il metodo di machine learning. A questo punto inizia il processo di operazionalizzazione, indicato con l'abbreviazione Ops.
Il passo successivo per uno specialista Data Science, in collaborazione con un ingegnere dei dati, è verificare la disponibilità e l'adeguatezza dei dati e l'ipotesi di business sulla fattibilità dell'idea imprenditoriale, sviluppando un prototipo del modello e testandone l'effettiva efficacia. Solo dopo la conferma da parte del business può iniziare la transizione dallo sviluppo del modello all'integrazione nei sistemi che eseguono specifici processi aziendali. Una pianificazione dettagliata dell'implementazione, una profonda comprensione di ogni fase, di come il modello sarà utilizzato e quale impatto economico porterà, è un aspetto fondamentale nei processi di implementazione degli approcci MLOps nel panorama tecnologico dell'azienda.
Con l'evoluzione delle tecnologie AI, aumenta esponenzialmente il numero e la varietà delle attività che possono essere risolte attraverso il machine learning. Ogni processo aziendale di questo tipo rappresenta un risparmio per l'azienda grazie all'automazione del lavoro di dipendenti in posizioni di massa (call center, verifica e classificazione dei documenti, ecc.), un'espansione della clientela attraverso l'introduzione di nuove funzioni attraenti e convenienti, risparmi finanziari grazie a un uso ottimale delle risorse e molto altro. In definitiva, ogni processo è orientato alla creazione di valore e, di conseguenza, deve generare un certo effetto economico. È quindi molto importante formulare chiaramente l'idea imprenditoriale e calcolare il profitto atteso dall'implementazione del modello all'interno della struttura generale di creazione di valore dell'azienda. Ci sono situazioni in cui l'implementazione del modello non si giustifica, e il tempo speso dagli specialisti in machine learning risulta essere molto più costoso rispetto al posto di lavoro di un operatore che svolge tale compito. Per questo motivo, è fondamentale cercare di identificare tali casi nelle fasi iniziali della creazione dei sistemi AI.
Dunque, i profitti del modello iniziano ad arrivare solo quando nel processo di MLOps è stata formulata correttamente la questione aziendale, sono stati stabiliti delle priorità e, nelle fasi iniziali di sviluppo, è stato definito il processo di integrazione del modello nel sistema.
Nuovo processo – nuove sfide
Una risposta esaustiva alla domanda fondamentale delle imprese su quanto siano applicabili i modelli ML nella risoluzione dei problemi. Una questione generale di fiducia nell'IA rappresenta una delle sfide chiave nello sviluppo e nell'implementazione degli approcci MLOps. Inizialmente, le imprese percepiscono con scetticismo l'adozione dell'apprendimento automatico nei processi, facendo fatica a fidarsi di modelli in aree in cui tradizionalmente lavoravano le persone. Per le aziende, i programmi appaiono come una "scatola nera", la cui rilevanza delle risposte deve ancora essere dimostrata. Inoltre, nel settore bancario, nelle telecomunicazioni e in altri ambiti ci sono rigide normative imposte dai regolatori statali. Tutti i sistemi e gli algoritmi implementati nei processi bancari sono soggetti a revisione. Per affrontare questa sfida, dimostrare alle aziende e ai regolatori la legittimità e la correttezza delle risposte dell'intelligenza artificiale, insieme al modello vengono implementati strumenti di monitoraggio. Inoltre, esiste una procedura di validazione indipendente, obbligatoria per i modelli regolatori, che soddisfa i requisiti della Banca Centrale. Un gruppo di esperti indipendenti conduce un audit dei risultati ottenuti dal modello tenendo conto dei dati in ingresso.
La seconda sfida è la valutazione e la gestione dei rischi dei modelli durante l'implementazione di un modello di machine learning. Se anche un essere umano non può rispondere con certezza assoluta alla domanda se quell'abito fosse bianco o blu, anche l'intelligenza artificiale ha il diritto di commettere errori. Inoltre, è importante considerare che nel tempo i dati possono cambiare, e i modelli devono essere riaddestrati per fornire risultati sufficientemente precisi. Per evitare che il processo aziendale ne risenta, è necessario gestire i rischi dei modelli e monitorare il funzionamento del modello, riaddestrandolo regolarmente con nuovi dati.

Ma dopo la fase iniziale di sfiducia, inizia a manifestarsi un effetto contrario. Più modelli vengono implementati con successo nei processi, maggiore è l'appetito delle aziende per l'uso dell'intelligenza artificiale: nuovi compiti emergono che possono essere risolti mediante metodi di machine learning. Ogni compito avvia un intero processo, richiedendo competenze specifiche:
- i data engineer preparano e trattano i dati;
- i data scientist applicano strumenti di machine learning e sviluppano il modello;
- IT implementa il modello nel sistema;
- L'ingegnere ML determina come integrare correttamente questo modello nel processo, quali strumenti IT utilizzare in base ai requisiti del modello considerando il flusso di richieste, il tempo di risposta, ecc.
- L'architetto ML progetta come realizzare fisicamente il prodotto software 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 integrazione dei modelli ML nei processi aziendali, si scopre che scalare linearmente il numero di specialisti proporzionalmente alla crescita del numero di compiti diventa costoso e inefficiente. Pertanto, sorge la questione dell'automazione del processo MLOps — definizione di alcune classi standard di compiti di machine learning, sviluppo di pipeline tipiche per l'elaborazione dei dati e riaddestramento dei modelli. Nella visione ideale per risolvere tali compiti sono necessari professionisti in grado di padroneggiare competenze all'incrocio tra Big Data, Data Science, DevOps e IT. Quindi, il problema più grande nell'industria della Data Science e la sfida più grande nell'organizzazione dei processi MLOps è l'assenza di tale competenza nel mercato attuale di formazione del personale. Gli specialisti che soddisfano tali requisiti sono attualmente rari nel mercato del lavoro e sono valutati come oro.
Sulla questione delle competenze
In teoria, tutte le attività di MLOps possono essere risolte con gli strumenti classici di DevOps senza ricorrere a un ampliamento specializzato del modello di ruolo. Tuttavia, come abbiamo già sottolineato, il data scientist non deve essere solo un matematico e un esperto di analisi dei dati, ma anche un guru dell'intero pipeline — gli spetta sviluppare l'architettura, programmare modelli in più lingue a seconda dell'architettura, preparare il proprio set di dati e implementare l'applicazione stessa. Tuttavia, la creazione di un'infrastruttura tecnologica, realizzata nel processo end-to-end di MLOps, richiede fino all'80% del tempo di lavoro, il che significa che un matematico qualificato, che è un buon Data Scientist, dedicherà solo il 20% del suo tempo alla sua specialità. Pertanto, la distinzione dei ruoli degli specialisti coinvolti nel processo di implementazione dei modelli di machine learning diventa vitale.
La misura in cui i ruoli devono essere distinti dipende dalle dimensioni dell'azienda. È una cosa se in una startup c'è un unico specialista, un lavoratore con risorse energetiche a disposizione, che fa da ingegnere, architetto e DevOps. È completamente diverso quando in una grande azienda tutti i processi di sviluppo dei modelli sono concentrati su pochi specialisti di Data Science di alto livello, mentre un programmatore o un esperto di database — una competenza più comune e meno costosa sul mercato del lavoro — possono occuparsi della maggior parte delle attività routinarie.
In questo modo, la linea di demarcazione nella scelta degli specialisti per garantire il processo di MLOps e come è organizzato il processo di operationalizzazione dei modelli sviluppati influisce direttamente sulla velocità e qualità dei modelli sviluppati, sulla produttività del team e sul microclima all'interno di esso.
Cosa è già stato fatto dal nostro team
Abbiamo iniziato da poco a costruire la struttura delle competenze e i processi di MLOps. Ma già ora i nostri progetti per la gestione del ciclo di vita dei modelli e per l'applicazione dei modelli come servizio sono in fase di testing MVP.
Abbiamo anche definito la struttura delle competenze ottimale per una grande impresa e la struttura organizzativa per l'interazione tra tutti i partecipanti al processo. Sono stati organizzati team Agile che si occupano delle esigenze di tutto lo spettro dei clienti commerciali, e il processo di interazione con i team di progetto per la creazione di piattaforme e infrastrutture, che rappresentano le fondamenta dell'edificio MLOps in costruzione, è stato stabilito.
Domande per il futuro
L'MLOps è un campo in evoluzione che sta affrontando una carenza di competenze e nella quale crescerà in futuro. Nel frattempo, è meglio basarsi su esperienze e pratiche di DevOps. L'obiettivo principale dell'MLOps è un utilizzo più efficace dei modelli ML per risolvere i problemi aziendali. Tuttavia, sorgono molte domande:
- Come ridurre il tempo necessario per mettere in produzione i modelli?
- Come ridurre le frizioni burocratiche tra team con diverse competenze e aumentare l'orientamento alla collaborazione?
- Come monitorare i modelli, gestire le versioni e organizzare un monitoraggio efficace?
- Come creare un ciclo di vita davvero ciclico per un modello ML moderno?
- Come standardizzare il processo di apprendimento automatico?
Le risposte a queste domande influenceranno in gran parte quanto rapidamente MLOps realizzerà il suo potenziale completo.
Fonte: habr.com
