Polydesk-logotype
Polydesk.ai — Header

RAG (Retrieval-Augmented Generation) : connecter l’IA a vos donnees

Definition rapide Le RAG (Retrieval-Augmented Generation) est une architecture qui enrichit les reponses d’un LLM en recuperant des informations pertinentes depuis une base de connaissances externe avant de generer sa reponse. Le modele ne s’appuie plus uniquement sur ses connaissances d’entrainement : il consulte vos documents en temps reel.
Fiche RAG
Categorie
Architecture IA / Pattern de conception
Composants
Embeddings + Vector Database + LLM
Objectif
Reduire les hallucinations, injecter des connaissances actualisees
Frameworks
LangChain, LlamaIndex, Haystack
Guide approfondi
Guide RAG

Qu’est-ce que le RAG exactement ?

Les LLM ont deux limites fondamentales : leurs connaissances s’arretent a la date de leur entrainement, et ils ne connaissent pas vos donnees privees (documents internes, base clients, procedures metier). Le RAG resout ces deux problemes.

Le principe est elegant : avant que le modele ne genere sa reponse, un systeme de recherche recupere les passages les plus pertinents de votre base documentaire et les injecte dans le prompt. Le modele genere ensuite sa reponse en s’appuyant sur ces informations contextuelles.

C’est comme donner a un expert un dossier de briefing avant de lui poser une question. Il ne repond pas de memoire : il repond en s’appuyant sur des sources concretes.

Architecture d’un systeme RAG

Phase 1 : Indexation (preparation des donnees)

Avant de pouvoir interroger vos documents, il faut les preparer :

Chargement. Vos documents (PDF, pages web, emails, bases de donnees, Notion, Confluence) sont extraits et convertis en texte brut.

Decoupage (chunking). Les documents sont decoupes en fragments de taille optimale, generalement entre 256 et 1024 tokens. Le decoupage peut etre par paragraphe, par section, par phrase ou par fenetre glissante avec chevauchement.

Vectorisation. Chaque fragment est transforme en un vecteur numerique (un embedding) par un modele specialise. Ce vecteur capture le sens semantique du texte.

Stockage. Les vecteurs sont indexes dans une base de donnees vectorielle (Pinecone, Weaviate, Qdrant, ChromaDB) qui permet des recherches par similarite ultrarapides.

Phase 2 : Requete (utilisation en temps reel)

Quand un utilisateur pose une question :

Vectorisation de la requete. La question de l’utilisateur est convertie en embedding avec le meme modele utilise pour les documents.

Recherche semantique. La base vectorielle identifie les K fragments les plus proches semantiquement de la question (top-k retrieval, generalement k = 3 a 10).

Augmentation du prompt. Les fragments recuperes sont injectes dans le prompt, avec une instruction de type « Reponds a la question en te basant uniquement sur le contexte fourni ».

Generation. Le LLM genere sa reponse en s’appuyant sur les fragments fournis, reduisant drastiquement le risque d’hallucination.

# Pipeline RAG simplifie avec LangChain
from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain.chains import RetrievalQA
from langchain_community.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter

# 1. Charger et decouper les documents
loader = PyPDFLoader("documentation.pdf")
docs = loader.load()
splitter = RecursiveCharacterTextSplitter(
    chunk_size=500, chunk_overlap=50
)
chunks = splitter.split_documents(docs)

# 2. Creer la base vectorielle
vectorstore = Chroma.from_documents(
    chunks, OpenAIEmbeddings(model="text-embedding-3-small")
)

# 3. Creer la chaine RAG
qa = RetrievalQA.from_chain_type(
    llm=ChatOpenAI(model="gpt-4o"),
    retriever=vectorstore.as_retriever(search_kwargs={"k": 5})
)

# 4. Interroger
reponse = qa.invoke("Quelle est la politique de retour ?")
print(reponse["result"])

Les strategies de chunking

Le decoupage des documents en chunks est l’etape la plus critique d’un pipeline RAG. Un mauvais chunking produit des resultats mediocres, quel que soit le LLM utilise.

StrategiePrincipeQuand l’utiliser
Taille fixeDecoupage tous les N tokens avec chevauchementDocuments homogenes, texte brut
Par paragrapheUn chunk = un paragrapheArticles, documentation structuree
Par sectionDecoupage sur les titres H1/H2/H3Documentation technique, manuels
SemantiqueRegroupement par similarite de sensTextes longs sans structure claire
Parent-ChildChunks enfants pour la recherche, chunks parents pour le contexteDocuments complexes necessitant un contexte large

La taille optimale des chunks depend de votre cas d’usage. Les chunks courts (128-256 tokens) sont plus precis mais manquent de contexte. Les chunks longs (512-1024 tokens) offrent plus de contexte mais peuvent contenir des informations non pertinentes. Le chevauchement (overlap) de 10 a 20 % entre chunks adjacents evite de couper des idees en plein milieu.

Techniques RAG avancees

