Come migliorare il machine learning

Come migliorare il machine learning

28 Dicembre 2022 ai 2
come migliorare il ciclo di vita di un progetto

Si chiamano anche MLOps (Machine Learning Operations) e sono un insieme di consigli inerenti ai flussi di lavoro per semplificare e migliorare il machine learning o meglio, il ciclo di vita del tuo modello di machine learning.

Ciclo di vita: migliorare il machine learning

Con “ciclo di vita” intendiamo abitualmente le tre fasi dello sviluppo di un modello, ovvero sviluppo della pipeline, addestramento e inferenza.

Non stiamo affrontando una competenza teorica e valida solo per i project manager che lavorano nell’ambito dell’intelligenza artificiale. Tutt’altro: l’interesse verso il ciclo di vita del machine learning implica anche che possa essere ottimizzato con specifici interventi, aumentandone quindi il valore commerciale del prodotto. 

Quindi, questo argomento, è anche di interesse manageriale.

Ma può persino essere di interesse del singolo developer, che comprendendo il suo ruolo all’interno del ciclo di vita del prodotto è portato ad avere una consapevolezza e delle capacità comunicative potenzialmente molto maggiori.

Ciclo di vita di un progetto per migliorare il machine learning

Il ciclo di vita dell’apprendimento automatico prevede tre fasi principali. 

1) Obiettivo del modello per migliorare il machine learning

Prima ci si pone di fronte un obiettivo. Può trattarsi di qualsiasi cosa, di creare valore in qualche modo, e di formulare ipotesi per tentare una risoluzione che il cliente sta cercando.

Attenzione, però: questa fase consiste non solo nell’inquadrare l’obiettivo in un’ottica di machine learning, ma anche di capire se il machine learning serve o meno e dove serve, per risolvere in maniera ottimale quello specifico tipo di problema del cliente.

2) Raccolta dati per migliorare il machine learning

La fase successiva consiste nel raccogliere e preparare tutti i dati da utilizzare per il nostro futuro machine learning. Ciò significa intervistare esperti del settore per stabilire quali dati sarebbero utili, raccogliere tali dati dai gestionali aziendali, o da sondaggi, test e altro, e soprattutto convertirli in un formato adeguato per l’elaborazione, la parte più delicata.

Per estrarre informazioni dai dati utilizzando il machine learning è necessario selezionare la variabile target, ad esempio “acquisti fatti dai clienti nel periodo natalizio”, oppure “indice di gradimento della campagna promozionale”. 

3) Progettazione per migliorare il machine learning

Una volta preparati i dati, il team di ingegneri progetta l’algoritmo di machine learning necessario per eseguire i task. In genere, un’organizzazione utilizza modelli generalizzati che possono essere utilizzati per ogni problema, in modo da risparmiare tempo nella ricerca.

L’aspetto più importante durante questa fase è garantire al cliente che si sono rispettati gli standard legali e procedurali richiesti per sviluppare il modello. È un passaggio molto importante perché il machine learning è spesso visto come un processo imprevedibile e difficilmente spiegabile, da cui molti clienti soprattutto con dati sensibili alla mano sono piuttosto spaventati. 

Il flusso delle operazioni di apprendimento automatico

A sua volta la terza fase descritta sopra, quella dell’apprendimento automatico vero e proprio, si compone di cinque momenti che vanno a costituire una pipeline:

1) trigger

2) addestramento e test del modello

3) registrazione

4) distribuzione 

5) monitoraggio 

Vediamo nei dettagli questi cinque punti.

1) Trigger

Il trigger è un vero e proprio innesco del processo del machine learning, e consiste in buona sostanza nella “data ingestion”. In questa fase si gestiscono il volume, la velocità e la diversità dei dati estraendoli da diverse fonti (come database, data warehouse o data lake) e inserendo i dati necessari per la fase di addestramento del modello. Per ottimizzare questa fase è consigliabile scegliere delle pipeline di dati robuste e da diverse fonti. 

In questa fase, è possibile suddividere e distribuire i dati nel formato necessario per l’addestramento del modello.

2) Addestramento e test del modello 

Questa fase consente l’addestramento del modello dopo aver ottenuto i dati necessari per l’addestramento del modello ML nella fase precedente; qui abbiamo uno script che esegue tutte le fasi tradizionali del ML, come la preelaborazione dei dati, l’ingegnerizzazione delle caratteristiche e la scala delle caratteristiche prima di addestrare qualsiasi modello. 

In seguito, il modello di ML viene addestrato e si regolano gli iperparametri per adattare il modello al set di dati. 

Questa fase può essere completata manualmente, anche se esistono alternative efficienti e automatiche, come la ricerca a griglia o la ricerca casuale. Il modello di machine learning è il risultato finale di questo processo.

Durante il test, le prestazioni del modello addestrato vengono valutate sui dati di prova, che sono stati suddivisi e modificati nella fase di ingestione dei dati. L’inferenza del modello addestrato viene valutata utilizzando metriche che variano di caso in caso.

Dopo aver testato il modello addestrato nella fase precedente, questo può essere serializzato in un file o containerizzato (usando Docker) ed esportato nell’ambiente di produzione.

2) Registrazione 

Il modello serializzato o containerizzato nella fase precedente viene registrato e salvato in in bundle di uno o più file che costruiscono, rappresentano ed eseguono il modello di apprendimento automatico. Dopo la registrazione, il modello (tutti i file o un singolo file) può essere scaricato e distribuito secondo le necessità.

Un modello di classificazione, ad esempio, può essere composto da un vettorizzatore, da pesi del modello e da file di modello serializzati, che potrebbero venir registrati come un unico modello. 

4) Distribuzione

È fondamentale convalidare la durata e le prestazioni di un modello di ML prima di distribuirlo in produzione. Come saranno le prestazioni del modello in un ambiente di test? Il controllo qualità esamina poi i risultati delle prestazioni e dà il via libera per l’implementazione nell’ambiente di produzione.

5) Monitoraggio

Possiamo monitorare le prestazioni, lo stato di salute e la durata del sistema di produzione.

L’analisi delle prestazioni dei modelli di ML implementati nei sistemi di produzione è fondamentale per garantire prestazioni e governance ottimali. In fase di monitoraggio si analizzano la correttezza del modello, la parzialità, la trasparenza e gli errori.

Ecco illustrata la tecnica MLOps, che prevede anche la tracciabilità di ogni fase del percorso e la trasparenza della pipeline, del dataset e dei parametri per far convergere il modello nella sua versione finale. 

 

2 risposte

  1. Come ricavare i dati per il Machine Learning - NetAi ha detto:

    […] la differenza tra dati strutturati e dati non strutturati, come sappiamo l’imput di un modello di ML può essere soltanto un vettore o una matrice di numeri, in altre parole dati strutturati. Come […]

  2. Vantaggi e Svantaggi delle Reti Neurali - NetAi ha detto:

    […] di gestire un numero di parametri molto più alto rispetto a quello di dataset tradizionali e del Machine Learning classico. Ad esempio per riconoscere un’immagine abbiamo bisogno di tanti parametri quanti […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *