Il problema risolto dal RAG
Esaminerà casi reali di errore in cui gli LLM generano allucinazioni o informazioni obsolete e scorrette, comprendendo come ancorare le risposte ai documenti recuperati risolva questi problemi.
Il problema risolto dal RAG è una lezione AI Engineering Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Engineering Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Engineering Academy include 4 lezioni in totale.
Gli LLM hanno un limite temporale della conoscenza
Ogni modello linguistico di grandi dimensioni viene addestrato su un'istantanea di Internet aggiornata fino a una data specifica, chiamata limite temporale della conoscenza. GPT-4o ha un limite temporale all'inizio del 2024. Se gli chiede informazioni su eventi avvenuti dopo quella data, ammetterà di non saperne nulla oppure, peggio, inventerà con sicurezza informazioni plausibili ma errate. Per le applicazioni che necessitano di conoscenze aggiornate o proprietarie, questo rappresenta un problema fondamentale.
Il problema delle allucinazioni
Si verifica un'allucinazione quando un LLM genera un testo dal tono autorevole ma fattualmente errato. I modelli vengono addestrati a produrre testi fluidi e coerenti, non a rifiutarsi esplicitamente di rispondere quando non conoscono qualcosa. Di conseguenza, colmano le lacune della conoscenza con ipotesi plausibili. Gli studi mostrano che persino i modelli migliori hanno allucinazioni nel 10-40% dei casi nei compiti ad alta intensità di conoscenza, se privi di un ancoraggio a fonti esterne.
Un esempio concreto di allucinazione
Immagini di chiedere a un LLM: Quali sono i termini del contratto con il fornitore della nostra azienda per il terzo trimestre del 2025? Il modello non ha mai visto il documento interno. Invece di dire che non lo sa, potrebbe generare un riepilogo del contratto apparentemente plausibile, utilizzando un linguaggio giuridico generico. Se un dipendente agisse sulla base di quelle informazioni inventate, le conseguenze potrebbero essere gravi. Questo è esattamente il tipo di errore che RAG è stato progettato per prevenire.
# Without RAG — LLM guesses from parametric memory
response = client.chat.completions.create(
model='gpt-4o',
messages=[
{'role': 'user',
'content': 'What are our Q3 2025 vendor contract terms?'}
]
)
# Model has no access to your documents — may hallucinate
print(response.choices[0].message.content)L'ancoraggio risolve le allucinazioni
L'intuizione alla base di RAG è semplice: se fornisce al modello le informazioni pertinenti all'interno del prompt, il modello non deve fare affidamento sulle conoscenze memorizzate. Passa dal generare basandosi sulla memoria al leggere dal contesto. Anche gli esseri umani funzionano così: quando servono dettagli precisi, li cercano invece di affidarsi al ricordo. RAG rende operativo questo stesso flusso di lavoro per gli LLM.
# With RAG — answer grounded in retrieved documents
context = retrieve_relevant_chunks(query='Q3 2025 vendor contract terms')
response = client.chat.completions.create(
model='gpt-4o',
messages=[
{'role': 'system', 'content': 'Answer using only the provided context.'},
{'role': 'user', 'content': f'Context: {context}\n\nQuestion: What are our Q3 2025 vendor contract terms?'}
]
)Il fine-tuning statico non è d'aiuto in questo caso
Un malinteso comune è pensare che il fine-tuning del modello sui propri documenti risolva il problema delle allucinazioni. Il fine-tuning aggiorna i pesi del modello per migliorarne lo stile, il formato e l'aderenza alle attività, ma non vi inserisce in modo affidabile conoscenze fattuali. Gli studi mostrano che i modelli sottoposti a fine-tuning continuano a produrre allucinazioni persino sui dati di addestramento. Per essere ricordate in modo affidabile, le conoscenze devono essere fornite al momento dell'inferenza tramite la finestra di contesto.
RAG abilita conoscenze in tempo reale
Poiché RAG recupera i dati da un archivio di documenti aggiornato, gestisce naturalmente le conoscenze che cambiano nel tempo. Quando il documento delle politiche viene aggiornato, è sufficiente reindicizzarlo e ogni query successiva utilizzerà immediatamente la nuova versione, senza dover riaddestrare il modello. Per questo, RAG è molto più pratico del fine-tuning periodico per applicazioni come le basi di conoscenza interne, i sistemi di assistenza clienti e gli strumenti di ricerca finanziaria.
RAG funziona con dati privati e proprietari
La maggior parte dei dati aziendali non può essere inviata a OpenAI per l'addestramento a causa dei requisiti di privacy e conformità normativa. RAG aggira questo problema: i documenti sensibili rimangono nel proprio database vettoriale e a ogni query vengono inviati all'LLM solo i segmenti pertinenti. È persino possibile eseguire localmente un LLM come Llama 3, mantenendo tutti i dati on-premises. RAG è il modello architetturale principale per creare soluzioni di IA basate su contenuti aziendali riservati.
RAG consente di attribuire le fonti
Quando un LLM genera una risposta basandosi sulla memoria, non c'è alcuna fonte da citare. Quando invece genera la risposta a partire da documenti recuperati, può citare le fonti esatte. È possibile chiedere al modello di includere nella risposta i nomi dei documenti e i numeri di pagina, consentendo agli utenti di aprire la fonte originale e verificarla. L'attribuzione delle fonti aumenta notevolmente la fiducia nelle risposte generate dall'IA, un aspetto fondamentale nelle applicazioni legali, mediche e finanziarie.
system_prompt = '''You are a helpful assistant.
Answer questions using ONLY the provided context.
At the end of your answer, list the sources you used
in this format: [Source: document_name, page X]
If the context does not contain the answer, say:
"I don't have that information in the provided documents."'''Il modello Retrieve-Then-Generate
RAG segue un modello in due fasi al momento dell'inferenza: Retrieve — converte la domanda dell'utente in un embedding, cerca nell'archivio vettoriale i segmenti di documento più pertinenti e raccoglie i primi K risultati. Generate — costruisce un prompt che include i segmenti recuperati come contesto e chiede all'LLM di rispondere alla domanda basandosi esclusivamente su tale contesto. L'LLM legge, sintetizza e risponde.
def answer_with_rag(user_question, vector_store, llm_client):
# Step 1: Retrieve
query_embedding = embed(user_question)
chunks = vector_store.search(query_embedding, top_k=5)
context = '\n\n'.join([c['text'] for c in chunks])
# Step 2: Generate
response = llm_client.chat.completions.create(
model='gpt-4o',
messages=[
{'role': 'system', 'content': f'Answer using only:\n{context}'},
{'role': 'user', 'content': user_question}
]
)
return response.choices[0].message.contentCosa non risolve RAG
RAG è potente, ma non è una soluzione miracolosa. Continua a fallire quando: la risposta richiede di sintetizzare centinaia di documenti (il recupero restituisce solo pochi segmenti), la domanda è intrinsecamente multi-hop e il modello deve ragionare attraverso passaggi intermedi, oppure i segmenti recuperati sono fuorvianti o contraddittori. Comprendere questi limiti aiuta a progettare sistemi ibridi che combinano RAG con agenti di ragionamento.
RAG a confronto con le alternative
Esistono tre opzioni principali per fornire a un LLM conoscenze di dominio: prompt stuffing (inserire tutto nel prompt, soluzione adatta solo a corpus molto piccoli), fine-tuning (addestra bene stile e formato, ma non garantisce un richiamo affidabile dei dati fattuali) e RAG (recupera dinamicamente i fatti pertinenti al momento dell'inferenza e può gestire milioni di documenti). Per la maggior parte dei casi d'uso in produzione che richiedono conoscenze aggiornate, private o su larga scala, RAG è la scelta giusta.
Verifica rapida
Verifichi la Sua comprensione dei concetti di AI Engineering trattati in questa lezione.
Riepilogo della lezione
In questa lezione ha imparato: perché gli LLM producono allucinazioni a causa dei limiti temporali delle conoscenze e dell'incapacità di dire «non lo so», perché il fine-tuning non risolve le allucinazioni nel richiamo di dati fattuali e come RAG fonda le risposte sui documenti recuperati, consentendo l'attribuzione delle fonti, l'accesso a conoscenze in tempo reale e l'uso sicuro di dati privati. Nella prossima lezione analizzeremo l'architettura completa di RAG, comprese le fasi di indicizzazione e recupero.
Domande Frequenti
La lezione «Il problema risolto dal RAG» è gratuita?
Sì — il testo completo di «Il problema risolto dal RAG» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Engineering Academy, passa a CoddyKit PRO. Il corso AI Engineering Academy include 4 lezioni in totale.
Cosa imparerò in «Il problema risolto dal RAG»?
Esaminerà casi reali di errore in cui gli LLM generano allucinazioni o informazioni obsolete e scorrette, comprendendo come ancorare le risposte ai documenti recuperati risolva questi problemi. Eserciti AI Engineering Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AI Engineering Academy?
Non è richiesta alcuna esperienza precedente. AI Engineering Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Il problema risolto dal RAG»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AI Engineering Academy?
Sì. Ogni lezione AI Engineering Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Il problema risolto dal RAG
- L'architettura RAG: indicizzazione e retrieval
- Creare il prompt aumentato
- RAG e fine-tuning: quando usare ciascuno