GenAIOps per professionisti mlops
Questo articolo fornisce indicazioni ai team del carico di lavoro che dispongono di investimenti di machine learning (MLOps) esistenti e vogliono estendere tali investimenti per includere l'intelligenza artificiale generativa nel proprio carico di lavoro. Per rendere operativo un carico di lavoro di intelligenza artificiale generativa, è necessario estendere gli investimenti MLOps con GenAIOps (talvolta noto come LLMOps). Questo articolo illustra i modelli tecnici comuni sia al machine learning tradizionale che ai carichi di lavoro generativi di intelligenza artificiale e a modelli specifici per l'intelligenza artificiale generativa. L'articolo consente di comprendere dove è possibile applicare investimenti esistenti nell'operazionalizzazione e dove è necessario estendere tali investimenti.
Modelli tecnici generativi di intelligenza artificiale
I carichi di lavoro generativi per intelligenza artificiale differiscono dai carichi di lavoro di Machine Learning tradizionali in diversi modi:
Concentrarsi sui modelli generativi. I carichi di lavoro di Machine Learning tradizionali si concentrano sul training di nuovi modelli sottoposti a training per eseguire attività specifiche. I carichi di lavoro dell'intelligenza artificiale generativa utilizzano modelli generativi in grado di affrontare una gamma più ampia di casi d'uso e in alcuni casi sono multimodali.
Concentrarsi sull'estensione dei modelli. L'asset chiave in Machine Learning tradizionale è il modello distribuito. L'accesso al modello viene fornito al codice client in uno o più carichi di lavoro, ma i carichi di lavoro non fanno parte del processo MLOps. Con le soluzioni di intelligenza artificiale generativa, un aspetto chiave della soluzione è il prompt fornito al modello generativo. Il prompt deve essere composto e può contenere dati da uno o più archivi dati. Il sistema che orchestra la logica, chiama i vari back-end, genera il prompt e le chiamate al modello generativo fanno parte del sistema di intelligenza artificiale generativo che è necessario gestire con GenAIOps.
Anche se alcune soluzioni di intelligenza artificiale generative usano procedure tradizionali di Machine Learning come il training dei modelli e l'ottimizzazione, introducono tutti nuovi modelli da standardizzare. Questa sezione offre una panoramica delle tre ampie categorie di modelli tecnici per le soluzioni di intelligenza artificiale generative:
- Pre-training e messa a punto
- Progettazione prompt
- Generazione aumentata da recupero (RAG)
Addestramento e messa a punto dei modelli linguistici
Attualmente, molte soluzioni di intelligenza artificiale generative usano modelli di linguaggio di base esistenti che non richiedono l'ottimizzazione prima dell'uso. Tuttavia, alcuni casi d'uso possono trarre vantaggio dall'ottimizzazione di un modello di base o dal training di un nuovo modello di intelligenza artificiale generativa, ad esempio un piccolo modello linguistico (SLM).
Il training di un nuovo modello di base SLM e l'ottimizzazione di un modello di base generativo sono logicamente gli stessi processi del training dei modelli di Machine Learning tradizionali. Questi processi devono usare gli investimenti MLOps esistenti.
Progettazione prompt
L'ingegneria dei prompt include tutti i processi coinvolti nella produzione di un prompt inviato come input a un modello generativo. In genere è presente un agente di orchestrazione che controlla un flusso di lavoro che genera la richiesta. L'orchestratore può accedere a numerosi archivi di dati per raccogliere informazioni, come i dati di base, e applicare la logica necessaria per generare il prompt più efficace. L'agente di orchestrazione viene quindi distribuito come endpoint API a cui si accede dal codice client in un'applicazione intelligente.
Il diagramma seguente illustra un'architettura per la progettazione dei prompt.
Questa categoria di modelli tecnici può risolvere molti casi d'uso, tra cui:
- Classificazione.
- Traduzione.
- Riepilogo.
- Generazione aumentata del recupero, illustrata nella sezione successiva.
Generazione ottimizzata per il recupero
La generazione di recupero aumentata (RAG) è uno schema architettonico che utilizza l'ingegneria dei prompt per incorporare dati specifici del dominio come dati di supporto per un modello linguistico. Il training del modello linguistico viene eseguito in base a un set specifico di dati. Il carico di lavoro potrebbe richiedere un ragionamento sui dati specifici dell'azienda, dei clienti o del dominio. Nelle soluzioni RAG vengono eseguite query sui dati e i risultati vengono forniti al modello linguistico come parte della richiesta, in genere tramite un livello di orchestrazione.
Un'implementazione rag comune consiste nell'suddividere i documenti in blocchi e archiviarli in un archivio vettoriale insieme ai metadati. Gli archivi vettoriali, ad esempio Ricerca di intelligenza artificiale di Azure, consentono di eseguire ricerche di somiglianza testuale e vettoriale per restituire risultati contestualmente pertinenti. Le soluzioni RAG possono anche usare altri archivi dati per restituire dati di base.
Il diagramma seguente illustra un'architettura RAG:
Estensione di MLOps per modelli tecnici di intelligenza artificiale generativi
In questa sezione vengono descritti gli aspetti chiave seguenti delle fasi del ciclo interno ed esterno per i modelli tecnici generativi di intelligenza artificiale e consente di comprendere dove è possibile applicare gli investimenti MLOps esistenti e dove è necessario estenderli:
Anello interno
Anello esterno
- Distribuzione
- inferenza e monitoraggio
- Ciclo di feedback
DataOps
Sia MLOps che GenAIOps applicano i concetti fondamentali di DataOps per creare flussi di lavoro estendibili e riproducibili che assicurano che i dati vengano puliti, trasformati e formattati correttamente per la sperimentazione e la valutazione. La riproducibilità del flusso di lavoro e il controllo delle versioni dei dati sono funzionalità importanti di DataOps per tutti i modelli tecnici. Le origini, i tipi e la finalità dei dati dipendono dal modello.
Training e ottimizzazione
Questo modello tecnico dovrebbe sfruttare appieno gli investimenti di DataOps esistenti effettuati nell'ambito dell'implementazione di MLOps. La riproducibilità e il controllo delle versioni dei dati consentono di sperimentare dati di progettazione delle funzionalità diversi, confrontare le prestazioni dei diversi modelli e riprodurre i risultati.
Progettazione di prompt e RAG
Lo scopo dei dati nelle soluzioni RAG è fornire dati di base presentati al modello linguistico come parte di una richiesta. Le soluzioni RAG spesso richiedono l'elaborazione di documenti di grandi dimensioni in una raccolta di blocchi di dimensioni corrette, semanticamente rilevanti e persistenza di tali blocchi in un archivio vettoriale. Per ulteriori informazioni, vedere Progettazione e sviluppo di una soluzione RAG. Riproducibilità e controllo delle versioni dei dati per le soluzioni RAG consente di sperimentare diverse strategie di suddivisione in blocchi e incorporamento, confrontare le prestazioni e eseguire il rollback alle versioni precedenti.
Le pipeline di dati per la suddivisione in blocchi dei documenti non fanno parte di DataOps nelle operazioni MLOps tradizionali, quindi è necessario estendere l'architettura e le operazioni. Le pipeline di dati possono leggere i dati da origini diverse che includono dati strutturati e non strutturati. Possono anche scrivere i dati trasformati in destinazioni diverse. È necessario estendere l'architettura per includere gli archivi dati usati per i dati di base. Gli archivi dati comuni per questi modelli sono archivi vettoriali come Ricerca di intelligenza artificiale.
Come per l'addestramento e la messa a punto, è possibile utilizzare le pipeline di Azure Machine Learning o altri strumenti di elaborazione dei dati per orchestrare le fasi del partizionamento. È possibile sfruttare i flussi di richiesta nelle pipeline di Azure Machine Learning per elaborare e arricchire i dati in modo coerente e riproducibile. È inoltre necessario estendere le operazioni per mantenere l'aggiornamento e la validità degli indici di ricerca negli archivi dati.
Sperimentazione
La sperimentazione, una parte del ciclo interno, è il processo iterativo di creazione, valutaree perfezionare la soluzione. Le sezioni seguenti illustrano la sperimentazione per i modelli tecnici di intelligenza artificiale generativi comuni.
Training e ottimizzazione
Quando si ottimizza un modello linguistico esistente o si esegue il training di un modello linguistico di piccole dimensioni, è possibile sfruttare gli investimenti MLOps correnti. Ad esempio, le pipeline di Azure Machine Learning forniscono un toolkit per condurre esperimenti in modo efficiente ed efficace. Queste pipeline consentono di gestire l'intero processo di ottimizzazione, dalla pre-elaborazione dei dati al training e alla valutazione del modello.
Progettazione di prompt e RAG
La sperimentazione con il prompt engineering e i carichi di lavoro RAG richiede di estendere i tuoi investimenti MLOps. Per questi modelli tecnici, il carico di lavoro non termina con il modello. Il carico di lavoro richiede un agente di orchestrazione, che è un sistema in grado di eseguire la logica, chiamare gli archivi dati per informazioni necessarie, ad esempio i dati di base, generare richieste, chiamare modelli linguistici e altro ancora. Anche gli archivi dati e gli indici negli archivi fanno parte del carico di lavoro. È necessario estendere le operazioni per gestire questi aspetti del carico di lavoro.
È possibile sperimentare su più dimensioni per l'ingegneria dei prompt, tra cui istruzioni diverse, personaggi, esempi, vincoli e tecniche avanzate come il concatenamento di prompt. Quando si sperimentare soluzioni RAG, è possibile sperimentare con aree aggiuntive:
- Strategia di suddivisione in blocchi
- Cosa e come arricchire i frammenti
- Il tuo modello di incorporamento
- Configurazione dell'indice di ricerca
- Operazioni da eseguire (vettore, full-text, ibrido e così via)
Come descritto in DataOps, la riproducibilità e il controllo delle versioni dei dati sono fondamentali per la sperimentazione. Un framework di sperimentazione valido consente di archiviare gli input, ad esempio le modifiche agli iperparametri o le richieste, insieme agli output da usare quando si valutare l'esperimento.
Come nell'ambiente MLOps esistente, è possibile sfruttare i framework come le pipeline di Azure Machine Learning. Le pipeline di Azure Machine Learning includono funzionalità che supportano l'indicizzazione tramite l'integrazione con archivi vettoriali come Ricerca di intelligenza artificiale. L'ambiente GenAIOps può sfruttare queste funzionalità della pipeline e combinarle con le funzionalità del flusso di prompt che gestiscono l'ingegneria dei prompt e la logica di pre-elaborazione personalizzata.
Sperimentazione a valutazione
La valutazione è fondamentale nel processo di sperimentazione iterativa di creazione, valutazione e affinamento della soluzione. La valutazione delle tue modifiche fornisce il feedback necessario per apportare miglioramenti o verificare che l'iterazione corrente soddisfi i tuoi requisiti. Le sezioni seguenti illustrano la valutazione nella fase di sperimentazione per i modelli tecnici di intelligenza artificiale generativi comuni.
Training e ottimizzazione
Per la valutazione dei modelli di intelligenza artificiale ottimizzati o addestrati, è consigliabile sfruttare gli investimenti MLOps esistenti. Ad esempio, se si usano pipeline di Azure Machine Learning per orchestrare il training del modello di Machine Learning, è possibile usare le stesse funzionalità di valutazione per ottimizzare i modelli linguistici di base o eseguire il training di nuovi modelli linguistici di piccole dimensioni. Queste funzionalità includono il componente Evaluate Model, che calcola le metriche di valutazione standard del settore per tipi di modello specifici e confronta i risultati tra i modelli.
Progettazione di prompt e RAG
È necessario estendere gli investimenti MLOps esistenti per valutare le soluzioni di intelligenza artificiale generative. È possibile usare strumenti come prompt flow, che fornisce un framework per la valutazione. Il flusso di richiesta consente ai team di definire la logica di valutazione personalizzata specificando criteri e metriche per valutare le prestazioni di varie varianti richieste di varianti e modelli di linguaggio di grandi dimensioni. Questo approccio strutturato consente di confrontare diverse configurazioni affiancate, ad esempio iperparametri o varianti architetturali, per identificare la configurazione ottimale per attività specifiche.
I lavori nel flusso prompt acquisiscono automaticamente i dati di input e output durante il processo di sperimentazione per creare una documentazione dettagliata della prova. È possibile ottenere informazioni dettagliate e identificare configurazioni promettenti che possono informare le iterazioni future analizzando questi dati. È possibile accelerare lo sviluppo delle soluzioni di intelligenza artificiale generative usando flussi di richiesta per condurre esperimenti efficienti e sistematici.
Il processo di sperimentazione è lo stesso indipendentemente dal caso d'uso per la soluzione di intelligenza artificiale generativa. Questi casi d'uso includono classificazione, riepilogo, traduzione e persino RAG. La differenza importante è la metrica usata per valutare i diversi casi d'uso. Di seguito sono riportate alcune metriche, in base al caso d'uso, da considerare.
- Traduzione: BLEU
- Riassunto: ROUGE. BLEU, BERTScore, METEOR
- Classificazione: precisione, richiamo, accuratezza, entropia incrociata
- RAG: Groundedness, Relevancy
Nota
Per altre informazioni sulla valutazione dei modelli linguistici e delle soluzioni RAG, vedere la valutazione end-to-end LLM .
In generale, le soluzioni di intelligenza artificiale generativa estendono le responsabilità del team di Machine Learning dall'addestramento dei modelli all'ingegneria dei prompt e alla gestione dei dati di riferimento. Poiché l'ingegneria del prompt e la sperimentazione e valutazione RAG non richiedono necessariamente data scientist, potresti essere tentato di usare altri ruoli, come ingegneri software e ingegneri dei dati, per eseguire queste funzioni. Si verificheranno problemi se si omettono i data scientist dal processo di sperimentazione con le soluzioni di progettazione di prompt e RAG. Altri ruoli non sono comunemente formati sulla valutazione scientifica dei risultati, come lo sono molti data scientist. Leggere la serie di articoli in sette parti Progettazione e sviluppo di una soluzione RAG per comprendere la complessità della progettazione di soluzioni di intelligenza artificiale generative.
L'investimento in soluzioni di intelligenza artificiale generative consente di eliminare alcune pressioni dalle risorse di data science. Il ruolo dei software engineer si espande in queste soluzioni. Ad esempio, gli ingegneri del software sono risorse preziose per gestire la responsabilità dell'orchestrazione nelle soluzioni di intelligenza artificiale generativa e sono abili nella configurazione delle metriche di valutazione in strumenti come Prompt Flow. È importante che i data scientist esaminino questo lavoro. Hanno la formazione e l'esperienza per comprendere come valutare correttamente gli esperimenti.
Distribuzione
Alcune soluzioni di intelligenza artificiale generative comportano la distribuzione di modelli con training personalizzato o l'ottimizzazione dei modelli esistenti, ma altri no. Per le soluzioni di intelligenza artificiale generative, è necessario includere le attività aggiuntive di distribuzione degli agenti di orchestrazione e degli archivi dati. Le sezioni seguenti illustrano l'implementazione per i comuni modelli tecnici di intelligenza artificiale generativa.
Training e ottimizzazione
È consigliabile usare gli investimenti MLOps esistenti, con alcune possibili modifiche, per distribuire modelli di intelligenza artificiale generativi e ottimizzare i modelli di base. Ad esempio, per ottimizzare un modello linguistico di grandi dimensioni in Azure OpenAI, è necessario assicurarsi che i set di dati di training e convalida siano in formato JSONL ed è necessario caricare i dati tramite un'API REST. È anche necessario creare un processo di ottimizzazione. Per distribuire un modello linguistico di piccole dimensioni già addestrato, è possibile ottimizzare gli investimenti MLOps esistenti.
Progettazione di prompt e RAG
Per RAG e la progettazione dei prompt, esistono ulteriori problemi, tra cui la logica di orchestrazione, le modifiche all'archivio dati come indici e schemi e le modifiche alla logica della pipeline di dati. La logica di orchestrazione viene in genere incapsulata in framework come Prompt Flow, Semantic Kernel o LangChain. È possibile distribuire l'agente di orchestrazione in diverse risorse di calcolo, incluse le risorse in cui è possibile distribuire modelli personalizzati. Consultare l'architettura di chat end-to-end di Azure OpenAI per esempi di distribuzione del flusso di richieste agli endpoint online gestiti da Azure Machine Learning o ad Azure App Service. Per distribuire nel servizio app, l'architettura della chat di Azure OpenAI impacchetta il flusso e le relative dipendenze in un container, una pratica che aumenta la portabilità e la coerenza in ambienti diversi.
Le distribuzioni di modifiche alle risorse del database, ad esempio le modifiche ai modelli di dati o agli indici, sono nuove attività che devono essere gestite in GenAIOps. Una pratica comune quando si usano modelli linguistici di grandi dimensioni consiste nell'usare un gateway davanti all'LLM.
Molte architetture di intelligenza artificiale generativa che utilizzano modelli di linguaggio ospitati dalla piattaforma, come quelli forniti da Azure OpenAI, includono un gateway come Azure API Management. I casi d'uso del gateway includono il bilanciamento del carico, l'autenticazione e il monitoraggio. Il gateway può svolgere un ruolo nella distribuzione di modelli appena sottoposti a training o ottimizzati, consentendo di implementare progressivamente nuovi modelli. L'uso di un gateway, insieme al controllo delle versioni del modello, consente di ridurre al minimo i rischi quando si distribuiscono le modifiche e di eseguire il rollback alle versioni precedenti in caso di problemi.
Le distribuzioni di elementi specifici per l'intelligenza artificiale generativa, ad esempio l'agente di orchestrazione, devono seguire le procedure operative appropriate, ad esempio:
- Test rigorosi, inclusi i test unitari.
- Test di integrazione.
- Test A/B.
- Test end-to-end.
- Strategie di implementazione, ad esempio distribuzioni canary o blu/verde.
Poiché le responsabilità di distribuzione per le applicazioni di intelligenza artificiale generativa si estendono oltre la distribuzione del modello, potrebbero essere necessari ruoli di lavoro aggiuntivi per gestire la distribuzione e il monitoraggio di elementi come l'interfaccia utente, l'orchestratore e gli archivi dati. Questi ruoli sono spesso allineati ai set di competenze del tecnico DevOps.
Inferenza e monitoraggio
L'inferenza è il processo di passaggio dell'input a un modello sottoposto a training e distribuito, che genera quindi una risposta. È consigliabile monitorare le soluzioni tradizionali di Machine Learning e di intelligenza artificiale generative da tre prospettive: monitoraggio operativo, apprendimento dalla produzione e gestione delle risorse.
Monitoraggio operativo
Il monitoraggio operativo è il processo di osservazione delle operazioni in corso del sistema, incluse le operazioni sui dati (DataOps) e il training del modello. Questo tipo di monitoraggio cerca deviazioni, inclusi errori, modifiche alle percentuali di errore e modifiche ai tempi di elaborazione.
Per l'addestramento del modello e la messa a punto, si osservano in genere le operazioni sui dati per l'elaborazione dei dati delle caratteristiche, l'addestramento del modello e la messa a punto. Il monitoraggio di questi processi a ciclo interno dovrebbe sfruttare i vantaggi degli investimenti di MLOps e DataOps esistenti.
Per l'ingegneria delle richieste nelle soluzioni di intelligenza artificiale generative, si hanno problemi di monitoraggio aggiuntivi. È necessario monitorare le pipeline di dati che elaborano i dati di base o altri dati usati per generare richieste. Questa elaborazione può includere operazioni dell'archivio dati come la compilazione o la ricompilazione di indici.
Apprendimento dalla produzione
Un aspetto critico per il monitoraggio durante la fase di inferenza è l'apprendimento dalla produzione. Il monitoraggio per i modelli di Machine Learning tradizionali tiene traccia delle metriche, ad esempio accuratezza, precisione e richiamo. Un obiettivo chiave è evitare la deriva della stima. Le soluzioni che usano modelli generativi per fare previsioni, ad esempio usando un modello GPT per la classificazione, dovrebbero sfruttare i tuoi investimenti esistenti nel monitoraggio MLOps.
Le soluzioni che usano modelli generativi per ragionare sui dati di base usano metriche come fondamento, completezza, utilizzo e pertinenza. L'obiettivo è garantire che il modello risponda completamente alla query e basi la risposta sul relativo contesto. In questo caso, è necessario provare a evitare problemi come la deriva dei dati. Si vuole assicurarsi che i dati di base e il prompt che si fornisce al modello siano massimamente rilevanti per la query dell'utente.
Soluzioni che usano modelli generativi per attività non predittive, come le soluzioni RAG, spesso traggono vantaggio dal feedback umano degli utenti finali per valutare i sentimenti di utilità. Le interfacce utente possono acquisire feedback come pollice in su o in giù, ed è possibile usare questi dati per valutare periodicamente le risposte.
Un modello comune per le soluzioni di intelligenza artificiale generative consiste nel distribuire un gateway davanti ai modelli generativi. Uno dei casi d'uso per il gateway consiste nel monitorare i modelli di base. È possibile usare il gateway per registrare richieste di input e output.
Un'altra area chiave da monitorare per le soluzioni generative è la sicurezza dei contenuti. L'obiettivo è moderare le risposte e rilevare contenuti dannosi o indesiderati. Azure AI Content Safety Studio è un esempio di strumento che è possibile usare per moderare il contenuto.
Gestione delle risorse
Le soluzioni generative che usano modelli esposti come servizio, ad esempio Azure OpenAI, presentano problemi di gestione delle risorse diversi rispetto ai modelli distribuiti manualmente. Per i modelli esposti come servizio, non ci si deve preoccupare dell'infrastruttura. Invece, sei interessato alla capacità, alla quota e alla limitazione del tuo servizio. Azure OpenAI usa dei token per la fatturazione, la regolazione e i limiti. È consigliabile monitorare l'utilizzo delle quote per la gestione dei costi e l'efficienza delle prestazioni. Azure OpenAI consente di registrare l'utilizzo dei token.
Strumenti
Molti professionisti di MLOps si sono standardizzati su un set di strumenti per organizzare varie attività come l'automazione, il monitoraggio, la distribuzione, la sperimentazione e così via, per semplificare i problemi comuni e i dettagli di implementazione di tali processi. Una piattaforma unificata comune è MLflow. Prima di cercare nuovi strumenti per supportare i modelli GenAIOps, è necessario esaminare gli strumenti MLOps esistenti per valutarne il supporto per l'intelligenza artificiale generativa. MLflow, ad esempio, supporta un'ampia gamma di funzionalità per i modelli linguistici.
Modelli di maturità MLOps e GenAIOps
Potresti aver usato il modello di maturità MLOps per valutare la maturità delle tue attuali operazioni e dell'ambiente di apprendimento automatico. Man mano che si estendono gli investimenti MLOps per carichi di lavoro generativi di intelligenza artificiale, è necessario usare il modello di maturità GenAIOps per valutare tali operazioni. Si potrebbe essere tentati di combinare i due modelli di maturità, ma è consigliabile misurare ognuno in modo indipendente. MLOps e GenAIOps si evolveranno indipendentemente l'uno dall'altro. Ad esempio, potrebbe trovarsi al livello quattro nel modello di maturità MLOps, ma al livello 1 per l'intelligenza artificiale generativa.
Riepilogo
Quando si inizia ad estendere gli investimenti MLOps per includere l'IA generativa, è importante comprendere che non è necessario ricominciare da capo. È possibile usare gli investimenti MLOps esistenti per alcuni dei modelli tecnici generativi di intelligenza artificiale. L'ottimizzazione dei modelli generativi è un ottimo esempio. Ci sono aree di soluzioni di intelligenza artificiale generativa, come il prompt engineering e RAG, che sono processi nuovi, quindi è necessario ampliare gli investimenti operativi esistenti e acquisire competenze.
Collaboratori
Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.
- Luiz Braz | Specialista Tecnico Senior
- Marco Aurelio Cardoso | Senior Software Engineer
- Paulo Lacerda | Architetto delle Soluzioni Cloud
- Ritesh Modi | Ingegnere Software Principale
Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.