Un leadspace ricolorato che utilizza come base il leadspace Watson for Customer Care.
Informazioni generali

I Large Language Model (LLM) sono spesso incredibilmente informati su un'ampia gamma di argomenti, ma si limitano solo ai dati su cui sono stati formati. Ciò significa che i clienti che desiderano utilizzare gli LLM con informazioni aziendali private o proprietarie non possono utilizzare gli LLM come strumenti "pronti all'uso" per rispondere a domande, generare corrispondenza o simili.

La retrieval-augmented generation (RAG) è un modello architettonico che consente ai foundation model di produrre output corretti per argomenti specializzati o proprietari che non facevano parte dei dati di addestramento dei modelli. Aumentando le domande e i prompt degli utenti con dati pertinenti recuperati da fonti di dati esterne, RAG fornisce al modello fatti e dettagli "nuovi" (per il modello) su cui basare la sua risposta.

 

 

Architettura concettuale

L'architettura concettuale di una soluzione RAG che mostra i componenti principali e il flusso di interazioni tra di essi per rispondere alla query di un utente.
L'architettura concettuale di una soluzione RAG che mostra i componenti principali e il flusso di interazioni tra di essi per rispondere alla query di un utente.

Il pattern RAG, mostrato nel diagramma seguente, è composto da due parti: incorporamento dei dati durante la fase di compilazione e richiesta all'utente (o restituzione dei risultati) durante il tempo di esecuzione.

  1. Un ingegnere AI prepara i dati del cliente (ad esempio, manuali delle procedure, documentazione del prodotto, ticket dell'help desk, ecc.) durante la pre-elaborazione dei dati. I dati del cliente vengono trasformati e/o arricchiti per renderli adatti all'ampliamento del modello. Le trasformazioni possono includere semplici conversioni di formato, come la conversione di documenti PDF in testo, o trasformazioni più complesse come la traduzione di strutture di tabelle complesse in istruzioni di tipo if-then. L'arricchimento può includere l'espansione di abbreviazioni comuni, l'aggiunta di metadati come le informazioni sulla valuta, e altre aggiunte per migliorare la pertinenza dei risultati di ricerca.

     

  2. Un modello di incorporamento viene utilizzato per convertire i dati di origine in una serie di vettori che rappresentano le parole nei dati del client. Gli incorporamenti facilitano l'apprendimento automatico su input di grandi dimensioni come vettori sparsi che rappresentano parole. Gli incorporamenti sono memorizzati come passaggi (chiamati chunk) di dati del client, si pensi a sottosezioni o paragrafi, per facilitare la ricerca delle informazioni.

     

  3. Gli incorporamenti generati vengono memorizzati in un database vettoriale. Nell'architettura RAG può essere utilizzata qualsiasi fonte di dati che supporti le query "fuzzy" che restituiscono risultati in base alla probabile pertinenza, ad esempio watsonx Discovery, ma l'implementazione più comune utilizza un database vettoriale come Milvus, FAISS o Chroma.

    Il sistema è ora pronto per essere usato degli utenti finali.
     

  4. Gli utenti finali interagiscono con un'applicazione abilitata GenAI e inseriscono una query.

     

  5. L'applicazione GenAI riceve la query ed esegue una ricerca nel database vettoriale per ottenere il maggior numero (lo chiamiamo top K) di informazioni che corrispondono maggiormente alla query dell'utente. Per esempio, se la domanda dell'utente è "Qual è il limite di prelievo giornaliero sul conto MaxSavers", la ricerca può restituire passaggi come "Il conto MaxSavers è...", "I limiti di prelievo giornalieri sono...", e "... limiti dell'account... ".

     

  6. I passaggi principali, insieme a un prompt reso accurato per l'applicazione specifica, vengono inviati all'LLM.

     

  7. L'LLM restituisce una risposta simile a quella umana, basata sulla domanda dell'utente, sul prompt e sulle informazioni del contesto, che viene presentata all'utente finale.

Architettura del prodotto IBM
Un'illustrazione di come IBM watsonx Discovery, IBM watsonx Assistant e la versione SaaS di watsonx.ai realizzano l'architettura della soluzione RAG.
Un'illustrazione di come IBM watsonx Discovery, IBM watsonx Assistant e la versione SaaS di watsonx.ai realizzano l'architettura della soluzione RAG.

La mappatura del portafoglio di prodotti watsonx al modello RAG è illustrata nel diagramma sopra. 

watsonx Discovery implementa le funzioni di pre-elaborazione, generazione di incorporamenti, storage e recupero della pertinenza dei modelli. Per alcuni tipi di soluzioni, watsonx Discovery può essere utilizzato anche come applicazione di AI generativa front-end per gli utenti. Watsonx Discovery non offre solo la semplice sostituzione di un database vettoriale, ma anche arricchimenti NLP pronti all'uso, come l'estrazione di entità, l'analisi del sentiment, l'emotion analysis, l'estrazione di parole chiave, la classificazione delle categorie, il tagging dei concetti e altro ancora.

Per le soluzioni di chat, watsonx Assistant fornisce l'interfaccia utente e anche funzionalità di conversazione, come ricordare l'argomento delle domande precedenti. Per esempio, se un utente chiede "Mi parli del Toast-o-matic" e poi "Quanto costa?" watsonx Assistant sa che la domanda nell'ultima query si riferisce al tostapane della prima query.

Infine, watsonx.ai offre una selezione di modelli linguistici di grandi dimensioni tra cui i clienti possono scegliere in un ambiente di cloud hosting. Con watsonx.ai, i clienti possono addestrare, convalidare, adattare e distribuire AI generativa, foundation model e funzionalità di machine learning con facilità e creare applicazioni AI in una frazione del tempo e con una frazione dei dati.

Implementazioni on-premise/private

Alcuni clienti non hanno watsonx.ai disponibile nella loro area locale o potrebbero avere problemi di sicurezza o requisiti normativi che impediscono loro di utilizzarela soluzione SaaS di watsonx.ai. Per questi clienti, offriamo watsonx.ai come set di servizi containerizzati che possono essere implementati su Red Hat Openshift in esecuzione nei data center dei clienti o all'interno di un cloud privato all'interno dell'infrastruttura di un fornitore di cloud service.

Un'illustrazione di come IBM watsonx Discovery, IBM watsonx Assistant e watsonx.ai possono essere implementati on-premise per realizzare l'architettura della soluzione RAG.
Un'illustrazione di come IBM watsonx Discovery, IBM watsonx Assistant e watsonx.ai possono essere implementati on-premise per realizzare l'architettura della soluzione RAG.
Supporto multilingue

La maggior parte degli LLM sono addestrati su un testo dominante in lingua inglese che contiene una piccola percentuale di testo in altre lingue, spesso dell'Europa occidentale. Per le applicazioni che richiedono supporto multilingue o localizzato, è possibile implementare una fase di traduzione prima e dopo le query per tradurre gli input nella lingua di base dei documenti pre-elaborati, ad esempio l'inglese, e tradurre gli output del modello nella lingua di destinazione, ad esempio lo spagnolo. Questo approccio è illustrato nel diagramma seguente.

Una panoramica dell'architettura della soluzione RAG che illustra le interazioni e i flussi dei componenti per consentire il supporto di più lingue.
Una panoramica dell'architettura della soluzione RAG che illustra le interazioni e i flussi dei componenti per consentire il supporto di più lingue.

Questo approccio modifica il modello RAG di base come segue (mettendo da parte le fasi di generazione dell'incorporamento):

  1. Un utente immette una query in una lingua diversa da quella dominante della documentazione pre-elaborata. Ad esempio, una query in spagnolo e una base di documentazione dominante in inglese.

  2. L'applicazione di AI generativa invita un modello linguistico di grandi dimensioni a tradurre la query dell'utente nella lingua della documentazione di base. Nel nostro esempio, dallo spagnolo all'inglese.

  3. La query tradotta viene utilizzata per recuperare i passaggi top-K di informazioni più pertinenti alla query dell'utente.

  4. La query tradotta e il contesto recuperato vengono inviati all'LLM per generare una risposta.

  5. L'applicazione di AI generativa utilizza nuovamente un modello linguistico di grandi dimensioni per tradurre la risposta generata nella lingua di destinazione dell'utente. Nel nostro esempio, dall'inglese allo spagnolo.

  6. La risposta, tradotta in spagnolo, viene presentata all'utente finale.

L'esperienza suggerisce che utilizzando questo approccio è possibile ottenere una precisione dell'80% o superiore, a seconda del contesto e del tipo di query inviate, nei risultati in un linguaggio non di base. Si prevede che i modelli multilingue emergenti, addestrati su percentuali maggiori di lingue diverse, raggiungano un'accuratezza ancora maggiore.

Casi d’uso

RAG è una soluzione candidata per qualsiasi scenario aziendale in cui è presente un ampio corpus di documentazione e business rules che un utente deve consultare per fornire risposte autorevoli. Rappresenta anche una soluzione efficace per arricchire i chatbot basati su LLM con conoscenze proprietarie o specifiche del dominio e prevenire le allucinazioni.

I possibili usi includono:

  • Sottoscrizione di assicurazioni e liquidazione dei sinistri. Il RAG ha numerose potenziali applicazioni nel settore assicurativo. Gli assicuratori e i broker devono avere una conoscenza approfondita di migliaia di pagine di documentazione che riguardano i termini e le condizioni di centinaia di prodotti assicurativi. Allo stesso modo, ai giudici dei sinistri potrebbe essere richiesto di avere una conoscenza approfondita della stessa documentazione, nonché dei contratti con eccezioni e condizioni aggiuntive specifiche per i singoli clienti. Il modello di architettura RAG può fungere da "struttura portante" architettonica di soluzioni volte ad assistere assicuratori, broker e periti nell'interrogazione della documentazione di prodotti e contratti per rispondere meglio alle richieste dei clienti e migliorare la produttività dei processi.

  • Supporto per gli agenti del call center. Gli agenti dei call center devono avere una conoscenza approfondita di potenzialmente centinaia di prodotti e servizi, nonché dei problemi più comuni relativi ai prodotti e alla loro risoluzione. Il modello RAG è una solida base di architettura su cui creare soluzioni per aiutare gli agenti a trovare rapidamente le risposte alle richieste dei clienti.

  • Chatbot per il servizio clienti. RAG è un potente strumento per la creazione di chatbot che rispondano alle domande dei clienti. La combinazione delle competenze linguistiche naturali dei Large Language Models e le risposte specifiche aziendali di RAG possono offrire un'esperienza cliente conversazionale convincente. Si noti che RAG da solo fornisce solo funzionalità di domande e risposte: non ha la capacità di "effettuare transazioni", cioè di interagire con i sistemi aziendali per estrarre informazioni o aggiornare i record. Per rilevare le intenzioni dell'utente e interagire con i sistemi aziendali è necessario aggiungere componenti aggiuntivi.

  • Supporto / helpdesk. Come gli agenti dei call center, il personale di operazioni e supporto IT deve avere una conoscenza approfondita della configurazione di distribuzioni di sistemi complessi insieme, oltre a dover conoscere i problemi comuni e già trattati e la loro risoluzione. Il modello RAG è una solida base architettonica su cui creare soluzioni per aiutare il personale di supporto a trovare rapidamente risposte pertinenti ai problemi segnalati e ai problemi osservati.

     

    Decisioni e considerazioni sull'architettura

I fattori che influiscono sulla scelta del modello che funzionerà bene per il tuo progetto sono molti.

La licenza del modello può limitare il modo in cui questo può essere utilizzato. Ad esempio, la licenza di un modello può impedirne l'utilizzo all'interno di un'applicazione commerciale.

Il set di dati utilizzato per l'addestramento del modello ha un impatto diretto sul funzionamento del modello per un'applicazione specifica e influisce in modo significativo sul rischio che il modello generi risposte prive di senso, offensive o semplicemente indesiderate. Allo stesso modo, i modelli addestrati su dati protetti da copyright o privati possono esporre gli utenti a problemi legali. IBM offre la completa trasparenza dei dati di addestramento e tiene indenne da ogni controversia derivante dai suoi modelli.

Le dimensioni del modello, il numero di parametri con cui viene addestrato e le dimensioni della sua finestra di contesto (ossia, la lunghezza di un passaggio di testo che il modello può accettare) influiscono sulle prestazioni del modello, sui requisiti delle risorse e sulla velocità effettiva. Sebbene sia forte la tentazione di seguire la filosofia del "più grande è, meglio è" e scegliere un modello da 20 miliardi di parametri, i requisiti delle risorse e il miglioramento (se presente) dell'accuratezza potrebbero non giustificarlo. Studi recenti hanno dimostrato che i modelli più piccoli possono superare significativamente le prestazioni di quelli più grandi in alcune soluzioni.

Qualsiasi messa a punto applicata a un modello può influire sulla sua idoneità per un'attività. Ad esempio, IBM offre due versioni del modello Granite: una ottimizzata per applicazioni di chat generiche e un'altra ottimizzata per seguire le istruzioni.

Altre considerazioni nella scelta di un modello includono:

  • Selezione dei parametri del modello, ad esempio la temperatura del modello, per bilanciare la creazione di risposte testuali e fattuali simili a quelle umane. Impostando la temperatura del modello su un valore alto si genereranno risposte coerenti ma potenzialmente poco interessanti o eccessivamente concise, mentre impostando la temperatura su un valore basso si introdurrà una maggiore varietà nelle risposte ma si aggiungerà imprevedibilità nella lunghezza e nel contenuto della risposta.

  • Selezione e implementazione di guardrail dei modelli per proteggersi da risultati inefficaci o offensivi.

La scelta del modello dipende dall'applicazione, dal tipo di dati e dai requisiti di supporto linguistico. Potrebbe essere necessario estendere i modelli di incorporamento per codificare e ricercare con precisione termini o acronimi specifici del settore o del cliente.

I database vettoriali sono solo un'opzione per l'implementazione dell'incorporamento dei dati. Watson Discovery fornisce strumenti e funzionalità aggiuntivi che possono migliorare la performance e l'accuratezza di una soluzione RAG; e alcuni database "tradizionali" forniscono storage e ricerca vettoriale e/o ricerca per similarità che supporteranno una soluzione RAG.

Ci sono anche numerose opzioni per i database vettoriali. I semplici database in memoria incorporati direttamente nelle applicazioni GenAI offrono eccellenti prestazioni in fase di esecuzione, ma potrebbero non essere ben scalabili su set di dati di grandi dimensioni e introdurre sfide operative significative per mantenersi aggiornati o per scalare fino a configurazioni multi-server. Altri database che utilizzano un'architettura server centrale sono più facili da utilizzare e scalare, ma potrebbero non soddisfare le esigenze di prestazioni della soluzione specifica.

Sono disponibili diversi metodi per integrare il modello di recupero e generazione. Recuperare i passaggi top-K e utilizzarli per aumentare la query dell'utente è semplice e conveniente, ma può mancare delle sfumature necessarie per rispondere a domande complesse. Anche una semplice ricerca per parola chiave può dare risultati soddisfacenti.

Soluzioni più complesse possono utilizzare un LLM per generare più query dalla query originale dell'utente e utilizzarle per recuperare un insieme più ampio di passaggi. È possibile aggiungere una logica aggiuntiva per ordinare ulteriormente e selezionare i passaggi recuperati con la massima pertinenza.

Pre-elaborare i dati prima di inserirli nel sistema RAG è un passaggio importante per garantire che i dati di input siano in un formato adatto al modello. I metodi più semplici comportano la suddivisione dei dati di input in frammenti di dimensioni fisse con sovrapposizioni, ad esempio gli ultimi 10 caratteri di un frammento sono gli stessi dei primi 10 caratteri del frammento successivo, ma in questo modo si possono perdere delle sfumature nei dati di input.

Una pre-elaborazione più avanzata potrebbe manipolare il testo di input per rimuovere le desinenze comuni; ad esempio, in inglese, stopper, stopping e stopped diventano tutte stop e vengono rimosse parole "stop" non informative come the, as, is e simili, oltre ad altre tecniche. Questo può migliorare notevolmente la pertinenza delle informazioni recuperate, tuttavia aggiunge complessità sia alla fase di incorporamento dei dati che a quella di prompting degli utenti.

Tecniche ancora più avanzate possono operare su frasi complete per mantenere il più possibile il significato del testo.

Valutare le prestazioni di un sistema RAG può essere impegnativo a causa della natura complessa dell'attività. Le metriche di valutazione più comuni includono perplessità, fluidità, pertinenza e coerenza, oltre alle metriche BLU e ROUGE. È importante scegliere metriche in linea con gli obiettivi specifici dell'attività e i risultati desiderati.

Il modello RAG richiede testo normale e la scelta dei metodi di conversione ha un grande impatto sulla qualità dei dati. Ad esempio, durante la conversione di file PDF, il modo in cui vengono gestiti tabelle, immagini e altri elementi di metadati.

La generazione di una risposta umana da un LLM richiede notevoli risorse informatiche e spesso può richiedere diversi secondi in base alle dimensioni del modello, alla complessità della query dell'utente e alla quantità di informazioni aumentate trasmesse al modello. Le soluzioni che devono servire grandi gruppi di utenti o richiedono tempi di risposta rapidi potrebbero dover implementare un meccanismo per memorizzare nella cache le risposte del modello alle query che si presentano di frequente.

L'inserimento, nei prompt LLM, di informazioni proprietarie, potenziali informazioni di identificazione personale e informazioni potenzialmente riservate è fondamentale e necessario per il modello RAG. Le organizzazioni che utilizzano piattaforme di modelli in hosting devono essere consapevoli delle policy dei provider, come le regole di conservazione e utilizzo dei dati prompt (ad es. il provider acquisisce i dati prompt e li utilizza per riaddestrare il modello?), i controlli per evitare che i dati prompt siano divulgati ad altri utenti, ecc. e bilanciarli con le proprie policy e i propri controlli di sicurezza delle informazioni.

Sebbene la trasmissione di alcune informazioni proprietarie sia inevitabile, le organizzazioni possono limitarne l'esposizione includendo solo riferimenti a documenti o URL alle informazioni più sensibili nei dati trattati. Ad esempio, anziché incorporare una tabella di sconti sui prezzi nei dati RAG, includere nel contenuto solo una descrizione della tabella e un riferimento o un link a un documento interno o a un sito web.

La semplice sicurezza a livello di trasporto (TLS) nelle comunicazioni tra zone può essere sufficiente per soddisfare i requisiti di sicurezza dei dati, ma gli architetti potrebbero dover considerare la possibilità di fornire una protezione aggiuntiva aggiungendo componenti per crittografare e decrittografare i prompt e le risposte prima di trasferirli oltre il limite della zona.

Il tipo di connessione tra le zone di implementazione ha un impatto su diversi requisiti non funzionali. L'utilizzo di una connessione VPN (Virtual Private Network) sull'Internet pubblico è un'opzione a basso costo, ma potrebbe non risolvere completamente i problemi di sicurezza e potrebbe non essere in grado di soddisfare i requisiti a livello di tempo di risposta o velocità effettiva della soluzione. Una connessione di rete privata all'ambiente di hosting del modello ha un costo molto più elevato, ma offre una sicurezza notevolmente migliore e consente agli architetti di controllare la latenza e la larghezza di banda della rete.

Prossimi passi

Contatta i nostri esperti per implementare un modello di distribuzione hybrid cloud.

Approfondisci Hybrid Cloud Architecture Center Strumenti e modelli per diagrammi IBM Well-Architected Framework
Collaboratori

David MasseyManav GuptaMihai Criveti, Chris Kirby, Pete Nuwayser

Ultimo aggiornamento: 28 novembre 2023