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
- copier une taille universelle trouvée en ligne
- utiliser un overlap très élevé
- perdre titres et hiérarchie
- mélanger tableaux et paragraphes
- changer chunking et embedding en même temps
- évaluer uniquement la réponse du LLM
Checklist
- [ ] Baseline fixe mesurée
- [ ] Structure documentaire exploitée
- [ ] Titres et provenance conservés
- [ ] Tokens de contexte suivis
- [ ] Questions multi-sections incluses
- [ ] Redondance mesurée
- [ ] Migration et réindexation prévues
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.