Un’indagine approfondita sulla generazione potenziata dal recupero in LLM

Un'indagine approfondita sulla potente rigenerazione della pelle con LLM

Immagina di essere un Analista e di avere accesso a un Modello di Linguaggio Esteso. Sei entusiasta delle prospettive che porta al tuo flusso di lavoro. Ma poi, quando gli chiedi gli ultimi prezzi delle azioni o il tasso di inflazione attuale, ti risponde con:

“Mi dispiace, ma non posso fornire dati in tempo reale o dati successivi al taglio. I miei ultimi dati di addestramento vanno solo fino a gennaio 2022.”

I Modelli di Linguaggio Esteso, nonostante la loro potenza linguistica, mancano della capacità di comprendere il ‘ora‘. E nel mondo frenetico, il ‘ora’ è tutto.

La ricerca ha dimostrato che i grandi modelli di linguaggio preaddestrati (LLM) sono anche depositi di conoscenze factuali.

Sono stati addestrati su così tanti dati che hanno assorbito molti fatti e cifre. Quando vengono raffinati, possono ottenere risultati notevoli in una varietà di compiti NLP.

Ma ecco il problema: la loro capacità di accedere e manipolare questa conoscenza memorizzata non è perfetta. Specialmente quando il compito richiede molte conoscenze, questi modelli possono essere meno performanti rispetto ad 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 per la navigazione

L’annuncio recente di OpenAI sulla capacità di navigazione di ChatGPT rappresenta un notevole passo avanti verso la Generazione Potenziata dalla Ricerca (RAG). Ora ChatGPT è in grado di esaminare Internet per informazioni attuali e autorevoli, riflettendo l’approccio RAG di estrarre dinamicamente dati da fonti esterne per fornire risposte arricchite.

Attualmente disponibile per gli utenti Plus e Enterprise, OpenAI prevede di rendere questa funzionalità disponibile a tutti gli utenti a breve. Gli utenti possono attivarla selezionando “Naviga con Bing” sotto l’opzione GPT-4.

Chatgpt Nuova Funzionalità di Navigazione

Nuova Funzionalità di Navigazione “Bing” di Chatgpt

L’ingegneria delle tracce è efficace ma non sufficiente

Le tracce fungono da punto di accesso alla conoscenza del LLM. Guidano il modello, fornendo una direzione per la risposta. Tuttavia, creare una traccia efficace non è la soluzione completa per ottenere ciò che si desidera da un LLM. Tuttavia, passiamo in rassegna alcune buone pratiche da considerare quando si scrive una traccia:

  1. Chiarezza: Una traccia ben definita elimina l’ambiguità. Dovrebbe essere diretta, assicurandosi che il modello comprenda l’intento dell’utente. Questa chiarezza si traduce spesso in risposte più coerenti e pertinenti.
  2. Contesto: Soprattutto per input estesi, la posizione dell’istruzione può influenzare l’output. Ad esempio, spostare l’istruzione alla fine di una traccia lunga spesso produce risultati migliori.
  3. Precisione nell’istruzione: La forza della domanda, spesso trasmessa attraverso il framework “chi, che cosa, dove, quando, perché, come”, può guidare il modello verso una risposta più focalizzata. Inoltre, specificare il formato o la dimensione desiderata dell’output può ulteriormente raffinare l’output del modello.
  4. 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ò impedire la generazione di risposte inaccurate o “allucinate”.
  5. Pensiero passo-passo: Per istruzioni complesse, guidare il modello a pensare in modo sistematico o suddividere il compito in sotto-compiti può portare a output più completi e precisi.

In relazione all’importanza delle tracce nel guidare ChatGPT, è possibile trovare un articolo esaustivo in un articolo su Unite.ai.

Sfide nei modelli di intelligenza artificiale generativa

L’ingegneria delle tracce comporta il raffinamento delle direttive date al modello per migliorarne le prestazioni. È un modo molto economico per aumentare l’accuratezza delle applicazioni dell’IA generativa, richiedendo solo lievi modifiche al codice. Nonostante l’ingegneria delle tracce possa migliorare significativamente gli output, è fondamentale comprendere le limitazioni intrinseche dei grandi modelli di linguaggio (LLM). Due sfide principali sono le “allucinazioni” e i “tagli di conoscenza”.

  • Allucinazioni: Questo si riferisce a situazioni in cui il modello restituisce con sicurezza una risposta errata o inventata. Sebbene i LLM avanzati abbiano meccanismi integrati per riconoscere ed evitare tali output.

Allucinazioni nei LLM

Allucinazioni nei LLM

  • Tagli di conoscenza: Ogni modello di LLM ha una data di fine addestramento, successiva alla quale non è consapevole degli eventi o degli sviluppi. Questa limitazione significa che la conoscenza del modello è congelata al punto della sua ultima data di addestramento. Ad esempio, un modello addestrato fino al 2022 non conoscerebbe gli eventi del 2023.

Tagli di conoscenza nei LLM

Tagli di conoscenza nei LLM

