Approcci architetturali per intelligenza artificiale e Machine Learning in soluzioni multi-tenant

Un numero crescente di soluzioni multi-tenant è basato sull'intelligenza artificiale e sull'apprendimento automatico. Una soluzione multi-tenant di intelligenza artificiale e machine learning offre funzionalità uniformi basate su machine learning per un qualsiasi numero di tenant. I tenant in genere non possono accedere o condividere i dati di altri tenant, ma in alcuni casi potrebbero usare gli stessi modelli.

Le architetture di intelligenza artificiale multi-tenant e machine learning devono tenere conto dei requisiti dei dati e dei modelli e delle risorse di calcolo necessarie per eseguire il training dei modelli ed eseguire l'inferenza. È importante considerare come distribuire, distribuire e orchestrare modelli di intelligenza artificiale multi-tenant e Machine Learning multi-tenant e garantire che la soluzione rimanga accurata, affidabile e scalabile.

Le tecnologie di intelligenza artificiale generative che usano modelli linguistici grandi e piccoli continuano a guadagnare popolarità. Di conseguenza, le organizzazioni devono stabilire procedure operative e strategie efficaci per gestire questi modelli negli ambienti di produzione adottando operazioni di Machine Learning (MLOps) e operazioni di intelligenza artificiale generative (GenAIOps), precedentemente note come LLMOps.

Considerazioni e requisiti principali

Quando si lavora con l'intelligenza artificiale e l'apprendimento automatico, è importante considerare separatamente i requisiti per l'addestramento e per l'inferenza. Lo scopo del training è creare un modello predittivo basato su un set di dati. L'inferenza viene eseguita quando si usa il modello per stimare un elemento nell'applicazione. Ognuno di questi processi ha requisiti diversi. In una soluzione multi-tenant, considera in che modo il tuo modello di tenancy influisce su ciascun processo. Prendendo in considerazione ognuno di questi requisiti, è possibile assicurarsi che la soluzione produa risultati accurati, prestazioni ben sotto carico, sia conveniente e possa essere ridimensionata per una crescita futura.

Isolamento dei tenant

Assicurarsi che i tenant non ottengano l'accesso non autorizzato o indesiderato ai dati o ai modelli di altri tenant. Trattare i modelli con una sensibilità simile ai dati non elaborati usati per eseguirne il training. Assicurarsi che i tenant comprendano il modo in cui i dati vengono usati per eseguire il training dei modelli e il modo in cui i modelli sottoposti a training sui dati di altri tenant potrebbero essere usati per scopi di inferenza nei carichi di lavoro.

I tre approcci comuni per l'uso dei modelli di Machine Learning nelle soluzioni multi-tenant sono modelli specifici del tenant, modelli condivisi e modelli condivisi ottimizzati.

Modelli specifici dell'inquilino

I modelli specifici del tenant vengono addestrati solo sui dati di un singolo tenant e applicati solo a quel tenant. Usare modelli specifici del tenant quando i dati dei tenant sono sensibili o quando non è possibile applicare in modo efficace informazioni dettagliate dai dati di un tenant a un altro tenant. Il diagramma seguente illustra come è possibile creare una soluzione con modelli specifici per tenant per due tenant.

Diagramma che mostra due modelli tenant-specifici. Ogni modello è addestrato con i dati di un singolo tenant.

Modelli condivisi

Nelle soluzioni che usano modelli condivisi, tutti i tenant eseguono l'inferenza in base allo stesso modello condiviso. I modelli condivisi possono essere modelli pre-addestrati acquisiti o ottenuti da una risorsa comunitaria. Il diagramma seguente illustra come tutti i tenant possono utilizzare un singolo modello preaddestrato per l'inferenza.

Diagramma che mostra un singolo modello preaddestrato. Il modello viene usato per l'inferenza dagli utenti di tutti i partecipanti.

È possibile creare i propri modelli condivisi addestrandoli con i dati forniti da tutti i tenant. Il diagramma seguente mostra un singolo modello condiviso addestrato sui dati di tutti i tenant.

