Azure OpenAI RAG: l’approccio enterprise alla generative AI

La Retrieval Augmented Generation è un framework che potenzia le capacità dei modelli linguistici di grandi dimensioni (LLM) integrando un sistema di recupero delle informazioni. Questo sistema recupera dati pertinenti da un corpus specificato per supportare le risposte generate dal modello, rendendole più accurate e contestualmente rilevanti. Il servizio Azure OpenAI consente agli sviluppatori di implementare la RAG sfruttando l'infrastruttura solida e le funzionalità di intelligenza artificiale offerte da Azure. In questo articolo, vedremo come la piattaforma cloud di Microsoft permette di implementare la RAG nelle soluzioni AI aziendali.

Cosa troverai in questo articolo

  • Azure OpenAI RAG: di cosa si tratta?
  • I benefici della Retrieval Augmented Generation
  • Azure OpenAI RAG: la soluzione per le AI aziendali
  • Azure OpenAI RAG: un caso di successo firmato Dev4Side
Azure OpenAI RAG: l’approccio enterprise alla generative AI

Azure OpenAI RAG: di cosa si tratta?

Man mano che ci addentriamo nel mondo dell’intelligenza artificiale generativa, ci troviamo all’avanguardia di una rivoluzione tecnologica.

Questi sistemi avanzati sono in grado di creare testi, immagini e persino codice, superando i confini di ciò che ritenevamo possibile nell’interazione tra uomo e macchina.

Dall’amplificazione dei processi creativi alla risoluzione di problemi complessi, l’AI generativa sta trasformando i settori industriali e aprendo nuove strade all’innovazione. Tuttavia, questa trasformazione non è esente da complicazioni, specialmente in ambito aziendale.

Che genere di complicazioni?

Per cominciare, i modelli generalisti sono addestrati su dati pubblici e non conoscono le policy, i processi o il linguaggio in uso nella propria azienda.

In più, ogni volta che un utente interno a un’organizzazione invia una richiesta a un tool esterno, rischia di condividere dati sensibili con un sistema che non offre grandi garanzie di privacy: un rischio che nessuno può permettersi.

Per non parlare poi del fatto che molti dei più grandi modelli attualmente sul mercato sono addestrati su set di dati statici che necessitano di essere costantemente riaddestrati attraverso operazioni di fine-tuning lunghe e frequenti.

Se non lo si fa, la pena è ottenere risposte obsolete dal proprio modello che possono finire per seminare confusione e disinformazione nell'ambiente di lavoro.

In buona sostanza, una bella dose di preoccupazioni.

Le cose, però, sono cambiate con la Retrieval Augmented Generation (o RAG) all’interno dei modelli AI.

La sua implementazione, in combinazione con gli ambienti di sviluppo forniti da Azure OpenAI, può seriamente fare la differenza per un business che vuole sfruttare gli ultimi ritrovati in campo AI per rafforzare e ottimizzare la propria infrastruttura digitale.

Lo vedremo meglio nelle prossime sezioni, ma prima un breve ripasso.

Schema di funzionamento di Azure OpenAI RAG

Che cos’è Azure OpenAI

Azure OpenAI è il risultato della combinazione tra l’infrastruttura della piattaforma di cloud computing di Microsoft e l’integrazione con i modelli di intelligenza artificiale avanzati sviluppati da OpenAI.

Una combo che permette alle organizzazioni di accedere e sfruttare capacità di AI all'avanguardia, come la comprensione del linguaggio naturale e la generazione automatica di contenuti all’interno degli ambienti cloud di Azure.

Il servizio fornisce agli utenti accesso a modelli di AI, tra cui il noto modello linguistico GPT-4 (Generative Pre-trained Transformer 4), e altre tecnologie di punta sviluppate da OpenAI.

Questi modelli sono capaci di comprendere e generare testo con un alto grado di sofisticazione, rendendo possibili cose come la creazione automatica di contenuti, lo sviluppo di app per l'assistenza clienti virtuale e la scrittura assistita di codice.

