Vai al contenuto

Pipelines di Machine Learning per Multi-tenant: la soluzione per i fornitori di servizi

Affronteremo come i fornitori di soluzioni possono gestire pipeline di Machine Learning in un contesto multi-tenant, garantendo un controllo centralizzato e personalizzato.

Nei contesti aziendali, le pipeline di Machine Learning (ML) rappresentano un tassello fondamentale per implementare l’IA nelle operazioni quotidiane. Tuttavia, la gestione di queste pipeline può diventare complessa quando si parla di contesti multi-tenant, in cui ogni singolo attore può avere la propria sottoscrizione Azure.

Ci sono vari scenari nei quali un’organizzazione può trovarsi a gestire una soluzione di questo genere. Ad esempio, ogni tenant può voler mantenere privati i propri dati o potrebbe necessitare di un ambiente specifico per l’addestramento, il riaddestramento e l’inferenza delle proprie ML. Inoltre, i parametri dell’algoritmo di Machine Learning potrebbero cambiare da un tenant all’altro.

In questo contesto, emerge la necessità per i fornitori di soluzioni di mantenere un deposito centralizzato per tutti i dati, i modelli, gli ambienti e i componenti di tutti i tenant. Allo stesso tempo, è importante mantenere una certa flessibilità per gestire ciascun tenant, decidendo quando e come condividere dati, modelli e ambienti con gli altri.

La soluzione a questa esigenza risiede in Azure Machine Learning (AzureML) Registries. Questo strumento agisce come intermediario per i tenant, permettendogli di condividere dati, modelli, ambienti e componenti, con un’attenzione particolare al versionamento.

Tutto ciò è possibile grazie ai cosiddetti registri AzureML che, una volta creati, devono essere resi disponibili per molteplici regioni geografiche, per coprire tutte le eventuali ubicazioni dei tenant.

Il funzionamento è piuttosto semplice: ogni tenant possiede il proprio spazio di lavoro all’interno della propria sottoscrizione, dove dispone di autonomia per le risorse di calcolo e di archiviazione. All’interno di questo spazio, il tenant può costruire la propria pipeline di ML utilizzando i propri dati, modelli, ambienti e componenti.

Se un tenant desidera condividere dati/modelle/ambienti/componenti con un altro tenant, può farlo attraverso il registro, in una operazione definita “share”. Da qui, è possibile condividere con gli altri tenant, attraverso il “push”. Inoltre, i tenant possono anche ricevere dati/modelle/ambienti/componenti dal registro, in un’operazione definita “pull”.

Questa concezione della soluzione può rispondere a molteplici scenari di condivisione dei modelli:

  1. Ogni tenant può avere i propri modelli specifici, senza condividerli con gli altri;
  2. Tutti i tenant possono condividere i propri modelli, se lo desiderano;
  3. Tutti i tenant possono estrarre i modelli condivisi, riaddestrarli o affinarli, quindi condividere nuovamente i modelli riaddestrati o perfezionati.

Scenari simili si applicano a dati, ambienti e componenti.

Tutto ciò potrebbe sembrarvi complesso, ma in realtà, tutto è gestito in modo incredibilmente intuitivo e snello da AzureML. Infatti, le operazioni di “share/push” e “pull” possono essere eseguite sia attraverso l’interfaccia utente di AzureML, sia attraverso le funzionalità offerte dal Software Development Kit (SDK).

In conclusione, un approccio di gestione centralizzata delle pipeline di Machine Learning offre numerosi vantaggi, tra cui una maggiore trasparenza, un miglior controllo e una gestione più efficiente delle risorse.