Aller au contenu principal

Chapitre 2 : Pourquoi RAG ? Problèmes avec les LLM purs

Introduction​

Les grands modèles de langage comme GPT-4, Claude et Llama sont incroyablement puissants, mais ils ont des limitations fondamentales qui les rendent inadaptés à de nombreuses applications d'entreprise sans augmentation. Ce chapitre explore ces limitations et montre comment RAG répond à chacune d'elles.

Les quatre principales limitations des LLM​

1. Hallucinations​

Le problème : Les LLM peuvent générer avec confiance de fausses informations qui semblent plausibles. Ils sont entraînés à prédire le prochain token, pas à être factuellement exacts.

Utilisateur : "Qui a gagné le Super Bowl 2024 ?"

LLM (sans RAG) : "Les Kansas City Chiefs ont gagné le Super Bowl 2024,
en battant les San Francisco 49ers 25-22."

Mais que se passe-t-il si c'est faux ? Le LLM ne "sait" pas - il prédit.

Pourquoi cela arrive :

  • Les LLM sont des machines à probabilité, pas des bases de données factuelles
  • Les données d'entraînement contiennent des erreurs et des contradictions
  • Aucun mécanisme pour vérifier le contenu généré

Solution RAG :

# Avec RAG, nous ancrons la réponse dans des faits récupérés
retrieved_doc = "Super Bowl LVIII (2024) : Kansas City Chiefs ont battu
les San Francisco 49ers 25-22 le 11 février 2024."

# Le LLM dispose maintenant d'informations vérifiées à référencer
response = llm.generate(
f"Basé sur ce fait : {retrieved_doc}, répondez à la question..."
)

2. Limite de connaissance​

Le problème : Les LLM ont une date limite de connaissance - ils ne connaissent pas les événements après la collecte de leurs données d'entraînement.

ModèleLimite de connaissance
GPT-4Septembre 2023
Claude 3Début 2024
Llama 2Juillet 2023

Impact réel :

Utilisateur : "Quel est le prix actuel du Bitcoin ?"

LLM (sans RAG) : "À la date limite de ma connaissance, le Bitcoin se négociait
autour de 30 000 $..."

❌ Cela pourrait être obsolète de plusieurs mois ou années !

Solution RAG :

# Récupérer les données actuelles d'une source en direct
current_price = retrieve_from_api("bitcoin_price")
# Résultat : {"price": 97500, "timestamp": "2024-12-23"}

# Maintenant, le LLM peut fournir des informations précises et en temps réel
response = llm.generate(
f"Le prix actuel du Bitcoin est de ${current_price['price']}..."
)

3. Pas d'accès aux données privées​

Le problème : Les LLM sont entraînés sur des données publiques. Ils n'ont aucune connaissance de :

  • Les documents internes de votre entreprise
  • Les données privées des clients
  • La recherche propriétaire
  • Les politiques et procédures internes

Impact commercial :

Employé : "Quelle est notre politique de vacances pour les employés avec plus de 5 ans ?"

LLM (sans RAG) : "Je n'ai pas accès aux politiques spécifiques de votre entreprise..."

❌ Le LLM est inutile pour les requêtes internes !

Solution RAG :

# Indexer les documents de l'entreprise dans la base de connaissances
knowledge_base.add_documents([
"Manuel de l'employé 2024.pdf",
"Politiques RH.docx",
"Guide des avantages.pdf"
])

# Maintenant, les requêtes peuvent être répondues à partir de données privées
retrieved = knowledge_base.search("politique de vacances 5 ans d'ancienneté")
# Renvoie : "Les employés avec plus de 5 ans reçoivent 25 jours de congés payés..."

response = llm.generate(f"Basé sur la politique de l'entreprise : {retrieved}...")

4. Limites de tokens / Fenêtres de contexte​

Le problème : Les LLM ont des fenêtres de contexte limitées. Même GPT-4 avec 128K tokens ne peut pas traiter :

  • Une base de données complète de contrats juridiques
  • Des années de tickets de support client
  • Un code source entier

Comparaison des fenêtres de contexte :

ModèleFenêtre de contexte~Pages de texte
GPT-3.54K tokens~3 pages
GPT-48K-128K tokens6-100 pages
Claude 3200K tokens~150 pages

Le problème mathématique :

Votre base de connaissances : 10 000 documents
Document moyen : 5 000 tokens
Total : 50 000 000 tokens

Même le contexte de 200K de Claude 3 ne peut contenir que 0,4 % de vos données !

Solution RAG :

# Au lieu de tout charger, récupérer uniquement les documents pertinents
def smart_retrieval(query, knowledge_base):
# Ne récupérer que les 5 documents les plus pertinents
relevant_docs = knowledge_base.similarity_search(
query,
top_k=5 # ~25 000 tokens au lieu de 50M
)
return relevant_docs

# Maintenant, nous utilisons efficacement la fenêtre de contexte
retrieved = smart_retrieval("politique de vacances", kb) # ~5 docs
response = llm.generate(f"Contexte : {retrieved}\n\nQuestion : ...")

Comparaison côte à côte​

Sans RAG​

Problèmes :

  • Peut halluciner
  • Limité aux données d'entraînement
  • Pas d'accès aux données privées
  • Risque de débordement de contexte

Avec RAG​

Avantages :

  • Fondé sur des faits
  • Informations en temps réel
  • Accès aux données privées
  • Utilisation efficace du contexte

Comparaison des coûts​

ApprocheCoût mensuel*PrécisionFraîcheur
LLM pur500 $70-80%Statique
RAG700 $90-95%En temps réel
Ajustement fin5 000 $+85-90%Statique

*Estimé pour un cas d'utilisation d'entreprise avec 10K requêtes/jour

Quand RAG échoue​

RAG n'est pas parfait. Soyez conscient de ces scénarios :

1. Échecs de récupération​

Problème : Documents récupérés incorrects
Exemple : L'utilisateur demande des informations sur "l'action Apple" mais récupère des documents sur les pommes (fruit)

Solution : Meilleurs embeddings, filtrage des métadonnées, recherche hybride

2. Mauvaise utilisation du contexte​

Problème : Le LLM ignore ou interprète mal le contexte récupéré
Exemple : La politique récupérée dit "30 jours" mais le LLM dit "60 jours"

Solution : Meilleur prompt, contexte plus petit, instructions explicites

3. Base de connaissances obsolète​

Problème : La base de connaissances n'est pas mise à jour
Exemple : Les documents ont 6 mois, l'information est obsolète

Solution : Synchronisation régulière, mises à jour automatisées, indicateurs de fraîcheur

Tableau récapitulatif​

ProblèmeImpactSolution RAG
HallucinationsInformations faussesAncrer dans des faits récupérés
Limite de connaissanceRéponses obsolètesConnecter à des données fraîches
Pas de données privéesNe peut pas répondre aux requêtes internesIndexer les documents de l'entreprise
Limites de tokensNe peut pas traiter de grands ensembles de donnéesRécupération intelligente

Points clés à retenir​

  1. Les LLM ont des limitations fondamentales qui empêchent leur adoption en entreprise
  2. RAG résout les plus gros problèmes : hallucinations, limite de connaissance, données privées, échelle
  3. RAG est rentable comparé à l'ajustement fin
  4. RAG n'est pas parfait mais apporte des améliorations significatives
  5. Comprendre les limitations aide à concevoir de meilleurs systèmes

Prochaines étapes​

Continuez vers Chapitre 3 : Architecture RAG pour en savoir plus sur les trois phases de RAG.