GPT-4, ad esempio, può generare risposte coerenti e pertinenti basate su input minimi, facilitando la creazione di chatbot avanzati, assistenti virtuali e strumenti per la generazione di testi, ma non solo. Il modello può infatti essere utilizzato per analizzare e sintetizzare grandi quantità di testo, supportando la ricerca e l'analisi dei dati in ogni tipologia di settore.

Azure OpenAI è progettato per essere accessibile sia ai professionisti esperti di AI che ai neofiti.

Le API fornite sono intuitive e facili da utilizzare, permettendo alle aziende di integrare rapidamente le funzionalità di intelligenza artificiale nelle loro applicazioni esistenti. Questo riduce (seppur non eliminando del tutto) la necessità di competenze tecniche avanzate e accelera il processo di sviluppo e implementazione delle soluzioni basate su AI.

La piattaforma offre un'ampia gamma di capacità, tra cui:

  • Elaborazione del linguaggio naturale: permette ai sistemi di comprendere e rispondere al linguaggio umano in modo naturale. Questo è particolarmente utile per creare chatbot avanzati, assistenti virtuali e sistemi di analisi del sentiment.
  • Generazione di testo: utilizzando modelli come GPT-4, Azure OpenAI può generare testo che sembra scritto da un essere umano, funzione utile, ad esempio, per la creazione di contenuti automatizzati e risposte email intelligenti.
  • Riconoscimento delle immagini (Computer Vision): i modelli di IA più avanzati consentono ai sistemi di interpretare e analizzare immagini e video per estrapolare dati di ogni genere. Questo è utile per applicazioni come il riconoscimento facciale, l'analisi delle immagini mediche, l’estrazione di testi scritti da documenti fotocopiati e la sorveglianza automatizzata.
  • Riconoscimento vocale (Speech Recognition): permette la trascrizione e l'analisi del linguaggio parlato, rendendo possibile la creazione di assistenti vocali e la trascrizione automatica di riunioni e appunti audio.
  • Integrazione con ecosistema Azure: scontato dirlo, ma le aziende possono combinare le capacità di Azure OpenAI con altri servizi offerti da Azure per creare soluzioni AI potenti e complete. Ad esempio, possono utilizzare Azure Machine Learning per addestrare modelli personalizzati, Azure Cognitive Services per aggiungere ulteriori capacità cognitive ed evolvere drasticamente le funzionalità di ricerca e Azure Data Lake per gestire e analizzare grandi quantità di dati.

Che cos’è la RAG

La Retrieval Augmented Generation è una tecnica che migliora l’accuratezza e l’affidabilità dei modelli di intelligenza artificiale generativa grazie a informazioni recuperate da fonti di dati specifiche e pertinenti. In altre parole, colma una lacuna nel funzionamento dei modelli linguistici di grandi dimensioni (LLM).

Alla base, gli LLM sono reti neurali, solitamente valutate in base al numero di parametri che contengono. I parametri di un LLM rappresentano essenzialmente i modelli generali con cui gli esseri umani usano le parole per formare frasi.

Questa comprensione profonda, a volte chiamata conoscenza parametrizzata, rende i LLM utili nel rispondere a richieste generiche. Tuttavia, non è sufficiente per chi ha bisogno di approfondimenti su informazioni molto specifiche.

Patrick Lewis, autore principale dell’articolo del 2020 che ha coniato il termine, e i suoi colleghi hanno sviluppato la Retrieval Augmented Generation per collegare i servizi di IA generativa a risorse esterne, in particolare quelle ricche di dettagli tecnici aggiornati.

La RAG fornisce ai modelli delle fonti che possono essere citate, come le note a piè di pagina in un articolo scientifico, in modo che gli utenti possano verificare qualsiasi affermazione. Questo contribuisce a costruire fiducia.

Inoltre, la tecnica può aiutare i modelli a chiarire eventuali ambiguità presenti nella richiesta dell’utente. Riduce anche la possibilità che il modello fornisca una risposta molto plausibile ma errata, un fenomeno noto come allucinazione.

Un altro grande vantaggio della RAG è la sua relativa semplicità.

In un blog, Lewis e tre coautori dell’articolo spiegano che i programmatori possono implementare il processo con appena cinque righe di codice. Questo rende il metodo più rapido ed economico rispetto al riaddestramento di un modello con nuovi dataset. E consente agli utenti di cambiare dinamicamente le fonti di riferimento.

