Intelligenza artificiale
Un’immersione profonda nella generazione aumentata di recupero in LLM

Immagina di essere un analista e di avere accesso a un modello di linguaggio grande. Sei entusiasta delle prospettive che porta al tuo flusso di lavoro. Ma poi, gli chiedi dell’ultimo prezzo delle azioni o del tasso di inflazione attuale e ti risponde con:
“Mi dispiace, ma non posso fornire dati in tempo reale o successivi al taglio. I miei ultimi dati di formazione risalgono solo a gennaio 2022.”
Il modello di linguaggio grande, nonostante il suo potere linguistico, manca della capacità di comprendere il “ora“. E in un mondo veloce, “ora” è tutto.
La ricerca ha dimostrato che i grandi modelli di linguaggio 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 perfezionati, possono ottenere risultati notevoli in una varietà di compiti NLP.
Ma ecco l’ostacolo: la loro capacità di accedere e manipolare questa conoscenza archiviata 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 catalogo per trovare ciò di cui hai bisogno.
OpenAI’s ChatGPT ottiene un aggiornamento di navigazione
l’annuncio recente di OpenAI sulla capacità di navigazione di ChatGPT è un passo significativo nella direzione della generazione aumentata di recupero (RAG). Con ChatGPT ora in grado di cercare su Internet informazioni attuali e autorevoli, riflette l’approccio RAG di estrarre dinamicamente dati da fonti esterne per fornire risposte arricchite.
https://twitter.com/OpenAI/status/1707077710047216095
Attualmente disponibile per gli utenti Plus e 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 delle promt è efficace ma insufficiente
Le promt servono da gateway alla conoscenza del LLM. Guidano il modello, fornendo una direzione per la risposta. Tuttavia, creare una promt efficace non è la soluzione completa per ottenere ciò che si desidera da un LLM. Tuttavia, esaminiamo alcune buone pratiche da considerare quando si scrive una promt:
- Chiarezza: Una promt ben definita elimina l’ambiguità. Deve essere diretta, assicurandosi che il modello comprenda l’intento dell’utente. Questa chiarezza si traduce spesso in risposte più coerenti e rilevanti.
- Contesto: Soprattutto per input estensivi, la posizione dell’istruzione può influenzare l’output. Ad esempio, spostare l’istruzione alla fine di una lunga promt può spesso produrre risultati migliori.
- Precisione nell’istruzione: La forza della domanda, spesso trasmessa attraverso il framework “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 in modo sistematico o suddividendo il compito in sottocompiti può portare a output più completi e precisi.
Per quanto riguarda l’importanza delle promt nel guidare ChatGPT, un articolo completo può essere trovato in un articolo su Unite.ai.
Sfide nei modelli di intelligenza artificiale generativa
L’ingegneria delle promt coinvolge la regolazione delle direttive date al modello per migliorarne le prestazioni. È un modo molto economico per aumentare l’accuratezza dell’applicazione di intelligenza artificiale generativa, richiedendo solo piccole modifiche al codice. Mentre l’ingegneria delle promt può migliorare notevolmente gli output, è cruciale comprendere i limiti intrinseci dei grandi modelli di linguaggio (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 fabbricata. Sebbene i LLM avanzati abbiano 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 punto della sua ultima data di formazione. Ad esempio, un modello addestrato fino al 2022 non conosce gli eventi del 2023.
La generazione aumentata di 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 attuali al di là della data di formazione del modello, assicurando che l’output sia aggiornato.
Consente inoltre al LLM di estrarre dati da varie fonti esterne in tempo reale. Ciò potrebbe essere basi di conoscenza, database o anche la vasta estensione di Internet.
Introduzione alla generazione aumentata di recupero
La generazione aumentata di recupero (RAG) è un framework, piuttosto che una tecnologia specifica, che consente ai grandi modelli di linguaggio di attingere a dati sui quali non sono stati addestrati. Ci sono molti modi per implementare RAG, e il miglior adattamento dipende dal compito specifico e dalla natura dei dati.
Input della promt
Il processo inizia con l’input dell’utente o della promt. Ciò potrebbe essere una domanda o una dichiarazione che cerca informazioni specifiche.
Recupero da fonti esterne
Al posto di generare direttamente una risposta in base al suo addestramento, il modello, con l’aiuto di un componente di recupero, cerca attraverso fonti di dati esterne. Queste fonti possono variare da basi di conoscenza, database e archivi di documenti a dati accessibili su Internet.
Comprensione del recupero
La 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 tua base 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 segmentano poi questo contenuto in porzioni di dimensioni ottimali, ottimizzandole per l’incorporamento e la ricerca.
- Richiesta: 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 moderni sistemi RAG si basano sulla ricerca semantica. Al cuore della ricerca semantica giace il concetto di incorporamenti.
Gli incorporamenti sono centrali nel modo in cui i grandi modelli di linguaggio (LLM) comprendono il linguaggio. Quando gli esseri umani cercano di articolare come derivano il significato dalle parole, la spiegazione spesso si concentra sull’interpretazione intrinseca. Profondamente all’interno delle nostre strutture cognitive, riconosciamo che “bambino” e “ragazzo” sono sinonimi, o che “rosso” e “verde” denotano entrambi i colori.
Aumento della promt
Le informazioni recuperate vengono poi combinate con la promt originale, creando una promt aumentata o estesa. Questa promt aumentata fornisce al modello ulteriore contesto, che è particolarmente prezioso se i dati sono specifici di un dominio o non fanno parte del corpus di addestramento originale del modello.
Generazione del completamento
Con la promt aumentata in mano, il modello genera quindi un completamento o risposta. Questa risposta non è basata solo sull’addestramento del modello, ma è anche informata dai dati in tempo reale recuperati.
Architettura del primo LLM RAG
La ricerca pubblicata da Meta nel 2020 “Generazione aumentata di recupero per compiti NLP intensivi in termini di conoscenza” fornisce uno sguardo approfondito su questa tecnica. Il modello di generazione aumentata di recupero aggiunge il processo di generazione tradizionale con un meccanismo di recupero o ricerca esterno. Ciò consente al modello di estrarre informazioni rilevanti da vasti corpora di dati, migliorando la sua capacità di generare risposte contestualmente accurate.
Ecco come funziona:
- Memoria parametrica: Questa è la tua tradizionale lingua model, come un modello seq2seq. È stato addestrato su vasti quantità di dati e sa molto.
- Memoria non parametrica: Pensaci come a un motore di ricerca. È un indice di vettori densi di, diciamo, Wikipedia, che può essere accessibile utilizzando un retriever neurale.
Quando combinati, questi due creano un modello preciso. Il modello RAG recupera prima le informazioni rilevanti dalla sua memoria non parametrica e poi utilizza la sua conoscenza parametrica per fornire una risposta coerente.
1. Processo a due fasi:
Il LLM RAG opera in un processo a due fasi:
- Recupero: Il modello cerca prima documenti o passaggi rilevanti da un vasto set di dati. Ciò viene fatto utilizzando un meccanismo di recupero denso, che impiega incorporamenti per rappresentare sia la query che i documenti. Gli incorporamenti vengono quindi utilizzati per calcolare punteggi di similarità, e i documenti migliori vengono recuperati.
- Generazione: Con i documenti rilevanti nella mano, vengono poi canalizzati in un generatore sequenza-per-sequenza insieme alla query iniziale. Questo generatore crea quindi l’output finale, attingendo 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 LLM RAG impiega rappresentazioni dense, dove sia la query che i documenti vengono incorporati in spazi vettoriali continui. Ciò consente confronti di similarità più sottili, catturando relazioni semantiche al di là della semplice corrispondenza di parole chiave.
3. Generazione sequenza-per-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 rilevante nel contesto.
Ricerca di documenti
Indicizzazione e recupero di documenti
Per un recupero di informazioni efficiente, soprattutto 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 incorporamento, che cattura l’essenza semantica del contenuto. Un’indicizzazione efficiente assicura il rapido recupero di informazioni rilevanti in base alla promt di input.
Database di vettori

Fonte: Redis
I database di vettori, a volte denominati archiviazione di vettori, sono database progettati per archiviare e recuperare dati vettoriali. Nel regno dell’AI 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 brillano nella gestione dei dati che naturalmente si adattano a un formato vettoriale, come gli incorporamenti dei modelli AI.
Alcuni database di vettori notevoli includono Annoy, Faiss di Meta, Milvus e Pinecone. Questi database sono fondamentali nelle applicazioni AI, aiutando in compiti che vanno dai sistemi di raccomandazione alle ricerche di immagini. Piattaforme come AWS offrono anche servizi progettati 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.
Suddivisione per rilevanza
Considerando che molti documenti possono essere estensivi, una tecnica nota come “suddivisione” viene spesso utilizzata. Ciò comporta la suddivisione di grandi documenti in porzioni più piccole e coerenti semanticamente. Queste porzioni vengono quindi indicate e recuperate secondo necessità, assicurando che le porzioni più rilevanti di un documento vengano utilizzate per l’aumento della promt.
Considerazioni sulla finestra di contesto
Ogni 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 di recupero
- Precisione migliorata: Sfruttando fonti di dati esterne, il LLM RAG può generare risposte che non sono solo basate sui dati di addestramento, ma sono anche informate dalle informazioni più rilevanti e aggiornate disponibili nel corpus di recupero.
- Superamento dei gap di conoscenza: RAG affronta efficacemente le limitazioni di conoscenza intrinseche dei LLM, sia che si tratti della data di fine addestramento del modello o dell’assenza di dati specifici di un dominio nel suo corpus di addestramento.
- Versatilità: RAG può essere integrato con varie fonti di dati esterne, dalle basi 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 LLM è la potenziale generazione di “allucinazioni” o di informazioni fattualmente inaccurate o fabbricate. Fornendo un contesto di dati in tempo reale, RAG può ridurre notevolmente la possibilità di tali output.
- Scalabilità: Uno dei principali vantaggi del 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, soprattutto quando si ha a che fare 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 di recupero offre una soluzione robusta ai compiti intensivi in termini di conoscenza, assicurando output che sono sia informati che rilevanti nel contesto.
La vera promessa di RAG giace nel suo potenziale di applicazioni nel mondo reale. Per settori come la sanità, dove le informazioni tempestive e accurate possono essere cruciali, RAG offre la capacità di estrarre e generare insight dalla vasta letteratura medica 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 recensioni della letteratura e l’analisi dei dati più efficienti.

















