Retrieval-Augmented Generation, con Azure OpenAI

Per RAG aziendale, si intende l’adozione di un’architettura che combina modelli linguistici di grandi dimensioni con sistemi di recupero dati, per fornire risposte precise e basate sulla knowledge base interna. Questa tecnologia supera i limiti degli LLM tradizionali (come ChatGPT), che operano su conoscenze generiche e non controllate per fornire risposte spesso non pertinenti con le richieste dei lavoratori. Osservando le difficoltà dei nostri clienti nell’utilizzo dell’AI generativa, abbiamo pensato a una soluzione alternativa facendo uso proprio della tecnologia RAG. Ecco com’è andata.

Retrieval-Augmented Generation, con Azure OpenAI

Il problema dei clienti: ottenere risposte pertinenti dai comuni strumenti di AI generativa

L'intelligenza artificiale generativa sta gradualmente entrando nella nostra quotidianità, cambiando il modo in cui cerchiamo informazioni o creiamo contenuti. Basta pensare alla recente introduzione delle AI Overviews nelle ricerche di Google per capire, anche solo in parte, la portata di questo cambiamento.

Ma quando si entra nell’ambito aziendale, le cose non sono così semplici.

Le aziende che provano a integrare strumenti basati sull’AI generativa, come ChatGPT, nei loro processi interni, finiscono per scontrarsi con una serie di importanti limitazioni.

In primo luogo, manca un contesto preciso.

Prendendo sempre l’esempio di ChatGPT, questi modelli generalisti sono addestrati su dati pubblici e non conoscono le policy, i processi o il linguaggio in uso nella propria azienda.

Di conseguenza, le risposte, per quanto ben formulate, non possono abbracciare il reale contesto delle richieste e risultano così poco pertinenti. Si parla bene, ma si dice poco.

In secondo luogo, bisogna considerare la sicurezza delle informazioni.

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. E per ogni azienda, questo è un rischio che non ci si può permettere.

Inoltre, questi strumenti hanno una conoscenza statica. Ciò significa che non si aggiornano automaticamente per stare al passo con i cambiamenti interni a un’azienda: se cambia una procedura o se viene pubblicata una nuova policy, l’AI non lo può sapere. Quindi, continua a dare risposte basate su informazioni obsolete.

Se è corretto dire che l’intelligenza artificiale sta già dando buoni risultati in termini di produttività, è anche vero che c’è ampio margine di miglioramento.

Senza un legame con i dati aziendali, senza sicurezza, senza fonti verificabili e senza un aggiornamento continuo, il rischio è che le persone vedano l’AI come uno strumento affascinante, certamente, ma inutile.

Il risultato? Le aziende potrebbero compiere grandi sforzi per adottare questa nuova tecnologia, per poi vedere il proprio investimento andare in fumo. Per questo motivo, è necessario ricorrere a soluzioni alternative.

Ed è proprio qui che entra in gioco la tecnologia RAG.

La nostra soluzione: un sistema RAG per il digital workplace

Quando usiamo strumenti come ChatGPT, otteniamo risposte che si basano sulla vasta conoscenza generale con cui il modello è stato addestrato.

Tuttavia, in azienda questo non basta: gli utenti hanno bisogno di risposte che siano pertinenti alla propria realtà, basate sui documenti interni e verificabili senza compromettere la sicurezza dei dati condivisi.

L’anello mancante tra questa esigenza e le funzionalità dell’AI generativa è un sistema RAG.

RAG sta per “Retrieval-Augmented Generation” e rappresenta di fatto un’evoluzione dell’intelligenza artificiale conversazionale introdotta con ChatGPT. In particolare, questa tecnologia affianca ai grandi modelli linguistici un motore di ricerca intelligente, in grado di recuperare in tempo reale le informazioni più rilevanti dalla knowledge base aziendale.

Quando un utente pone una domanda, il sistema non si affida soltanto alla memoria del modello, ma cerca attivamente nei documenti aziendali la risposta più adatta.

Il meccanismo alla base è semplice.

Tutti i documenti vengono suddivisi in parti più piccole, ad esempio paragrafi o sezioni. Ognuna di queste parti viene trasformata in un vettore numerico che ne rappresenta il contenuto semantico e viene archiviata in un sistema di ricerca specializzato.

Le domande degli utenti vengono convertite anch’esse in un vettore, per poi essere confrontate con l’indice e abbinate alle sezioni più pertinenti. Il modello generativo riceve così questi contenuti come contesto e genera una risposta con i dati aziendali più rilevanti.

In questo modo, un sistema RAG unisce la naturalezza delle risposte in stile ChatGPT con la precisione e l’affidabilità delle fonti aziendali. Ad esempio, anziché rispondere in maniera vaga alla domanda “Come funziona il lavoro da remoto nella nostra azienda?”, un assistente virtuale basato sulla tecnologia RAG va a cercare la sezione esatta delle policy interne in cui si parla di lavoro da remoto e la usa per costruire la sua risposta.

Ma c’è di più: il RAG può essere configurato per operare su modelli AI multiparadigma.

Sebbene il retrieval e la generazione siano tipicamente orientati al testo, i modelli multimodali permettono di estendere queste funzionalità anche ad altri tipi di contenuto, come immagini, video o audio.

