Intelligenza artificiale
Una panoramica approfondita sulla Generazione aumentata da recupero in LLM

Immagina di essere un analista e di avere accesso a un modello di linguaggio grande. Sei entusiasta delle prospettive che questo offre al tuo flusso di lavoro. Ma poi chiedi informazioni sugli ultimi prezzi delle azioni o sul tasso di inflazione attuale, e ti risponde con:
“Mi dispiace, ma non posso fornire dati in tempo reale o successivi alla data di fine formazione. I miei dati di formazione si fermavano solo a gennaio 2022.”
I modelli di linguaggio grande, nonostante la loro potenza linguistica, mancano della capacità di comprendere il “ora“. E in un mondo in rapida evoluzione, “ora” è tutto.
La ricerca ha dimostrato che i modelli di linguaggio grandi pre-addestrati (LLM) sono anche repository di conoscenza fattuale.
Sono stati addestrati su così tanti dati che hanno assorbito molti fatti e cifre. Quando vengono ottimizzati, possono ottenere risultati notevoli in una varietà di attività di NLP.
Ma ecco il problema: la loro capacità di accedere e manipolare questa conoscenza immagazzinata non è sempre perfetta. Soprattutto quando il compito in questione è intensivo in termini di conoscenza, questi modelli possono essere superati da architetture più specializzate. È come avere una biblioteca con tutti i libri del mondo, ma senza un catalogo per trovare ciò di cui hai bisogno.
OpenAI’s ChatGPT ottiene un aggiornamento di navigazione
Il recente annuncio di OpenAI sulle capacità di navigazione di ChatGPT rappresenta un significativo passo avanti nella direzione della Generazione aumentata da recupero (RAG). Con ChatGPT ora in grado di cercare informazioni attuali e autorevoli su Internet, riflette l’approccio RAG di recupero dinamico di dati da fonti esterne per fornire risposte arricchite.
https://twitter.com/OpenAI/status/1707077710047216095
Attualmente disponibile per gli utenti Plus ed Enterprise, OpenAI prevede di estendere questa funzionalità a tutti gli utenti presto. Gli utenti possono attivarla selezionando ‘Naviga con Bing’ sotto l’opzione GPT-4.
L’ingegneria dei prompt è efficace ma insufficiente
I prompt servono da porta d’ingresso alla conoscenza dei modelli di linguaggio grande. Guidano il modello, fornendo una direzione per la risposta. Tuttavia, creare un prompt efficace non è la soluzione completa per ottenere ciò che si desidera da un modello di linguaggio grande. Comunque, esaminiamo alcune buone pratiche da considerare quando si scrive un prompt:
- Chiarezza: Un prompt ben definito elimina l’ambiguità. Deve essere diretto, assicurandosi che il modello comprenda l’intento dell’utente. Questa chiarezza si traduce spesso in risposte più coerenti e pertinenti.
- Contesto: Soprattutto per input estensivi, la posizione dell’istruzione può influenzare l’output. Ad esempio, spostare l’istruzione alla fine di un lungo prompt può spesso produrre risultati migliori.
- Precisione nell’istruzione: La forza della domanda, spesso espressa attraverso la struttura “chi, cosa, dove, quando, perché, come”, può guidare il modello verso una risposta più focalizzata. Inoltre, specificare il formato di output desiderato o la dimensione può ulteriormente raffinare l’output del modello.
- Gestione dell’incertezza: È essenziale guidare il modello su come rispondere quando è incerto. Ad esempio, istruire il modello a rispondere con “Non lo so” quando è incerto può prevenire la generazione di risposte inaccurate o “allucinate“.
- Pensiero passo dopo passo: Per istruzioni complesse, guidare il modello a pensare sistematicamente o a suddividere il compito in sottocompiti può portare a output più completi e precisi.
In relazione all’importanza dei prompt nel guidare ChatGPT, un articolo completo può essere trovato in un articolo su Unite.ai.
Sfide nei modelli di Intelligenza Artificiale generativa
L’ingegneria dei prompt coinvolge l’ottimizzazione delle direttive date al modello per migliorarne le prestazioni. È un modo molto efficace per aumentare la precisione delle applicazioni di Intelligenza Artificiale generativa, richiedendo solo piccole modifiche al codice. Sebbene l’ingegneria dei prompt possa migliorare notevolmente gli output, è cruciale comprendere le limitazioni intrinseche dei modelli di linguaggio grande (LLM). Due sfide principali sono le “allucinazioni” e i “tagli di conoscenza“.
- Allucinazioni: Ciò si riferisce a casi in cui il modello restituisce con fiducia una risposta errata o inventata. Anche se i modelli LLM avanzati hanno meccanismi incorporati per riconoscere e evitare tali output.
- Tagli di conoscenza: Ogni modello LLM ha una data di fine formazione, dopo la quale non è a conoscenza di eventi o sviluppi. Questa limitazione significa che la conoscenza del modello è congelata al momento della sua ultima data di formazione. Ad esempio, un modello addestrato fino al 2022 non conosce gli eventi del 2023.
La generazione aumentata da recupero (RAG) offre una soluzione a queste sfide. Consente ai modelli di accedere a informazioni esterne, mitigando i problemi di allucinazioni fornendo l’accesso a dati proprietari o specifici di un dominio. Per i tagli di conoscenza, RAG può accedere a informazioni aggiornate al di là della data di formazione del modello, assicurando che l’output sia aggiornato.
Consente inoltre al modello LLM di recuperare dati da varie fonti esterne in tempo reale. Ciò potrebbe essere banche di conoscenza, database o anche la vasta estensione di Internet.
Introduzione alla Generazione aumentata da recupero
La generazione aumentata da recupero (RAG) è un framework, piuttosto che una tecnologia specifica, che consente ai modelli di linguaggio grande di attingere a dati sui quali non sono stati addestrati. Ci sono molti modi per implementare RAG, e la scelta migliore dipende dal compito specifico e dalla natura dei dati.
Il framework RAG opera in modo strutturato:
Input del prompt
Il processo inizia con l’input dell’utente o con un prompt. Ciò potrebbe essere una domanda o un’affermazione che cerca informazioni specifiche.
Recupero da fonti esterne
Invece di generare direttamente una risposta in base alla sua formazione, il modello, con l’aiuto di un componente di recupero, cerca attraverso fonti di dati esterne. Queste fonti possono variare da banche di conoscenza, database e archivi di documenti a dati accessibili su Internet.
Comprensione del recupero
Nella sua essenza, il recupero specchia un’operazione di ricerca. È questione di estrarre le informazioni più pertinenti in risposta all’input dell’utente. Questo processo può essere suddiviso in due fasi:
- Indicizzazione: Arguably, la parte più impegnativa dell’intero viaggio RAG è l’indicizzazione della propria banca di conoscenza. Il processo di indicizzazione può essere ampiamente diviso in due fasi: Caricamento e Suddivisione. In strumenti come LangChain, questi processi sono denominati “caricamenti” e “suddivisori“. I caricamenti recuperano il contenuto da varie fonti, siano esse pagine web o PDF. Una volta recuperato, i suddivisori suddividono poi questo contenuto in porzioni di dimensioni ottimali, ottimizzandole per l’inserimento e la ricerca.
- Interrogazione: Questo è l’atto di estrarre i frammenti di conoscenza più rilevanti in base a un termine di ricerca.
Mentre ci sono molti modi per affrontare il recupero, dalla semplice corrispondenza di testo all’uso di motori di ricerca come Google, i sistemi RAG moderni si basano sulla ricerca semantica. Al cuore della ricerca semantica si trova il concetto di inserimenti.
Gli inserimenti sono centrali per come i modelli di linguaggio grande (LLM) comprendono il linguaggio. Quando gli esseri umani cercano di articolare come derivano il significato dalle parole, la spiegazione spesso torna all’intendimento intrinseco. Profondamente all’interno delle nostre strutture cognitive, riconosciamo che “bambino” e “ragazzo” sono sinonimi, o che “rosso” e “verde” denotano entrambi i colori.
Aumento del prompt
Le informazioni recuperate vengono quindi combinate con il prompt originale, creando un prompt aumentato o esteso. Questo prompt aumentato fornisce al modello ulteriore contesto, che è particolarmente prezioso se i dati sono specifici di un dominio o non fanno parte del corpus di formazione originale del modello.
Generazione del completamento
Con il prompt aumentato in mano, il modello genera quindi un completamento o una risposta. Questa risposta non si basa solo sulla formazione del modello, ma è anche informata dai dati in tempo reale recuperati.
Architettura del primo modello LLM RAG
La ricerca pubblicata da Meta nel 2020 “Generazione aumentata da recupero per attività di NLP intensive in termini di conoscenza” fornisce un’analisi approfondita di questa tecnica. Il modello di generazione aumentata da recupero aumenta il processo di generazione tradizionale con un meccanismo di recupero o ricerca esterno. Ciò consente al modello di recuperare informazioni pertinenti da grandi corpora di dati, migliorando la sua capacità di generare risposte contestualmente accurate.
Ecco come funziona:
- Memoria parametrica: Questo è il tuo modello di linguaggio tradizionale, come un modello seq2seq. È stato addestrato su grandi quantità di dati e conosce molto.
- Memoria non parametrica: Pensala come a un motore di ricerca. È un indice di vettori densi, ad esempio di Wikipedia, che può essere accessibile utilizzando un retriever neurale.
Quando combinati, questi due creano un modello preciso. Il modello RAG recupera prima le informazioni pertinenti dalla sua memoria non parametrica e poi utilizza la sua conoscenza parametrica per fornire una risposta coerente.
1. Processo a due fasi:
Il modello LLM RAG opera in un processo a due fasi:
- Recupero: Il modello cerca prima documenti o passaggi pertinenti da un grande set di dati. Ciò viene fatto utilizzando un meccanismo di recupero denso, che impiega inserimenti per rappresentare sia la query che i documenti. Gli inserimenti vengono quindi utilizzati per calcolare punteggi di similarità, e i documenti migliori vengono recuperati.
- Generazione: Con i documenti pertinenti nella mano, vengono canalizzati in un generatore sequenza-sequenza insieme alla query iniziale. Questo generatore crea quindi l’output finale, tracciando il contesto sia dalla query che dai documenti recuperati.
2. Recupero denso:
I sistemi di recupero tradizionali spesso si basano su rappresentazioni sparse come TF-IDF. Tuttavia, il modello LLM RAG impiega rappresentazioni dense, dove sia la query che i documenti vengono inseriti in spazi vettoriali continui. Ciò consente confronti di similarità più sfumati, catturando relazioni semantiche oltre il semplice abbinamento di parole chiave.
3. Generazione sequenza-sequenza:
I documenti recuperati agiscono come un contesto esteso per il modello di generazione. Questo modello, spesso basato su architetture come i Transformer, genera quindi l’output finale, assicurandosi che sia coerente e contestualmente pertinente.
Ricerca di documenti
Indicizzazione e recupero di documenti
Per il recupero efficiente di informazioni, specialmente da grandi documenti, i dati vengono spesso archiviati in un database di vettori. Ogni pezzo di dati o documento viene indicizzato in base a un vettore di inserimento, che cattura l’essenza semantica del contenuto. Un’indicizzazione efficiente assicura il recupero rapido di informazioni pertinenti in base al prompt di input.
Database di vettori