Diagramma che mostra un singolo modello condiviso sottoposto a training sui dati di più tenant. Il modello viene usato per l'inferenza da parte degli utenti di tutti i tenant.

Importante

Se si addestra un modello condiviso dai dati dei tenant, assicurarsi che i tenant comprendano e accettino l'uso dei dati. Assicurarsi che le informazioni di identificazione vengano rimosse dai dati dei tenant.

Cosa fare se un inquilino si oppone all'uso dei propri dati per addestrare un modello che serve un altro inquilino. Ad esempio, potrebbe essere necessario escludere i dati del tenant dal set di dati di training.

Modelli condivisi ottimizzati

Si potrebbe scegliere un modello di base preaddestrato e ottimizzarlo ulteriormente per renderlo applicabile a ciascuno dei tenant sulla base dei rispettivi dati. Il diagramma seguente illustra questo approccio.

Diagramma che mostra un modello di base pre-addestrato specializzato per ciascun tenant, con i propri dati.

Scalabilità

Valutare il modo in cui la crescita della soluzione influisce sull'uso dei componenti di Intelligenza artificiale e Machine Learning. La crescita può fare riferimento a un aumento del numero di tenant, alla quantità di dati archiviati per ogni tenant, al numero di utenti e al volume di richieste alla soluzione.

Formazione: Diversi fattori influiscono sulle risorse necessarie per eseguire il training dei modelli. Questi fattori includono il numero di modelli di cui è necessario eseguire il training, la quantità di dati usati per eseguire il training dei modelli e la frequenza con cui si esegue il training o la ripetizione del training dei modelli. Se si creano modelli specifici per tenant, con l’aumentare del numero di tenant aumenta probabilmente anche la quantità di risorse di calcolo e di archiviazione necessaria. Se si creano modelli condivisi e li si allenano utilizzando i dati di tutti i tenant, le risorse di training in genere non vengono ridimensionate allo stesso tasso di crescita dei tenant. Tuttavia, man mano che aumenta la quantità complessiva di dati di training, influisce sulle risorse utilizzate per eseguire il training di modelli condivisi e specifici del tenant.

Inferenza: Le risorse necessarie per l'inferenza sono spesso proporzionali al numero di richieste che accedono ai modelli per l'inferenza. Con l'aumentare del numero di tenant, è probabile che anche il numero di richieste aumenti.

È consigliabile usare Azure servizi con scalabilità ottimale. I carichi di lavoro di Intelligenza artificiale e Machine Learning vengono spesso eseguiti in contenitori, quindi Servizio Azure Kubernetes (AKS) e Istanze di Azure Container sono scelte comuni per questi carichi di lavoro. AKS è spesso una buona scelta perché offre elevata scalabilità e perché adatta dinamicamente le risorse di calcolo in base alla domanda. È possibile usare Istanze di Container per carichi di lavoro di piccole dimensioni. È relativamente semplice da configurare, ma non è scalabile quanto AKS.

Performance

Prendere in considerazione i requisiti di prestazioni per i componenti di intelligenza artificiale e Machine Learning della soluzione, tra cui training e inferenza. Definire chiaramente le aspettative di latenza e prestazioni per ogni processo in modo da poter misurare e migliorarle in base alle esigenze.

Addestramento: L'addestramento del modello viene spesso eseguito come processo batch, il che significa che potrebbe non essere critico in termini di prestazioni rispetto ad altre parti del carico di lavoro. Tuttavia, assicurarsi di eseguire il provisioning di risorse sufficienti per effettuare in modo efficiente l'addestramento del modello, anche durante la scalabilità.

Inferenza: L'inferenza è un processo sensibile alla latenza che spesso richiede una risposta veloce o in tempo reale. Anche se non è necessario eseguire l'inferenza in tempo reale, assicurarsi di monitorare le prestazioni della soluzione e usare i servizi appropriati per ottimizzare il carico di lavoro.