Ciò consente all’intelligenza artificiale di portare su uno stesso piano semantico le informazioni che provengono da fonti e formati differenti, permettendo una comprensione unificata e un ragionamento trasversale indipendentemente dall’origine dei dati.

Arriviamo così al cuore di questo progetto, ovvero l’impegno del nostro team nel rendere questa tecnologia ancora più intelligente.

Se la versione standard del RAG consente già ai modelli linguistici di generare risposte basandosi su fonti dati specifiche, il nostro obiettivo è stato quello di renderla modulare e facilmente riutilizzabile.

Ma scendiamo nel dettaglio.

Il primo grande miglioramento ha riguardato l’esperienza d’uso.

Abbiamo reso il sistema capace di sostenere conversazioni contestuali, mantenendo memoria delle interazioni precedenti. Questo significa che l’utente ha ora la possibilità di porre una serie di domande collegate tra loro e ricevere risposte coerenti, senza dover ripetere ogni volta le stesse informazioni.

Ci siamo poi focalizzati sull’architettura.

Abbiamo integrato nel nostro progetto il Kernel Memory, una libreria open source supportata da Microsoft che permette di gestire la memoria della conversazione, i dati di contesto e gli oggetti semantici da richiamare. Per essere chiari, grazie a questa componente, il sistema diventa più scalabile e adattabile a specifici casi d’uso.

Infine, abbiamo pensato alle implementazioni future della nostra soluzione.

Non ci siamo limitati a creare un sistema funzionante, ma abbiamo costruito un template capace di accelerare lo sviluppo di soluzioni RAG personalizzate.

Si tratta di un approccio che ci permette di realizzare nuovi progetti RAG, su misura, sfruttando una struttura già collaudata.

Di conseguenza, vengono abbattuti tempi e costi di implementazione per i nostri clienti.

Perché costruire un’architettura RAG con Azure OpenAI?

Quando si decide di implementare un sistema RAG in azienda, la piattaforma con cui costruirlo fa ovviamente la differenza.

Nel nostro caso, la scelta è ricaduta su Azure OpenAI sia per le performance del modello linguistico integrato che per tutti i vantaggi offerti dall’ecosistema Azure.

Come dicevamo, uno dei limiti principali che influisce sull’utilità in ambito aziendale dei modelli pubblici di AI generativa è 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 non si tratta solo di sicurezza.

Azure OpenAI ci consente 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.

A complemento di Azure OpenAI, la nostra soluzione si avvale poi di altri servizi Azure per ampliare le proprie capacità. Tra questi, sottolineiamo:

  • Azure AI Search, per supportare la fase di retrieval delle informazioni;
  • Azure Blob Storage, per l’archiviazione dei dati;
  • Azure Functions, per l’orchestrazione dei diversi flussi logici.

Tutto resta così in un ecosistema coerente e facilmente gestibile dal reparto IT interno.

Immagine

Altro vantaggio è la modularità.

Abbiamo scelto Azure anche perché ci permette di sviluppare un’architettura scalabile, che può crescere insieme alle esigenze di ciascun cliente. La nostra soluzione può essere inizialmente adottata da un singolo team, all’interno di un progetto pilota, per poi essere estesa all’intera organizzazione con un effort limitato.

A livello tecnico, il controllo sui modelli è totale.

Possiamo decidere quale versione usare, come aggiornare i modelli, quali dati rendere disponibili per la generazione dei contenuti e quali rendere inaccessibili. Inoltre, possiamo definire filtri sul linguaggio, come la rilevazione di parole offensive (bad words detection) o la moderazione automatica.

Per finire, è possibile raccogliere dati sull’utilizzo del tool per generare metriche utili a comprendere come viene impiegato e capire così come migliorarne il funzionamento.

Questi sono i vantaggi che ci hanno spinto a scegliere Azure per i nostri progetti RAG. E, soprattutto, questi sono i vantaggi che stanno facendo la differenza per i nostri clienti.

I risultati ottenuti

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.

Uno dei principali casi d’uso riguarda la consultazione di linee guida e protocolli aziendali, soprattutto in contesti altamente regolamentati come il settore sanitario, dove le risposte devono essere precise, contestualizzate e spesso articolate in più passaggi.

Tra le sfide superate con successo durante questo progetto, vale la pena menzionare:

  • la strutturazione e l’indicizzazione di knowledge base aziendali composte da documentazione eterogenea;
  • l’adozione e l’estensione della Kernel Memory per supportare la conversazione multi-turno e il mantenimento del contesto;
  • la standardizzazione del processo di creazione dei nostri progetti RAG, per facilitarne il riutilizzo in ambienti aziendali differenti.

Dopo il rilascio dei primi progetti, abbiamo monitorato insieme ai clienti l’impatto di questa nuova tecnologia sul loro digital workplace. L’obiettivo era capire se gli utenti riuscissero a ottenere risposte davvero utili, e i risultati parlano da soli.

  • L’infrastruttura RAG ha consentito la generazione di risposte contestualizzate, riducendo le richieste agli helpdesk interni già dai primi mesi.
  • Diverse knowledge base aziendali sono state integrate e rese interrogabili via chat, garantendo un'esperienza utente fluida e tempi di risposta rapidi.
  • Il template progettato dal nostro team è stato già adottato in nuovi progetti, confermandone la solidità e la capacità di adattarsi a contesti sempre diversi.

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.