Quando abbiamo costruito l'Assistente di integrazione Iris, un motore di raccomandazione alimentato dall'intelligenza artificiale, è stata la prima incursione di SnapLogic nell'apprendimento automatico (ML). Sebbene l'esperienza ci abbia lasciato molti spunti utili, uno si è imposto sugli altri: l'apprendimento automatico, abbiamo scoperto, è pieno di sfide per l'integrazione dei dati.
Naturalmente, durante il processo, sapevamo che lo sviluppo di un modello di ML comporta l'integrazione dei dati. Ma non ci siamo resi conto di quanto gravi e diffuse sarebbero state le sfide di integrazione.
Gli ostacoli all'integrazione sono la norma
In effetti, non siamo gli unici che, quando si sono avventurati nell'apprendimento automatico, hanno incontrato una serie di ostacoli all'integrazione. Un sondaggio condotto su quasi 200 data scientist ha rivelato che il 53% degli intervistati ha dedicato la maggior parte del tempo alla raccolta, all'etichettatura, alla pulizia e all'organizzazione dei dati, tutte attività di integrazione.
Purtroppo, nell'apprendimento automatico non si può sfuggire alla necessità di pulire e preparare i dati. Se si addestra un modello con dati scadenti, si otterrà in cambio un modello scadente. I "dati sporchi" rimangono il problema principale che gli scienziati dei dati devono affrontare oggi.[1]
Questo ci porta a concludere che la necessità di integrare i dati durante tutto il ciclo di vita dell'apprendimento automatico non sta scomparendo. Ma gli approcci prevalenti, basati sul codice, a questi problemi di integrazione dei dati devono cambiare. Le attività di integrazione manuale sottraggono tempo prezioso che i data scientist dovrebbero dedicare al lavoro strategico e ad alto impatto. Nel peggiore dei casi, vanificano del tutto i progetti di apprendimento automatico, impedendovi di vedere il ritorno promesso sui vostri investimenti nell'IA.
Lo sviluppo e la distribuzione dell'apprendimento automatico hanno un disperato bisogno di integrazione self-service.
Quali sono le principali sfide di integrazione nell'apprendimento automatico?
All'inizio, il data scientist si scontra con le sfide dell'integrazione. Deve acquisire dati da diverse fonti con l'obiettivo di creare un set di dati di formazione ampio e di qualità.
Il data scientist potrebbe aver bisogno di estrarre i dati POS da un data lake cloud come Amazon S3, di estrarre i file di log da un server web o di raccogliere i dati di inventario da un sistema ERP Oracle. In genere, chiede all'IT l'accesso a questi dati sotto forma di un unico dump di dati. Oppure scrivono script personalizzati in Python. Entrambe le opzioni sono lente e difficili da ripetere in modo affidabile. Se il data scientist vuole accedere ad altre tabelle all'interno di una determinata fonte di dati, deve seguire gli stessi complicati passaggi, ritardando ulteriormente il time-to-value.
Altre sfide di integrazione si presentano ai data scientist quando preparano i dati grezzi acquisiti. Devono filtrare i dettagli irrilevanti, eliminare le informazioni sensibili, individuare e rimuovere gli errori, modificare i tipi di dati, pulire i valori mancanti e svolgere altre operazioni di pulizia dei dati. Tradizionalmente, i data scientist preparano i dati codificando in Python - o in un altro linguaggio di programmazione - all'interno di Jupyter Notebook. Certo, la codifica offre flessibilità nella personalizzazione dei dati, ma fa perdere tempo prezioso per un lavoro non strategico e banale.
L'onere dell'integrazione non si ferma qui. Una volta scelto un algoritmo (ad esempio, una regressione logistica), il data scientist deve fornire al modello i dati di addestramento che ha faticosamente preparato. Anche in questo caso, è necessario un ulteriore lavoro di codifica. Dopo l'addestramento, il modello deve essere sottoposto a test e a convalida incrociata per garantire che le sue previsioni siano accurate. Più integrazioni, più codifica.
Quando il modello è finalmente pronto per l'uso nel mondo reale, il data scientist deve spesso consegnarlo a un team di sviluppo software (DevOps) per l'operatività. In molti casi, DevOps deve convertire il codice in un formato diverso. Inoltre, devono ospitare il modello in un servizio web per soddisfare le richieste API. Queste attività hanno a che fare con l'integrazione e richiedono uno scripting manuale.
L'ideale sarebbe iterare il modello per continuare a migliorarne l'accuratezza di previsione anche dopo la sua messa in funzione. Ma è possibile farlo solo se lo si addestra continuamente con nuovi dati. Ciò significa che dovrete affrontare l'intera trafila dell'acquisizione di nuovi dati di partenza, della pulizia e della preparazione dei dati, dell'arruolamento di sviluppatori per rimettere in produzione il modello e così via.
L'eccessiva codifica, la ridondanza e i tentativi ed errori manuali dell'approccio tradizionale all'apprendimento automatico non possono essere sostenuti. È ora di portare l'integrazione self-service nel processo di apprendimento automatico.
Immaginare un futuro self-service per l'apprendimento automatico
Una soluzione self-service per il ciclo di vita dell'apprendimento automatico dovrebbe automatizzare il lavoro di routine, ma comunque importante, come il rimescolamento dei dati. Dovrebbe anche eliminare le ridondanze. Ad esempio, quando si crea un set di dati per l'addestramento iniziale, si dovrebbe essere in grado di integrare i dati di origine una sola volta e poi riutilizzare quella pipeline per l'addestramento continuo in futuro.
In un ambiente self-service, i data scientist non dovranno più riempire i loro programmi con attività di integrazione come la raccolta, la pulizia e l'organizzazione dei dati. Al contrario, utilizzeranno il pensiero critico, risolveranno problemi aziendali cruciali, costruiranno straordinari modelli di apprendimento automatico, sogneranno altri casi d'uso dell'IA e troveranno nuovi modi per aggiungere valore.
Il ML self-service dovrebbe rendere l'apprendimento automatico accessibile anche a coloro che hanno competenze meno specializzate ma che sono in sintonia con i professionisti della linea di business (ad esempio, analisti aziendali e citizen data scientist). Come nel caso della "democratizzazione" delle attività in altri settori, ciò ridurrà i colli di bottiglia e consentirà a un maggior numero di persone all'interno delle organizzazioni di ottenere risultati con il machine learning.
Ciò consentirà alle aziende di esplorare un numero molto maggiore di aree in cui la tecnologia potrebbe essere applicata rispetto a quanto farebbero altrimenti. Di conseguenza, saranno in grado di produrre un maggior numero di modelli efficaci in grado di fornire valore all'azienda.
L'impatto del ML self-service sarà massiccio
In definitiva, una soluzione di ML self-service dovrebbe accelerare lo sviluppo e l'implementazione dell'apprendimento automatico. Ciò consentirà alle aziende di esplorare un numero molto maggiore di aree in cui la tecnologia può essere applicata rispetto a quanto potrebbero fare altrimenti. Di conseguenza, produrranno un maggior numero di modelli efficaci che forniranno valore all'azienda. Non solo avranno modelli che, ad esempio, semplificano le operazioni, ma anche modelli che migliorano la sicurezza dei prodotti, aumentano le vendite dei prodotti esistenti e creano nuovi canali di guadagno.
Quello che stiamo descrivendo è una soluzione self-service che gestisce sia l'integrazione dei dati che lo sviluppo e la distribuzione dell'apprendimento automatico. L'impatto di una soluzione di questo tipo potrebbe essere profondo. Noi di SnapLogic abbiamo la sensazione che l'apprendimento automatico self-service possa essere proprio dietro l'angolo. Restate sintonizzati.
[1] Questo dato si basa su un sondaggio condotto tra migliaia di data scientist. Questa particolare domanda ha ricevuto 7.376 risposte da parte di data scientist e altri professionisti incentrati sui dati, come analisti, ingegneri dei dati, programmatori, ecc.
https://www.kaggle.com/surveys/2017