Con la Retrieval Augmented Generation, gli utenti possono sostanzialmente dialogare con insiemi di dati, aprendo la strada a nuove esperienze. Ciò significa che le applicazioni della RAG potrebbero moltiplicarsi in base al numero di dataset disponibili.

Quasi qualsiasi azienda può trasformare i propri manuali tecnici o normativi, video o log in risorse chiamate basi di conoscenza, capaci di potenziare i LLM. Queste fonti abilitano scenari d’uso come l’assistenza clienti o sul campo, la formazione del personale e la produttività degli sviluppatori.

La migliore consulenza per soluzioni AI personalizzate

Sviluppiamo soluzioni basate sull'intelligenza artificiale, con un'attenzione particolare alle moderne tecnologie per la gestione delle informazioni. Lavoriamo su progetti che applicano RAG, Machine Learning ed elaborazione del linguaggio naturale per migliorare produttività, customer experience e analisi dei dati in qualunque settore.

I nostri servizi includono:

  • Progettazione e sviluppo di soluzioni AI personalizzate
  • Integrazione di sistemi di AI generativa e di recupero delle informazioni
  • Formazione e supporto, per garantire la corretta adozione dei nuovi sistemi

Affidati alla nostra esperienza per rendere più intelligente la tua azienda.

I benefici della Retrieval Augmented Generation

La RAG potrebbe rappresentare la chiave di volta nel futuro dell’intelligenza artificiale generativa applicata ad ambiti che vanno oltre lo spazio generalista e dare a questa tecnologia lo slancio necessario per diventare un caposaldo di ogni infrastruttura digitale aziendale, a ogni livello e in ogni settore.

In questa sezione, elencheremo i benefici principali che le funzionalità del framework RAG possono apportare alle nostre operazioni con l’AI.

1. Conoscenza sempre aggiornata

I modelli RAG si basano su basi di conoscenza esterne per recuperare informazioni rilevanti e aggiornate in tempo reale prima di generare le risposte. I modelli linguistici di grandi dimensioni (LLM) sono stati addestrati in un momento specifico e su un insieme di dati definito.

La RAG consente che le risposte siano fondate su dati attuali e aggiuntivi, anziché dipendere esclusivamente dal set di dati di addestramento del modello.

I sistemi basati su RAG sono particolarmente efficaci quando i dati richiesti sono in continuo cambiamento e aggiornamento. Integrando dati in tempo reale, i modelli RAG ampliano la portata di ciò che un’applicazione può realizzare, includendo ad esempio il supporto clienti in diretta, la pianificazione di viaggi o la gestione delle pratiche assicurative.

2. Rilevanza contestuale

La RAG eccelle nel fornire risposte ricche di contesto recuperando dati specificamente rilevanti per la richiesta dell’utente. Questo viene realizzato attraverso algoritmi di recupero sofisticati che identificano i documenti o frammenti di dati più pertinenti da un vasto e disparato insieme di informazioni.

Sfruttando le informazioni contestuali, RAG consente ai sistemi di intelligenza artificiale di generare risposte su misura per le esigenze e le preferenze specifiche degli utenti. Inoltre, RAG permette alle organizzazioni di mantenere la privacy dei dati, evitando di dover riaddestrare un modello di proprietà di terzi, lasciando i dati nel luogo in cui risiedono.

3. Riduzione delle allucinazioni

La RAG consente un flusso di informazioni controllato, regolando con precisione l’equilibrio tra i dati recuperati e i contenuti generati per mantenere la coerenza riducendo al minimo le falsificazioni.

Molte implementazioni RAG offrono un’attribuzione trasparente delle fonti, citando i riferimenti delle informazioni recuperate e aggiungendo un livello di responsabilità (elementi entrambi fondamentali per pratiche di IA etica).

Questa possibilità di audit non solo aumenta la fiducia degli utenti, ma si allinea anche ai requisiti normativi di molti settori, in cui responsabilità e tracciabilità sono essenziali. RAG, quindi, rafforza la fiducia e migliora in modo significativo l’accuratezza e l’affidabilità dei contenuti generati dall’intelligenza artificiale.

4. Costi ridotti