Generazione potenziata dal recupero (RAG) offre una soluzione a queste sfide. Consente ai modelli di accedere alle informazioni esterne, mitigando i problemi delle allucinazioni fornendo accesso a dati proprietari o specifici del dominio. Per quanto riguarda i tagli di conoscenza, RAG può accedere alle informazioni attuali oltre la data di addestramento del modello, garantendo che l’output sia aggiornato.

Consente anche al LLM di acquisire dati da varie fonti esterne in tempo reale. Questo potrebbe includere basi di conoscenza, database o persino l’ampia gamma di Internet.

Introduzione alla Generazione Potenziata dal Recupero

La generazione potenziata dal recupero (RAG) è un framework, piuttosto che una tecnologia specifica, che consente ai Large Language Models di accedere a dati su cui non sono stati addestrati. Ci sono molteplici 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 o il prompt dell’utente. Questo potrebbe essere una domanda o una dichiarazione che cerca informazioni specifiche.

Recupero da Fonti Esterne

Invece di generare direttamente una risposta basata sul proprio addestramento, il modello, con l’aiuto di un componente retriever, 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

Alla sua base, il recupero riflette un’operazione di ricerca. Si tratta di estrarre le informazioni più pertinenti in risposta all’input dell’utente. Questo processo può essere suddiviso in due fasi:

  1. Indicizzazione: Senza dubbio, la parte più impegnativa dell’intero percorso RAG è indicizzare la tua base di conoscenza. Il processo di indicizzazione può essere ampiamente diviso in due fasi: Caricamento e Suddivisione. In strumenti come LangChain, queste fasi vengono definite “loader” e “splitter”. I loader recuperano i contenuti da varie fonti, che siano pagine web o PDF. Una volta acquisiti, gli splitter suddividono questi contenuti in porzioni ottimizzate per l’embedding e la ricerca.
  2. Interrogazione: Si tratta dell’atto di estrapolare i frammenti di conoscenza più rilevanti in base a un termine di ricerca.

Anche se esistono molti modi per affrontare il recupero, dalla semplice corrispondenza di testo all’utilizzo di motori di ricerca come Google, i sistemi moderni di generazione potenziata dal recupero (RAG) si affidano alla ricerca semantica. Al centro della ricerca semantica si trova il concetto di embedding.

Gli embedding sono fondamentali per come i Large Language Models (LLM) comprendono il linguaggio. Quando gli esseri umani cercano di spiegare come derivano il significato delle parole, l’argomento finisce spesso con l’importanza innata. Nel profondo delle nostre strutture cognitive, riconosciamo che “bambino” e “ragazzino” sono sinonimi, o che “rosso” e “verde” entrambi denotano i colori.

Potenziamento del Prompt

Le informazioni recuperate vengono quindi combinate con il prompt originale, creando un prompt potenziato o ampliato. Questo prompt potenziato fornisce al modello un contesto aggiuntivo, che è particolarmente prezioso se i dati sono specifici del dominio o non fanno parte del corpus di addestramento originale del modello.

Generazione del Completamento

Con il prompt aumentato in mano, il modello genera una completamento o una risposta. Questa risposta non si basa solo sull’addestramento del modello, ma viene anche informata dai dati recuperati in tempo reale.

Generazione assistita dal recupero

Generazione assistita dal recupero

Architettura del primo RAG LLM

L’articolo di ricerca di Meta pubblicato nel 2020 “Generazione assistita dal recupero per compiti NLP ad alto contenuto di conoscenza” fornisce una visione approfondita di questa tecnica. Il modello di generazione assistita dal recupero potenzia il processo tradizionale di generazione con un meccanismo di recupero o ricerca esterno. Ciò consente al modello di estrarre informazioni rilevanti da vaste corpora di dati, migliorando la sua capacità di generare risposte contestualmente precise.

Ecco come funziona:

  1. Memoria parametrica: Questa è la tua tradizionale modello di linguaggio, come un modello seq2seq. È stato addestrato su grandi quantità di dati e ne sa molto.
  2. Memoria non parametrica: Pensa a questo come a un motore di ricerca. È un indice di vettori densi di, ad esempio, Wikipedia, che può essere accessibile utilizzando un recuperatore neurale.

Quando combinati, questi due elementi creano un modello accurato. Il modello RAG recupera prima informazioni rilevanti dalla sua memoria non parametrica e quindi utilizza la sua conoscenza parametrica per fornire una risposta coerente.

Modello RAG ORIGINALE DI META

Modello RAG originale di Meta

1. Processo a due fasi:

Il RAG LLM opera in un processo a due fasi:

  • Recupero: Il modello cerca prima documenti o passaggi rilevanti da un ampio set di dati. Ciò avviene utilizzando un meccanismo di recupero denso, che impiega embedding per rappresentare sia la query che i documenti. Gli embedding vengono quindi utilizzati per calcolare i punteggi di similarità e vengono recuperati i documenti con i punteggi più elevati.
  • Generazione: Con i documenti più rilevanti in mano, vengono quindi indirizzati in un generatore sequenza-su-sequenza insieme alla query iniziale. Questo generatore quindi crea 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 RAG LLM impiega rappresentazioni dense, in cui sia la query che i documenti sono incorporati in spazi vettoriali continui. Ciò consente confronti di similarità più sfumati, catturando relazioni semantiche oltre la semplice corrispondenza delle parole chiave.

