Sägetstrasse 18, 3123 Belp, Switzerland +41 79 173 36 84 info@ict.technology

    Guida per Principianti al Retrieval-Augmented Generation (RAG) - Parte 1

    Retrieval-Augmented Generation (RAG) rappresenta un'evoluzione significativa nell'architettura dei Large Language Model (LLM), combinando la potenza dei sistemi di memoria parametrici e non parametrici. Al suo nucleo, RAG affronta una delle limitazioni fondamentali dei LLM tradizionali: la loro dipendenza da conoscenze pre-addestrate statiche che possono diventare obsolete o potrebbero mancare del contesto specifico necessario per risposte accurate. Il framework RAG rappresenta un significativo passo avanti nella ricerca di creare modelli linguistici e integrando la potenza delle tecniche di recupero, classificazione e generazione, RAG apre nuove possibilità per sistemi di AI che possono impegnarsi in una comunicazione veramente consapevole del contesto e informata.

    Questa è la parte 1 di una serie in più parti in cui esaminiamo i RAG, come utilizzarli e come funzionano.


    Il trattamento scientifico originale del Retrieval-Augmented Generation è stato pubblicato nel maggio 2020 da Patrick Lewis e i suoi colleghi con il titolo Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. Patrick Lewis è un Ricercatore di Natural Language Processing con sede a Londra che lavora presso co:here, i cui modelli linguistici aziendali noi di *ICT.technology* forniamo ai clienti oltre ai modelli Open Source Llama. Se sei interessato ai dettagli tecnici di questa ricerca cruciale, puoi scaricare una copia della revisione del 2021 qui: https://arxiv.org/pdf/2005.11401.pdf.

    Parte 1: I Fondamenti del Retrieval-Augmented Generation (RAG)

    Immagina una vasta biblioteca dove l'intelligenza artificiale agisce sia come bibliotecario che come ricercatore. Questo è essenzialmente ciò che fa il Retrieval-Augmented Generation (RAG) - trasforma un'AI da un sistema che può solo recitare informazioni memorizzate in uno che può ricercare attivamente, valutare e utilizzare informazioni da una base di conoscenza dinamica.

    Esploriamo come funziona questo sistema di biblioteca digitale.

    Come Funziona RAG: Una Panoramica ad Alto Livello

    In una biblioteca tradizionale, hai bibliotecari che sanno come trovare informazioni, assistenti di ricerca che valutano le fonti ed esperti che aiutano a interpretare i risultati. Il lavoro con i libri della biblioteca - il loro contenuto è statico, non cambia mai. Nuovi libri possono essere aggiunti di tanto in tanto, ma la maggior parte di essi sono vecchi.

    RAG Components Workflow
    Pensa a RAG come se avesse un brillante bibliotecario e ricercatore che non si affida solo alla conoscenza memorizzata (come i libri della biblioteca) ma ha accesso istantaneo a un vasto sistema di riferimento costantemente aggiornabile. Ma a differenza della nostra analogia della biblioteca tradizionale, questo sistema opera su sofisticati principi matematici e architetture neurali.

    Il Personale della Biblioteca al Lavoro

    La sofisticazione del framework RAG deriva dai suoi tre componenti principali, ciascuno costruito su architetture di reti neurali avanzate: Il Retriever, il Ranker e il Generator. Questi componenti lavorano insieme senza soluzione di continuità per fornire risposte contestualmente rilevanti, accurate e informative.

    1. Il Retriever: Il Bibliotecario Veloce come un Fulmine

    Retriever ENIl nostro bibliotecario digitale non cammina attraverso corridoi fisici - naviga attraverso vasti database di informazioni a velocità incredibili. Quando fai una domanda, loro:

    • Cercano attraverso "scaffali" digitali usando la similarità vettoriale (come trovare libri con temi simili)
    • Usano il matching delle parole chiave (simile al controllo degli indici dei libri, ma istantaneamente)
    • Interrogano database strutturati (come consultare un catalogo a schede perfettamente organizzato)
    • Impiegano la ricerca semantica (comprendendo cosa stai chiedendo, anche se usi parole diverse)

    Questo bibliotecario digitale non guarda solo i titoli - scansiona interi documenti in millisecondi, trovando informazioni rilevanti che potrebbero essere sepolte nel profondo del testo. Il suo ruolo principale è scansionare grandi quantità di dati, sia strutturati che non strutturati, per trovare contenuti rilevanti per la query in questione.

    Quando un utente invia una query, il Retriever impiega varie tecniche di recupero per raccogliere informazioni potenzialmente utili:

    • Ricerca per similarità vettoriale: Il Retriever rappresenta sia la query che i documenti nel database come vettori ad alta dimensionalità (attualmente fino a 1024 dimensioni). Utilizza quindi la similarità del coseno o altre metriche di distanza per trovare documenti con vettori più simili al vettore della query. Questo è analogo a un bibliotecario che trova libri con temi o contenuti simili.
    • Ricerca basata su parole chiave: Il Retriever cerca corrispondenze esatte o variazioni delle parole chiave dalla query all'interno del corpus di documenti. Questo è simile a un bibliotecario che controlla gli indici o i titoli dei libri per termini specifici.
    • Query su database strutturati: Se le informazioni sono memorizzate in un formato strutturato come un database relazionale, il Retriever può utilizzare SQL o linguaggi di query simili per recuperare dati rilevanti. Questo è simile a un bibliotecario che consulta un catalogo a schede perfettamente organizzato.

    L'obiettivo del Retriever è gettare una rete ampia e raccogliere tutte le informazioni potenzialmente rilevanti da un grande corpus o database, utilizzando varie tecniche di recupero come la ricerca per similarità vettoriale, la ricerca basata su parole chiave e le query su database strutturati. Il suo scopo è fornire al sistema di generazione informazioni contestualmente rilevanti, accurate e aggiornate che potrebbero non essere presenti nella conoscenza pre-addestrata del modello. Queste informazioni raccolte verranno ulteriormente raffinate nelle fasi successive.

    2. Il Ranker: L'Esperto del Reference Desk

    Ranker ENDopo che il retriever ha riportato informazioni potenzialmente rilevanti, il ranker assume il ruolo di un bibliotecario di riferimento esperto che valuta ogni fonte. Il Ranker utilizza vari algoritmi per determinare la rilevanza e l'utilità di ogni pezzo di informazione recuperata nel rispondere alla query data. Alcuni dei fattori che il Ranker considera includono:

    • Quanto è rilevante questa informazione, quanto bene l'informazione si allinea con l'intento e il contesto della domanda dell'utente?
    • Quanto è affidabile questa fonte?
    • L'informazione è aggiornata?
    • Quanto bene questo spiega ciò che dobbiamo sapere?
    • Ci sono contraddizioni o lacune che devono essere colmate tra le fonti?

    Proprio come un buon bibliotecario di riferimento sa quali fonti prioritizzare, il ranker assicura che solo le informazioni più preziose procedano. Una volta che il Retriever ha raccolto un pool di documenti potenzialmente rilevanti, il Ranker interviene per valutare e anche prioritizzare queste informazioni che il Retriever ha trovato nei vari pool di documenti, database aziendali e altre fonti.

    Classificando efficacemente le informazioni recuperate, il Ranker assicura che il Generator riceva l'input più pertinente e di alta qualità. Questo passaggio è cruciale per mantenere l'accuratezza e la rilevanza della risposta finale.

    3. Il Generator: Il Sintetizzatore della Ricerca

    Generator ENPensa al generator come un assistente di ricerca qualificato che prende tutti i materiali attentamente selezionati e li compila in una risposta chiara e completa. È il componente finale del framework RAG e cruciale per mantenere l'accuratezza e la rilevanza della risposta finale. Il Generator:

    • Combina informazioni da più fonti in modo coeso
    • Mantiene la coerenza attraverso la spiegazione
    • Presenta i dettagli tecnici con accuratezza
    • Formatta le informazioni in modo appropriato per la query
    • Risolve eventuali conflitti tra diverse fonti

    Il Generator è tipicamente un modello sequence-to-sequence (seq2seq), che è un tipo di architettura di rete neurale che può generare sequenze di output basate su sequenze di input. Nel contesto di RAG, la sequenza di input è la query dell'utente insieme alle informazioni recuperate con il ranking più alto, e la sequenza di output è la risposta generata.

    I modelli seq2seq consistono di due componenti principali:

    • Encoder: L'encoder elabora la sequenza di input (query + informazioni recuperate) e la converte in una rappresentazione vettoriale di dimensione fissa che cattura le informazioni essenziali. Questo è simile a un ricercatore che legge attraverso le fonti selezionate e riassume mentalmente i punti chiave.
    • Decoder: Il decoder prende la rappresentazione codificata e genera la sequenza di output (risposta) un token alla volta, basandosi sull'input e sui suoi output precedenti. Questo è simile al ricercatore che compone una risposta basata sulla sua comprensione della query e delle informazioni rilevanti.

    Il Generator utilizza la potenza dei modelli seq2seq per creare risposte simili a quelle umane che non sono solo accurate e rilevanti dal punto di vista fattuale, ma anche coerenti, fluide e stilisticamente tipiche del linguaggio umano. Assicura che la risposta finale integri perfettamente le informazioni recuperate in un flusso naturale e conversazionale.

    RAG in Azione: Un'Analogia con la Biblioteca

    AdobeStock 40748957Per comprendere meglio come opera il framework RAG, rivisitiamo la nostra analogia della biblioteca e vediamo come i componenti Retriever, Ranker e Generator si mappano sui ruoli del personale della biblioteca. Proprio come una biblioteca ben funzionante dipende dalla collaborazione senza soluzione di continuità di bibliotecari, esperti del reference desk e assistenti di ricerca, l'efficacia del framework RAG si basa sull'interazione armoniosa dei componenti Retriever, Ranker e Generator.

    Quando qualcuno viene nella nostra biblioteca digitale con una domanda, ecco cosa succede:

    1. Elaborazione Iniziale della Query

    Quando un utente arriva con una query, il sistema prima riceve la tua domanda.

    Proprio come un bibliotecario potrebbe fare domande di chiarimento, il sistema prima analizza cosa stai realmente cercando. Per questo, considera qualsiasi contesto di conversazione precedente (come un bibliotecario che ricorda l'argomento della tua ricerca della tua ultima visita).

    2. Il Processo di Ricerca

    Il Retriever è come un bibliotecario veloce che conosce la collezione della biblioteca dentro e fuori. Come il bibliotecario, il retriever naviga rapidamente attraverso gli scaffali, i database e i cataloghi per raccogliere tutti i libri, gli articoli e altre risorse che potrebbero contenere informazioni rilevanti.

    Il Retriever cerca attraverso le collezioni digitali (che non includono solo pool di documenti, ma anche i database relazionali della tua azienda e altri media). Possono essere utilizzate simultaneamente multiple strategie di ricerca. I materiali rilevanti vengono rapidamente raccolti e le informazioni sulle fonti vengono annotate.

    Infine, il bibliotecario torna dagli archivi con una vasta collezione di materiale e ora deve essere determinato quale delle informazioni al suo interno è veramente importante.

    3. Valutazione e Selezione

    Il Ranker è come l'esperto del reference desk che prende la pila di materiali dal bibliotecario e valuta ciascuno. Considerano fattori come la data di pubblicazione, l'autorità dell'autore e quanto bene il contenuto si allinea con le necessità dell'utente. Ordinano i materiali in base alla loro rilevanza e qualità, mettendo da parte le fonti più utili.

    Per questo, il Ranker valuta tutti i materiali recuperati e tutte le fonti sono prioritizzate in base alla rilevanza del contenuto e all'affidabilità della fonte. Le informazioni duplicate vengono consolidate e infine vengono selezionate le fonti più preziose.

    4. Creazione della Risposta

    Il Generator è come un assistente di ricerca esperto che prende la pila curata di materiali e sintetizza le informazioni in una risposta completa e ben strutturata. Sanno come estrarre i punti chiave, collegare idee da diverse fonti e presentare le informazioni in modo chiaro e coinvolgente. Assicurano che il prodotto finale non sia solo una collezione di fatti ma una risposta coerente e contestualmente appropriata alla domanda dell'utente.

    Per realizzare questo, tutte le informazioni che sono state selezionate dal Ranker vengono organizzate. Poi viene elaborata una risposta coerente. Nel passaggio successivo, la risposta viene controllata nuovamente rispetto alle fonti. Se approvata, la risposta finale viene presentata al cliente.

    Perché Questo Sistema di Biblioteca Digitale è Importante

    AdobeStock 1153892723Il framework RAG porta diversi vantaggi significativi nel regno dei modelli linguistici:

    1. Estensibilità: Separando il processo di recupero della conoscenza dal modello linguistico pre-addestrato, RAG permette una facile integrazione di informazioni nuove e aggiornate. La collezione si espande sempre e nuove informazioni possono essere aggiunte in qualsiasi momento; un LLM dovrebbe essere ri-addestrato ogni volta che viene aggiunto nuovo contenuto, risultando in cut-off di conoscenza a certe date. Di conseguenza, le risposte sono basate su fonti effettive piuttosto che solo sulla "memoria" e la biblioteca può essere aggiornata senza ricostruire l'intero sistema.
    2. Specializzazione: I modelli RAG possono essere adattati a domini o casi d'uso specifici curando il corpus di documenti da cui attingono. Questo permette la creazione di potenti sistemi di domande e risposte specifici per dominio.
    3. Interpretabilità: Il framework RAG fornisce una traccia chiara delle informazioni utilizzate per generare una risposta. Ogni pezzo di informazione può essere ricondotto alla sua fonte. Questa trasparenza può essere cruciale in applicazioni dove la provenienza delle informazioni è importante, come in contesti medici o legali.
    4. Efficienza: Utilizzando una combinazione di tecniche di recupero e algoritmi di ranking, RAG può rapidamente setacciare vaste quantità di informazioni e concentrarsi sui pezzi più rilevanti, riducendo il carico computazionale sul Generator.

    Applicazioni nel Mondo Reale

    Proprio come le biblioteche servono molti scopi, i sistemi RAG sono versatili:

    • Sistemi di documentazione tecnica che rimangono aggiornati con gli ultimi aggiornamenti
    • Sistemi di servizio clienti che possono accedere e comprendere le politiche aziendali
    • Strumenti di ricerca che possono trovare e sintetizzare informazioni da multiple fonti
    • Sistemi educativi che forniscono spiegazioni accurate e ben documentate

    RAG trasforma l'AI da un sistema che semplicemente ricorda informazioni in uno che può attivamente ricercare, valutare e presentare informazioni - proprio come un sistema bibliotecario di classe mondiale, ma a velocità digitali. Mentre continuiamo a esplorare le complessità di RAG nelle parti successive di questa serie di articoli, tieni a mente questo framework fondamentale e come i suoi componenti lavorano insieme per creare un sistema che non è solo un magazzino di conoscenza statica, ma un partecipante attivo e dinamico nella ricerca della comprensione.