Modelli standard di Machine Learning o personalizzati?

Quando costruire è meglio che acquistare una soluzione pronta all’uso?
Le aziende possono impegnarsi in diversi approcci allo sviluppo del modello. Dai servizi ML completamente gestiti, fino ai modelli personalizzati. A seconda dei requisiti aziendali, delle competenze disponibili e dei vincoli di pianificazione, devono fare una scelta: devono sviluppare soluzioni personalizzate da zero? O dovrebbero scegliere un servizio standard?

Per tutte le fasi dei carichi di lavoro di Machine Learning, è necessario prendere una decisione in merito a come i diversi pezzi del puzzle si adatteranno insieme. Dalla raccolta, preparazione e visualizzazione dei dati, fino all’ingegneria delle funzionalità, all’addestramento dei modelli e alla valutazione, gli ingegneri del machine learning si pongono ripetutamente la stessa domanda: sarà una soluzione implementata su misura, scritta e sviluppata da zero? O sarà un servizio standard?

Ma quando costruire è meglio che acquistare una soluzione pronta all’uso? I principali fattori di differenziazione tra i due approcci: sforzi di pre-elaborazione, velocità di sviluppo e competenze richieste.

Aspetti da considerare quando si decide di utilizzare modelli di machine learning standard o personalizzati?
Sforzi di pre-elaborazione
I progetti di machine learning stanno affrontando tutti i tipi di sfide, ma forse la sfida più grande è la disponibilità dei dati di formazione. La mancanza di dati di formazione può interrompere un progetto prima ancora che inizi. Prima ancora che un progetto inizi, può affrontare costi di pre-elaborazione significativi dalla raccolta dei dati, dall’etichettatura dei dati, dalla pulizia e dagli sforzi di pre-elaborazione. Questa è la nota trappola in cui molti progetti ML falliscono: la pre-elaborazione finisce per prendere l’80% delle risorse allocate, mentre poche risorse rimangono per l’effettivo addestramento e valutazione del modello.

Le soluzioni pronte all’uso alleviano le fatiche e le difficoltà degli sforzi di pre-elaborazione. Sono costruiti per eseguire le operazioni più comuni con solo una piccola configurazione richiesta. La cosa migliore è che esistono soluzioni pronte per l’uso per tutte le fasi dei carichi di lavoro ML.

D’altra parte, le implementazioni personalizzate di solito richiedono maggiori sforzi di pre-elaborazione. Ciò non significa che debbano essere eliminati del tutto: sono ancora tenuti a perfezionare una certa fase di ML in base alle specifiche del problema da risolvere. Un set di dati particolarmente sporco potrebbe richiedere un tipo speciale di regole di pulizia. Allo stesso tempo, un set di funzionalità specifico può richiedere la progettazione di funzionalità personalizzate, così come le architetture neurali possono richiedere lievi aggiustamenti. In questo caso, è probabile che soluzioni personalizzate costruite da zero coprano tutte le esigenze.

Velocità di sviluppo 
Le soluzioni standard si concentrano sulla configurazione piuttosto che sull’implementazione. Invece di allocare risorse per capire cosa dovrebbe essere fatto, i team di ML si concentreranno su come i diversi pezzi del puzzle si incastreranno insieme. Questo approccio consente ad aziende, ricercatori e ingegneri di implementare rapidamente prototipi e prove di concetto. Invece di reinventare la ruota, le soluzioni pronte per l’uso consentono di sfruttare le conoscenze esistenti, risparmiando così tempo di sviluppo.

Le soluzioni personalizzate implementate da zero sono note per essere molto più lente rispetto alla velocità di sviluppo. Ciò è dovuto alle maggiori esigenze di manutenzione: gli ingegneri devono capire sia il cosa che il come della soluzione. Allo stesso modo, più complessa è la soluzione, più tempo sono necessarie per garantirne la scalabilità e la disponibilità durante la produzione. Da questo punto di vista, le soluzioni personalizzate e gli sforzi in termini di tempo sono direttamente proporzionali: più una soluzione è complessa, più tempo richiederà.

Di solito, tuttavia, la verità sta nel mezzo: una base di codice esistente verrà rifattorizzata e adattata alle esigenze del progetto attuale. È il caso del noto approccio di transfer learning alla formazione modello.

Competenza
Proprio come esistono più livelli in cui viene eseguito il Machine Learning, esistono più livelli di competenza in cui è possibile sviluppare modelli ML, che vanno dalle interfacce prive di codice fino alla creazione di modelli da zero.

Esistono soluzioni pronte per l’uso per le quali sono richieste pochissime competenze di machine learning. Utilizzando interfacce intuitive e persino approcci di trascinamento della selezione, è diventato estremamente semplice per chiunque (dagli analisti aziendali agli ingegneri del software) creare e distribuire una sorta di modello di apprendimento automatico. Sebbene questo semplice approccio allo sviluppo del modello possa funzionare per scopi di prototipazione, è improbabile che soddisfi i requisiti dei sistemi di produzione.

La competenza è ancora necessaria per configurare, impostare e mantenere correttamente le soluzioni pronte all’uso in produzione. Soluzioni alternative, patch di codice, connessione a diverse interfacce API e gestione dei problemi di distribuzione sono attività comuni necessarie per garantire le prestazioni dei modelli negli ambienti di produzione.

Le soluzioni su misura vengono solitamente implementate a livello infrastrutturale e non c’è niente da fare: la competenza è sicuramente necessaria. A seconda delle dimensioni dell’azienda e degli obiettivi del progetto, potrebbero essere necessari team multidisciplinari per la manutenzione dei sistemi di produzione. Scienziati di dati, ingegneri ML e analisti aziendali si uniscono per dare un senso ai risultati dell’inferenza e mantenere i modelli di produzione.

Cosa dovresti usare: un modello di apprendimento automatico standard o personalizzato?
Una soluzione ML sarà costituita da molti singoli componenti e servizi che devono unirsi in una soluzione coesa. Non si tratta mai di diventare personalizzati al 100% o di essere pronti al 100% poiché diversi problemi aziendali richiedono soluzioni diverse. Il più delle volte, le soluzioni basate sul machine learning sono costruite da un mix dei due: servizi standard per estrarre informazioni generali, combinati con modelli personalizzati per una maggiore precisione e la modellazione di conoscenze specifiche del dominio.

Il trucco è sapere quando implementare soluzioni personalizzate da zero e quali parti del progetto possono sfruttare i vantaggi dei servizi standard. Ciò dipende in larga misura dal tipo di problema affrontato, dai requisiti aziendali, dai dati disponibili e dai vincoli generali dell’ambiente di sviluppo.

Di ihal