3. Generazione sequenza-su-sequenza:

I documenti recuperati agiscono come un contesto esteso per il modello di generazione. Questo modello, spesso basato su architetture come i Transformers, genera quindi l’output finale, assicurando che sia coerente e rilevante dal punto di vista contestuale.

Ricerca dei documenti

Indicizzazione e recupero dei documenti

Per un recupero efficiente delle informazioni, specialmente da documenti di grandi dimensioni, i dati sono spesso archiviati in un database vettoriale. Ogni dato o documento è indicizzato in base a un vettore di embedding, che cattura l’essenza semantica del contenuto. Un’indicizzazione efficiente consente il recupero rapido di informazioni pertinenti in base all’input.

Database vettoriali

Database vettoriale

Fonte: Redis

I database vettoriali, a volte denominati archivi di vettori, sono database specializzati abili nello storage e nel recupero di dati vettoriali. Nel campo dell’IA e dell’informatica, i vettori sono essenzialmente elenchi di numeri che simboleggiano punti in uno spazio multidimensionale. A differenza dei database tradizionali, che sono più attenti ai dati tabulari, i database vettoriali brillano nella gestione di dati che si adattano naturalmente a un formato vettoriale, come gli embedding derivanti dai modelli di IA.

Alcuni importanti database vettoriali includono Annoy, Faiss di Meta, Milvus, e Pinecone. Questi database sono cruciali nelle applicazioni di intelligenza artificiale, contribuendo a compiti che vanno dai sistemi di raccomandazione alle ricerche di immagini. Piattaforme come AWS offrono inoltre servizi appositamente pensati per le esigenze dei database vettoriali, come Amazon OpenSearch Service e Amazon RDS per PostgreSQL. Questi servizi sono ottimizzati per casi d’uso specifici, garantendo un’indicizzazione e una query efficienti.

“Chunking” per la rilevanza

Dato che molti documenti possono essere estesi, viene spesso utilizzata una tecnica nota come “chunking”. Questo implica la suddivisione dei documenti in unità più piccole, semanticamente coerenti. Questi “chunk” vengono quindi indicizzati e recuperati quando necessario, garantendo che le porzioni più rilevanti di un documento vengano utilizzate per un rapido potenziamento.

Considerazioni sul 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, devono essere suddivise in unità più piccole che si adattano alla finestra di contesto del modello.

Vantaggi dell’utilizzo della generazione potenziata dal recupero

  1. Accuratezza migliorata: Sfruttando fonti di dati esterne, l’LLM RAG può generare risposte che non si basano solo sui propri dati di addestramento, ma sono anche informate dalle informazioni più rilevanti e aggiornate disponibili nel corpus di recupero.
  2. Superare le lacune di conoscenza: RAG affronta efficacemente le limitazioni di conoscenza intrinseche dell’LLM, che siano dovute al taglio dell’addestramento del modello o all’assenza di dati specifici del dominio nel corpus di addestramento.
  3. Versatilità: RAG può essere integrato con diverse fonti di dati esterne, da database proprietari all’interno di un’organizzazione a dati di Internet accessibili pubblicamente. Ciò lo rende adattabile a una vasta gamma di applicazioni e settori.
  4. Riduzione delle “allucinazioni”: Una delle sfide dell’LLM è la presenza potenziale di “allucinazioni” o la generazione di informazioni erronee o fabbricate. Fornendo un contesto di dati in tempo reale, RAG può ridurre significativamente le possibilità di tali risultati.
  5. Scalabilità: Uno dei principali vantaggi di RAG LLM è la sua capacità di scalare. Separando i processi di recupero e generazione, il modello può gestire in modo efficiente vasti dataset, rendendolo adatto a applicazioni reali in cui i dati sono abbondanti.

Sfide e considerazioni

  • Oneri computazionali: Il processo a due fasi può richiedere molta potenza di calcolo, specialmente quando si lavora con grandi dataset.
  • Dipendenza dai dati: La qualità dei documenti recuperati influenza direttamente la qualità della generazione. Pertanto, è cruciale disporre di un corpus di recupero completo e ben curato.

Conclusioni

Integrando i processi di recupero e generazione, la generazione potenziata dal recupero offre una soluzione robusta per compiti intensivi di conoscenza, garantendo risultati informati e rilevanti dal punto di vista contestuale.

Il vero potenziale di RAG risiede nelle sue possibili applicazioni nel mondo reale. Per settori come la sanità, dove le informazioni tempestive e accurate possono essere decisive, RAG offre la capacità di estrarre e generare conoscenze da vasta letteratura medica in modo fluido. Nel campo della finanza, dove i mercati evolvono minuto per minuto, RAG può fornire conoscenze in tempo reale basate sui dati, aiutando a prendere decisioni informate. Inoltre, in ambito accademico e della ricerca, gli studiosi possono utilizzare RAG per esaminare ampi archivi di informazioni, rendendo le revisioni della letteratura e l’analisi dei dati più efficienti.