È consigliabile usare Azure funzionalità di elaborazione ad alte prestazioni per i carichi di lavoro di Intelligenza artificiale e Machine Learning. Azure offre molti tipi diversi di macchine virtuali e altre istanze hardware. Valutare se la soluzione può trarre vantaggio dall'uso di CPU, GPU, array di gate programmabili sul campo (FPGA) o altri ambienti con accelerazione hardware. Azure fornisce anche l'inferenza in tempo reale con GPU NVIDIA, incluso il server di inferenza NVIDIA Triton. Per i requisiti di calcolo a bassa priorità, prendere in considerazione l'uso dei pool di nodi spot AKS. Per altre informazioni su come ottimizzare i servizi di calcolo in una soluzione multi-tenant, vedere Approcci architetturali per il calcolo in soluzioni multi-tenant.

Il training del modello richiede in genere molte interazioni con gli archivi dati, quindi è importante prendere in considerazione la strategia dei dati e le prestazioni fornite dal livello dati. Per altre informazioni sulla multi-tenancy e sui servizi dati, vedere Approcci architetturali per l'archiviazione e i dati nelle soluzioni multi-tenant.

Complessità dell'implementazione

Quando si compila una soluzione per usare intelligenza artificiale e Machine Learning, è possibile usare componenti predefiniti o creare componenti personalizzati. È necessario prendere due decisioni chiave:

  • Selezionare la piattaforma o il servizio da usare per intelligenza artificiale e Machine Learning.
  • Decidi se utilizzare modelli preaddestrati o sviluppare modelli personalizzati.

Platforms: Azure offre molti servizi che è possibile usare per i carichi di lavoro di Intelligenza artificiale e Machine Learning. Ad esempio, Microsoft Foundry fornisce API per eseguire l'inferenza su modelli predefiniti e Microsoft gestisce le risorse sottostanti. Con Foundry è possibile distribuire rapidamente una nuova soluzione, ma limita il controllo sui processi di training e inferenza e potrebbe non adattarsi a ogni tipo di carico di lavoro. Al contrario, Machine Learning è una piattaforma per la creazione, il training e l'uso di modelli di machine learning personalizzati. Machine Learning offre controllo e flessibilità, ma aumenta la complessità della progettazione e dell'implementazione. Esaminare i prodotti e le tecnologie di Machine Learning di Microsoft per prendere una decisione informata quando si seleziona un approccio.

Modelli: Anche quando non si usa un modello completo fornito da un servizio come Foundry, è comunque possibile usare un modello con training preliminare per accelerare lo sviluppo. Se un modello preaddestrato non soddisfa esattamente le tue esigenze, considera di adattarlo applicando una tecnica nota come fine-tuning o transfer learning. Con l'ottimizzazione, è possibile estendere un modello esistente e applicarlo a un dominio diverso. Ad esempio, se crei un servizio di raccomandazione musicale multi-tenant, potresti prendere in considerazione l'utilizzo di un modello preaddestrato di raccomandazioni musicali e usare il fine-tuning per addestrare il modello per le preferenze musicali di un utente specifico.

Con una piattaforma di Machine Learning predefinita, ad esempio Foundry o un modello con training preliminare, è possibile ridurre significativamente i costi iniziali di ricerca e sviluppo. Le piattaforme predefinite potrebbero risparmiare molti mesi di ricerca ed evitare la necessità di assumere data scientist altamente qualificati per eseguire il training, la progettazione e ottimizzare i modelli.

Ottimizzazione dei costi

In genere, i carichi di lavoro di Intelligenza artificiale e Machine Learning comportano la maggior parte dei costi delle risorse di calcolo necessarie per il training e l'inferenza del modello. Per altre informazioni su come ottimizzare il costo del carico di lavoro di calcolo per i requisiti, vedere Approcci architetturali per il calcolo in soluzioni multi-tenant.

Quando si pianificano i costi di intelligenza artificiale e Machine Learning, considerare i requisiti seguenti:

Approcci e modelli da prendere in considerazione