Fonte: Redis
I database di vettori, a volte denominati archiviazione di vettori, sono database personalizzati per archiviare e recuperare dati vettoriali. Nel regno dell’IA e della scienza informatica, i vettori sono essenzialmente elenchi di numeri che rappresentano punti in uno spazio multidimensionale. A differenza dei database tradizionali, che sono più adatti ai dati tabellari, i database di vettori eccellono nella gestione dei dati che naturalmente si adattano a un formato vettoriale, come gli inserimenti dei modelli di IA.
Alcuni database di vettori notevoli includono Annoy, Faiss di Meta, Milvus e Pinecone. Questi database sono fondamentali nelle applicazioni di IA, aiutando in compiti che vanno dai sistemi di raccomandazione alle ricerche di immagini. Piattaforme come AWS offrono anche servizi personalizzati per le esigenze dei database di vettori, come Amazon OpenSearch Service e Amazon RDS per PostgreSQL. Questi servizi sono ottimizzati per casi d’uso specifici, assicurando l’indicizzazione e la query efficienti.
Chunking per rilevanza
Considerando che molti documenti possono essere estensivi, una tecnica nota come “chunking” viene spesso utilizzata. Ciò comporta la divisione di grandi documenti in porzioni più piccole e semanticamente coerenti. Queste porzioni vengono quindi indicate e recuperate come necessario, assicurando che le porzioni più rilevanti di un documento vengano utilizzate per l’aumento del prompt.
Considerazioni sulla finestra di contesto
Ogni modello LLM opera all’interno di una finestra di contesto, che è essenzialmente la quantità massima di informazioni che può considerare contemporaneamente. Se le fonti di dati esterne forniscono informazioni che superano questa finestra, è necessario dividerle in porzioni più piccole che si adattino alla finestra di contesto del modello.
Vantaggi dell’utilizzo della Generazione aumentata da recupero
- Precisione migliorata: Sfruttando fonti di dati esterne, il modello LLM RAG può generare risposte che non si basano solo sui dati di formazione, ma sono anche informate dalle informazioni più rilevanti e aggiornate disponibili nel corpus di recupero.
- Superamento delle lacune di conoscenza: RAG affronta efficacemente le limitazioni di conoscenza intrinseche dei modelli LLM, sia a causa della data di fine formazione del modello che dell’assenza di dati specifici di un dominio nel suo corpus di formazione.
- Versatilità: RAG può essere integrato con varie fonti di dati esterne, dalle banche di dati proprietarie all’interno di un’organizzazione ai dati di Internet pubblicamente accessibili. Ciò lo rende adattabile a una vasta gamma di applicazioni e settori.
- Riduzione delle allucinazioni: Una delle sfide con i modelli LLM è la possibilità di “allucinazioni” o la generazione di informazioni fattualmente scorrette o inventate. Fornendo un contesto di dati in tempo reale, RAG può ridurre notevolmente la possibilità di tali output.
- Scalabilità: Uno dei principali vantaggi del modello LLM RAG è la sua capacità di scalare. Separando i processi di recupero e generazione, il modello può gestire efficientemente grandi set di dati, rendendolo adatto per applicazioni nel mondo reale dove i dati sono abbondanti.
Sfide e considerazioni
- Onere computazionale: Il processo a due fasi può essere computazionalmente intensivo, specialmente quando si lavora con grandi set di dati.
- Dipendenza dai dati: La qualità dei documenti recuperati ha un impatto diretto sulla qualità della generazione. Pertanto, avere un corpus di recupero completo e ben curato è cruciale.
Conclusione
Integrando i processi di recupero e generazione, la Generazione aumentata da recupero offre una soluzione robusta per attività intensive in termini di conoscenza, assicurando output che sono sia informati che contestualmente rilevanti.
La vera promessa di RAG risiede nel suo potenziale per applicazioni nel mondo reale. Per settori come la sanità, dove le informazioni tempestive e accurate possono essere fondamentali, RAG offre la capacità di estrarre e generare insight da vasti testi medici in modo fluido. Nel settore finanziario, dove i mercati si evolvono di minuto in minuto, RAG può fornire insight basati sui dati in tempo reale, aiutando nella presa di decisioni informate. Inoltre, nel mondo accademico e della ricerca, gli studiosi possono sfruttare RAG per scansionare vasti repository di informazioni, rendendo le revisioni della letteratura e l’analisi dei dati più efficienti.

