La recherche semantique pure (embeddings) rate parfois des resultats que la recherche par mots-cles aurait trouves, et inversement. La recherche hybride combine les deux approches : recherche vectorielle pour la similarite semantique + BM25 pour la correspondance lexicale exacte. Les resultats sont fusionnes avec un algorithme de re-ranking.

Re-ranking

Apres la recherche initiale, un modele de re-ranking (comme Cohere Rerank ou un cross-encoder) reordonne les resultats en evaluant la pertinence de chaque chunk par rapport a la question originale. Cette etape supplementaire ameliore significativement la precision au prix d’une latence legerement accrue.

Transformation de la requete

Avant la recherche, la question de l’utilisateur peut etre transformee pour ameliorer la qualite des resultats. Les techniques incluent la decomposition en sous-questions (Multi-Query), la reformulation (HyDE : le modele genere une reponse hypothetique puis cherche des passages similaires), et l’expansion de requete.

Agentic RAG

Le RAG agentique utilise un agent IA qui decide dynamiquement quand et comment interroger la base de connaissances. Au lieu d’un pipeline lineaire, l’agent peut reformuler sa requete, interroger plusieurs sources, verifier la coherence des resultats et iterer jusqu’a obtenir une reponse satisfaisante.

Evaluer un systeme RAG

L’evaluation d’un RAG se fait sur deux axes : la qualite de la recherche (retrieval) et la qualite de la generation.

Metriques de retrieval : Recall@k (combien de documents pertinents sont retrouves dans le top-k ?), Precision@k (combien de documents du top-k sont effectivement pertinents ?), MRR (Mean Reciprocal Rank : a quelle position apparait le premier document pertinent ?).

Metriques de generation : Faithfulness (la reponse est-elle fidele aux sources recuperees ?), Relevance (la reponse repond-elle a la question ?), Hallucination rate (contient-elle des informations inventees ?).

Le framework RAGAS automatise ces evaluations et produit des scores standardises pour chaque composant du pipeline.

RAG vs Fine-tuning : quel choix ?

CritereRAGFine-tuning
Donnees dynamiquesIdeal (mise a jour instantanee)Re-entrainement requis
TracabiliteSources citablesPas de source identifiable
Cout initialInfra vectorielleCompute d’entrainement
LatencePlus elevee (recherche + generation)Plus faible (generation seule)
Style/formatDepend du promptAppris nativement
HallucinationReduite (si grounding strict)Possible

La meilleure approche combine souvent les deux : un modele fine-tune pour le style et le format + un pipeline RAG pour les connaissances actualisees.

FAQ

Le RAG elimine-t-il completement les hallucinations ?

Non, mais il les reduit considerablement. Un LLM peut encore halluciner meme avec des sources pertinentes : il peut mal interpreter un passage, melanger des informations de plusieurs chunks, ou inferer des conclusions non presentes dans les sources. Les garde-fous incluent l’instruction explicite « reponds uniquement a partir du contexte fourni » et la verification des citations. Le taux d’hallucination passe typiquement de 15-25 % (sans RAG) a 3-8 % (avec RAG bien configure).

Quelle taille de chunks choisir pour mon RAG ?

Le sweet spot se situe entre 256 et 512 tokens pour la plupart des cas d’usage. Pour des questions factuelles precises (FAQ, documentation technique), des chunks courts (128-256 tokens) fonctionnent mieux. Pour des questions complexes necessitant du contexte (analyses, rapports), des chunks plus longs (512-1024 tokens) avec chevauchement de 50-100 tokens sont preferables. Testez empiriquement sur votre dataset.

Quel modele d’embedding choisir ?

En 2026, les meilleurs modeles d’embedding pour le francais sont text-embedding-3-large d’OpenAI, Cohere embed-v3 (multilingue), et les modeles open source comme BGE-M3. Pour un bon rapport qualite/cout, text-embedding-3-small d’OpenAI est un choix solide. Verifiez les benchmarks MTEB pour les performances a jour sur les taches de retrieval en francais.

Peut-on faire du RAG sans base vectorielle ?

Oui. Pour des petits volumes (moins de 1 000 documents), une recherche BM25 classique (Elasticsearch, Meilisearch) peut suffire. Certaines architectures utilisent directement le context window des modeles a longue fenetre (Gemini 2 millions de tokens) pour ingerer l’ensemble des documents sans chunking ni vectorisation. Mais pour les volumes importants et la precision semantique, la base vectorielle reste l’approche standard.

Combien coute un systeme RAG en production ?

Les couts principaux sont : l’embedding des documents (ponctuel, quelques dollars pour des milliers de pages), la base vectorielle (Pinecone a partir de 70 $/mois, Qdrant Cloud a partir de 25 $/mois, ou solutions auto-hebergees gratuites comme ChromaDB), et les appels LLM (variables selon le modele et le volume). Un systeme RAG pour PME traitant 1 000 requetes par jour coute typiquement entre 100 et 500 $ par mois, tout compris.

Polydesk.ai — Footer