La RAG consente alle organizzazioni di utilizzare dati e basi di conoscenza esistenti senza dover effettuare un ampio riaddestramento dei modelli linguistici di grandi dimensioni (LLM). Questo viene realizzato integrando l’input al modello con dati recuperati rilevanti, anziché richiedere al modello di apprendere da zero.

Un approccio che riduce significativamente i costi associati allo sviluppo e alla manutenzione dei sistemi di intelligenza artificiale.

Le organizzazioni possono distribuire applicazioni abilitate a RAG in modo più rapido ed efficiente, poiché non è necessario investire ingenti risorse nel training di modelli di grandi dimensioni su dati proprietari.

5. Maggiore produttività degli utenti

La RAG contribuisce ad aumentare la produttività degli utenti consentendo loro di accedere rapidamente a dati precisi e contestualmente rilevanti, grazie a una combinazione efficace tra sistemi di recupero delle informazioni e intelligenza artificiale generativa.

Questo approccio integrato semplifica e velocizza il processo di raccolta e analisi dei dati, riducendo significativamente il tempo necessario per individuare le informazioni utili. Di conseguenza, i decisori possono concentrare la loro attenzione su insight concreti e strategici, migliorando la qualità e la tempestività delle decisioni.

Allo stesso tempo, i team di lavoro possono automatizzare compiti ripetitivi e dispendiosi in termini di tempo, liberando risorse da dedicare ad attività a maggior valore aggiunto.

Inoltre, questa maggiore efficienza non solo accelera i flussi operativi, ma favorisce anche una migliore collaborazione tra i diversi reparti, poiché le informazioni più aggiornate e pertinenti sono facilmente accessibili e condivisibili.

Azure OpenAI RAG: la soluzione per le AI aziendali

Quando si decide di implementare un sistema RAG in azienda, la piattaforma con cui costruirlo fa ovviamente la differenza e Azure OpenAI risulta essere una scelta di pregio per chiunque voglia lavorare alle proprie soluzioni AI sul cloud Microsoft, sia per le performance del modello linguistico integrato che per tutti i vantaggi offerti dall’ecosistema Azure.

Quali?

Ad esempio, uno dei limiti principali che ha da sempre influito sull’utilità in ambito aziendale dei modelli pubblici di AI generativa di cui parlavamo nell’introduzione è legato alla sicurezza dei dati. Ogni volta che un lavoratore fa uso di uno strumento come ChatGPT, rischia di condividere informazioni sensibili con un ambiente non controllato.

Azure OpenAI non pone questo problema, dato che le richieste degli utenti vengono elaborate direttamente nel cloud Microsoft del cliente, senza quindi uscire dal perimetro di sicurezza aziendale. Ciò comporta la massima protezione della privacy e la garanzia di conformità con le normative.

Ma la sicurezza non è la sola preoccupazione di un’azienda e probabilmente si desidera che la propria soluzione AI sia integrata con gli strumenti di lavoro che i dipendenti utilizzano quotidianamente.

Azure OpenAI consente proprio questo, dando modo di integrare la componente generativa di un sistema RAG con tutti gli strumenti Microsoft che popolano il digital workplace (come SharePoint, Teams, OneDrive e Microsoft Viva), oltre che con le applicazioni custom di un’azienda (siano esse web, desktop o mobile) per rispondere a qualunque esigenza, anche al di fuori dell’ecosistema di Microsoft 365.

E, ovviamente, la RAG con Azure OpenAI consente agli sviluppatori di usare modelli di chat di intelligenza artificiale supportati che possono fare riferimento a origini di informazioni specifiche per basare la risposta.

L'aggiunta di queste informazioni consente al modello di fare riferimento sia ai dati specifici forniti che alle relative conoscenze con training preliminare per fornire risposte più efficaci.

Funzionamento della Retrieval Augmented Generation con embeddings

Azure Open AI abilita la RAG connettendo i modelli con training preliminare alle proprie origini dati. L'applicazione del servizio sui dati sfrutta la capacità di ricerca di Azure AI Search di aggiungere i blocchi di dati pertinenti al prompt.

