Guide

Statut éditorial : En attente de relecture

Chunking : choisir une stratégie de découpage pour un RAG performant

Comparer découpage fixe, structurel, sémantique, parent-enfant et fenêtres pour améliorer retrieval, citations, coût et qualité.

Classification du contenu

Types

  • RAG et recherche vectorielle
Niveau
Intermédiaire
Publié le
24 août 2026
Dernière relecture
Relecture en attente
Prochaine vérification
24 octobre 2026

Pourquoi ce sujet est important

Le chunk est l’unité indexée et récupérée. Trop petit, il perd le contexte ; trop grand, il dilue le signal et augmente le coût. La bonne stratégie dépend de la structure des documents et des questions, pas d’un nombre universel de tokens.

Établir une baseline fixe

Commencez avec une taille en tokens et un overlap modestes pour mesurer. Cette baseline est simple et reproductible, mais peut couper titres, listes et phrases. Elle sert de comparaison avant d’ajouter des règles complexes.

Découper selon la structure

Utilisez titres, paragraphes, sections, cellules de tableau, fonctions ou classes. Conservez le chemin hiérarchique et le titre dans le chunk. Cette méthode améliore cohérence et citations lorsque les documents ont une structure fiable.

Utiliser parent-enfant

Indexez de petits passages précis, puis renvoyez un parent plus large au LLM. Le retrieval conserve la précision et la génération reçoit le contexte. Contrôlez cependant les doublons lorsque plusieurs enfants renvoient le même parent.

Fenêtres et voisinage

Après avoir retrouvé une phrase ou un petit chunk, ajoutez les voisins ou une fenêtre autour. Cette approche convient aux transcriptions et longs textes linéaires. Fixez des limites pour ne pas remplir le contexte avec des passages redondants.

Chunking sémantique

Des ruptures d’embedding ou un LLM peuvent détecter les changements de sujet. Le coût et la variabilité augmentent. Comparez cette méthode à la structure native ; elle n’est utile que si elle améliore les métriques sur un corpus réel.

Adapter au type de contenu

Pour le code, conservez symboles et dépendances. Pour un tableau, gardez en-têtes et unités. Pour une FAQ, une paire question-réponse peut être un chunk. Pour un PDF, ne traversez pas colonnes ou légendes.

Évaluer le chunking

Mesurez recall@k du passage contenant la réponse, précision, redondance, nombre de tokens remis au LLM, citations et qualité finale. Analysez les questions dont la réponse traverse deux sections. Le meilleur chunking peut varier selon le type de document.

Exemple concret

Une documentation API est d’abord découpée tous les 500 tokens. Les réponses mélangent plusieurs endpoints. Un découpage par endpoint indexe signatures et descriptions, puis renvoie la section complète comme parent. Le rappel progresse et le contexte moyen diminue.

Les erreurs fréquentes

Checklist

FAQ

Quelle taille de chunk choisir ?

Commencez avec une baseline, puis optimisez sur vos questions. La taille dépend du modèle, du corpus et de la granularité recherchée.

Faut-il toujours un overlap ?

Non. La structure ou le parent-enfant peuvent préserver le contexte avec moins de duplication.

Le chunking sémantique est-il meilleur ?

Pas systématiquement. Il ajoute coût et variabilité ; mesurez le gain.

Comment changer de stratégie ?

Versionnez-la, réindexez en parallèle et rejouez les évaluations avant bascule.

Découpage récursif reproductible

~~~python from langchain_text_splitters import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter( chunk_size=900, chunk_overlap=120, separators=["\n## ", "\n### ", "\n\n", "\n", ". ", " "], length_function=len, ) chunks = splitter.create_documents( [markdown], metadatas=[{"source_id": "manual-auth", "version": "2026-08"}], ) for index, chunk in enumerate(chunks): chunk.metadata["chunk_index"] = index ~~~

Conservez titre, section, source, version et droits dans chaque chunk. Ne choisissez pas la taille uniquement en tokens : évaluez si le passage contient l’information nécessaire sans bruit excessif. Testez plusieurs configurations sur un jeu de questions et mesurez rappel, précision du contexte, latence et nombre de tokens. L’overlap réduit les coupures, mais multiplie stockage et doublons.

Sources utilisées