Azure fornisce un set di servizi per i carichi di lavoro di Intelligenza artificiale e Machine Learning. Le soluzioni multi-tenant usano diversi approcci architetturali comuni:

  • Usare soluzioni predefinite di intelligenza artificiale e Machine Learning.

  • Creare un'architettura personalizzata di intelligenza artificiale e machine learning usando Machine Learning.

  • Usare una delle piattaforme di analisi Azure.

Usare l'intelligenza artificiale predefinita e i servizi di Machine Learning

È consigliabile usare servizi di intelligenza artificiale predefiniti e machine learning, quando possibile. Ad esempio, l'organizzazione potrebbe iniziare a esplorare l'intelligenza artificiale e l'apprendimento automatico e vuole integrarsi rapidamente con un servizio utile. In alternativa, potrebbero essere presenti requisiti di base che non richiedono il training e lo sviluppo di modelli di Machine Learning personalizzati. Con i servizi di Machine Learning predefiniti, è possibile usare l'inferenza senza creare ed eseguire il training di modelli personalizzati.

Azure offre diversi servizi che forniscono tecnologia di intelligenza artificiale e Machine Learning in un'ampia gamma di domini. Questi domini includono la comprensione del linguaggio, il riconoscimento vocale, la conoscenza, il riconoscimento di documenti e moduli e la visione artificiale. Azure offre servizi predefiniti di intelligenza artificiale e Machine Learning tramite Foundry, un servizio di applicazione di intelligenza artificiale unificato. Questo servizio consente agli utenti di accedere a vari modelli, tra cui Azure OpenAI. Azure offre anche un set di servizi di intelligenza artificiale autonomi, tra cui Azure AI Search, Foundry IQ e Azure Document Intelligence. Molti di questi servizi offrono un'interfaccia semplice per l'integrazione di funzionalità di intelligenza artificiale sofisticate. In quanto servizi gestiti, forniscono accordi sul livello di servizio (SLA) e richiedono poca configurazione e poca gestione continua. Non è necessario sviluppare o testare modelli personalizzati per usare questi servizi.

Molti servizi di Machine Learning gestiti non richiedono il training del modello o i dati, quindi in genere non ci sono problemi di isolamento dei dati del tenant. Tuttavia, alcuni servizi di intelligenza artificiale e Machine Learning gestiti offrono una funzionalità di personalizzazione del modello:

Quando si lavora con questi servizi, è importante considerare i requisiti di isolamento per i dati dei tenant.

Prendere in considerazione i requisiti di scalabilità per i componenti della soluzione. Ad esempio, molte API all'interno di Foundry Tools supportano un numero massimo di richieste al secondo. Se si distribuisce una singola risorsa dello strumento Foundry da condividere tra i tenant, potrebbe essere necessario passare a più risorse man mano che aumenta il numero di tenant.

Architettura personalizzata di intelligenza artificiale e Machine Learning

Se la soluzione richiede modelli personalizzati o opera in un dominio non coperto da un servizio di Machine Learning gestito, è consigliabile creare un'architettura di Intelligenza artificiale e Machine Learning personalizzata. Machine Learning offre una suite di funzionalità per orchestrare il training e la distribuzione di modelli di machine learning:

  • Usare varie librerie di Machine Learning open source, tra cui PyTorch, TensorFlow, Scikit e Keras.

  • Monitorare continuamente le metriche delle prestazioni dei modelli.

  • Rilevare la deriva dei dati, ovvero quando i dati di input del modello cambiano nel tempo.

  • Attivare il riaddestramento per migliorare le prestazioni del modello.

  • Applicare la controllabilità e la governance durante il ciclo di vita dei modelli di Machine Learning. Usare il rilevamento e la derivazione predefiniti (ovvero il rilevamento dei dati e delle relazioni del modello) per tutti gli artefatti di Machine Learning.