Dopo aver inserito i dati in un indice di ricerca di intelligenza artificiale, Azure OpenAI procede su di essi con i seguenti passaggi:

  1. Ricevere una richiesta dell'utente.
  2. Determinare il contenuto e la finalità rilevanti della richiesta.
  3. Eseguire una query sull'indice di ricerca con tale contenuto e finalità.
  4. Inserire il blocco dei risultati della ricerca nel prompt OpenAI di Azure, insieme al messaggio di sistema e alla richiesta dell'utente.
  5. Inviare l'intera richiesta ad Azure OpenAI.
  6. Restituisce la risposta e il riferimento ai dati (se presenti) all'utente.

L'aggiunta dei dati può essere eseguita tramite Azure AI Studio, nel playground chat o specificando l'origine dati in una chiamata API. L'origine dati aggiunta viene quindi usata per aumentare la richiesta inviata al modello.

Quando si configurano i dati in studio, è possibile scegliere di caricare i file di dati, usare i dati in un account di archiviazione BLOB o connettersi a un indice di Ricerca intelligenza artificiale esistente.

Se si caricano o si usano file già in un account di archiviazione, Azure OpenAI sui dati supporta .md, .txt, .html, .pdf e i file di Microsoft Word o PowerPoint. Se uno di questi file contiene grafica o immagini, la qualità della risposta dipende dalla qualità del testo che può essere estratto dal contenuto visivo.

Quando si caricano dati o ci si connette ai file in un account di archiviazione, è consigliabile usare Azure AI Studio per creare la risorsa di ricerca e l'indice.

L'aggiunta di dati, in questo modo, consente di eseguire la suddivisione in blocchi appropriata durante l'inserimento nell'indice, ottenendo risposte migliori. Se si usano moduli o file di testo di grandi dimensioni, è necessario usare lo script di preparazione dei dati disponibile per migliorare l'accuratezza del modello di intelligenza artificiale.

L'abilitazione della ricerca semantica per il servizio di ricerca di intelligenza artificiale può migliorare il risultato della ricerca nell'indice dei dati e probabilmente si riceveranno risposte e citazioni di qualità superiore.

Tuttavia, l'abilitazione della ricerca semantica può aumentare il costo del servizio di ricerca.

È anche possibile usare la procedura guidata nella risorsa Ricerca intelligenza artificiale per vettorizzare i dati in modo appropriato. Notare che si usa la procedura guidata in AI Studio per creare e connettere l'origine dati, sarà necessario creare un hub e un progetto.

Azure OpenAI RAG: un caso di successo firmato Dev4Side

Considerando la combinazione di modelli AI più efficienti e ambienti di sviluppo targati Microsoft, potevano i nostri esperti esimersi dallo sperimentare con nuove soluzioni per risolvere i problemi dei clienti e aiutarli ad affrontare le sfide digitali che l’AI ha portato con sé?

Ovviamente no.

Dopo aver osservato le difficoltà dei nostri clienti nell’utilizzo dell’AI generativa, abbiamo pensato a una soluzione alternativa facendo uso proprio della tecnologia RAG.

Gli utenti aziendali hanno bisogno di risposte che siano pertinenti alla propria realtà, basate sui documenti interni e verificabili senza compromettere la sicurezza dei dati condivisi e abbiamo subito compreso come l’anello mancante tra la Gen AI e queste esigenze fosse proprio un sistema RAG.

Nonostante la complessità legata alla gestione di dati aziendali sensibili e all'integrazione di un sistema AI in ambienti strutturati come Microsoft 365, siamo riusciti a realizzare un’architettura RAG che facilita il recupero delle informazioni nel digital workplace utilizzando l’ambiente di Azure OpenAI in combinazione con altri servizi di Azure per ampliarne le capacità e ottenere il massimo del risultato.

Dopo il rilascio dei primi progetti, abbiamo monitorato insieme ai clienti l’impatto di questa nuova tecnologia sul loro digital workplace e i risultati sono stati estremamente positivi.

Per approfondire, ecco il progetto completo.

FAQ su Azure OpenAI e la tecnologia RAG

Che cos’è Azure OpenAI RAG?