Quando si opera in una soluzione multi-tenant, considera i requisiti di isolamento dei tenant durante le fasi di addestramento e inferenza. È inoltre necessario determinare il processo di addestramento e implementazione del modello. Il machine learning offre una pipeline per addestrare i modelli e distribuirli in un ambiente per l'inferenza. I modelli generano quindi stime o informazioni dettagliate in base ai nuovi dati. In un contesto multi-tenant valutare se i modelli devono essere distribuiti in risorse di calcolo condivise o ogni tenant deve avere risorse dedicate. Progettare le pipeline di distribuzione del modello in base al modello di isolamento e al processo di distribuzione del tenant.

Quando si usano modelli open source, potrebbe essere necessario ripetere il training di questi modelli usando l'apprendimento di trasferimento o l'ottimizzazione. Si consideri come gestire modelli diversi e dati di training per ogni tenant, insieme alle versioni di ogni modello.

Il diagramma seguente illustra un'architettura di esempio che usa Machine Learning. In alternativa, è possibile usare Fabric data science, che offre funzionalità come esperimenti, gestione dei modelli e distribuzione degli endpoint. L'esempio usa l'approccio di isolamento dei modelli specifici del tenant.

Diagram che mostra un'architettura che usa Machine Learning.

Soluzioni integrate di intelligenza artificiale e Machine Learning

Azure offre diverse potenti piattaforme di analisi che è possibile usare per vari scopi. Queste piattaforme includono Microsoft Fabric, Azure Databricks e Apache Spark.

Prendere in considerazione l'uso di queste piattaforme per intelligenza artificiale e Machine Learning quando è necessario ridimensionare le funzionalità per supportare un volume elevato di tenant e richiedere risorse di calcolo e orchestrazione su larga scala. È anche possibile prendere in considerazione l'uso di queste piattaforme quando è necessaria una soluzione di analisi generale per altre parti del sistema, ad esempio l'analisi dei dati e l'integrazione con la creazione di report tramite Power BI. È possibile distribuire una singola piattaforma che supporta tutte le esigenze di analisi e intelligenza artificiale e Machine Learning. Quando si implementano piattaforme dati in una soluzione multi-tenant, vedere Approcci architetturali per l'archiviazione e i dati nelle soluzioni multi-tenant.

Modello operativo di Machine Learning

Quando si adotta l'intelligenza artificiale e l'apprendimento automatico, incluse le procedure di intelligenza artificiale generative, è consigliabile migliorare e valutare continuamente le funzionalità dell'organizzazione per gestirle. L'introduzione di MLOps e GenAIOps offre un framework per espandere continuamente le funzionalità delle procedure di intelligenza artificiale e machine learning nell'organizzazione. Per altre informazioni, vedere Modello di maturità MLOps e modello di maturità GenAIOps.

Gli antipattern da evitare

  • Mancata valutazione dei requisiti di isolamento: Valuta attentamente come isolare i dati e i modelli dei tenant sia per l'addestramento sia per l'inferenza. L'impossibilità di isolare i dati e i modelli dei tenant potrebbe violare i requisiti legali o contrattuali. Potrebbe anche ridurre la precisione dei modelli se vengono addestrati usando i dati di più tenant e questi dati sono significativamente diversi.

  • Vicini rumorosi: Valutare se i processi di training o inferenza potrebbero riscontrare il problema del vicino rumoroso. Ad esempio, se si hanno diversi tenant di grandi dimensioni e un singolo tenant di piccole dimensioni, assicurarsi che l'addestramento del modello per i tenant di grandi dimensioni non consumi tutte le risorse di calcolo e non privi i tenant più piccoli delle risorse necessarie. Usare la governance e il monitoraggio delle risorse per ridurre il rischio che l'attività di altri tenant influisca sul carico di lavoro di calcolo di un tenant.

Contributori

Microsoft gestisce questo articolo. I collaboratori seguenti hanno scritto questo articolo.

Autore principale:

  • Kevin Ashley | Senior Customer Engineer, FastTrack per Azure

Altri collaboratori:

Per visualizzare i profili di LinkedIn non pubblici, accedere a LinkedIn.

Passo successivo