Azure OpenAI RAG è una soluzione che integra la tecnica di Retrieval Augmented Generation all'interno dell'ecosistema cloud di Microsoft. Si tratta di un approccio che unisce le capacità generative dei modelli linguistici avanzati, come GPT-4, con un sistema di recupero delle informazioni, permettendo di ottenere risposte più accurate, aggiornate e aderenti al contesto aziendale.

In cosa consiste il framework RAG?

Il framework RAG migliora le risposte dei modelli linguistici aggiungendo informazioni recuperate da fonti esterne, come documenti interni o database aziendali. In questo modo, le risposte non si basano esclusivamente su ciò che è stato appreso durante l'addestramento, ma si arricchiscono di contenuti attuali e specifici, mantenendo alta la pertinenza e riducendo il rischio di errori.

Quali sono i vantaggi di usare Azure per implementare la RAG?

Azure fornisce un ambiente sicuro, scalabile e pienamente integrabile con strumenti aziendali come SharePoint, Teams e OneDrive. La RAG implementata tramite Azure OpenAI consente di mantenere i dati all’interno del perimetro aziendale, garantendo il rispetto delle normative sulla privacy e una perfetta continuità con le soluzioni digitali esistenti.

In cosa Azure OpenAI è diverso rispetto a usare ChatGPT pubblico?

La principale differenza risiede nella sicurezza. Quando si utilizza ChatGPT pubblico, i dati passano in ambienti esterni non controllati. Con Azure OpenAI, invece, le richieste vengono gestite direttamente nel cloud Microsoft del cliente, il che significa che le informazioni sensibili non lasciano mai l'infrastruttura aziendale, assicurando un maggiore controllo e conformità.

Perché la RAG è utile per le aziende?

La RAG permette alle aziende di ottenere risposte basate su fonti affidabili e aggiornate, mantenendo il controllo sui dati utilizzati dal modello. Questo approccio riduce gli errori, migliora la qualità delle risposte, accelera l’accesso alle informazioni e ottimizza l’utilizzo delle risorse digitali già disponibili in azienda, senza dover procedere al riaddestramento completo dei modelli.

Come funziona tecnicamente la RAG su Azure?

Il sistema riceve una richiesta, identifica la finalità e i contenuti rilevanti, interroga un indice di ricerca per recuperare i dati più pertinenti, inserisce questi dati nel prompt assieme al messaggio dell’utente e invia tutto al modello per generare la risposta. Questo processo è gestibile tramite Azure AI Studio o API e può essere alimentato da file di testo, documenti Office, PDF o contenuti già presenti su archiviazione BLOB o indici Azure AI Search.

Che tipo di dati si possono usare con RAG su Azure?

Azure OpenAI supporta file in formato .txt, .md, .html, .pdf, Word e PowerPoint. I file possono essere caricati manualmente, recuperati da un archivio BLOB o da un indice di ricerca esistente. La qualità delle risposte dipende dalla chiarezza e dalla struttura testuale dei contenuti caricati, soprattutto quando si tratta di documenti contenenti grafica o immagini.

È necessario riaddestrare GPT-4 per usare la RAG?

No, non è necessario. La forza della RAG sta proprio nella possibilità di fornire al modello informazioni aggiornate senza dover modificare o riaddestrare l’intero LLM. Questo riduce i costi, semplifica l’adozione e consente una maggiore flessibilità nell’aggiornamento delle fonti informative.

Qual è un esempio concreto di uso di Azure OpenAI RAG?

Dev4Side ha implementato una soluzione RAG che consente agli utenti aziendali di interrogare le proprie basi documentali in modo sicuro e preciso. L’obiettivo era superare i limiti delle AI generaliste, offrendo risposte basate sui contenuti interni, senza sacrificare la protezione dei dati. Il progetto ha portato a una gestione più efficiente delle informazioni e a un miglioramento concreto dell’esperienza d’uso nel digital workplace. Maggiori dettagli qui.

Entra in contatto con il team

Modern Apps

Il team Modern Apps risponde con prontezza alle necessità IT in cui lo sviluppo software rappresenta la componente principale, includendo soluzioni che integrano l’intelligenza artificiale. Le figure tecniche hanno una formazione mirata alla realizzazione di progetti software su stack tecnologici Microsoft e possiedono competenze nella gestione di progetti agili o di lunga durata.