Sliding Window Chunking
iaDéfinition
Le Sliding Window Chunking est une technique de segmentation de documents pour les pipelines RAG qui decoupe le texte en chunks avec une zone de chevauchement (overlap) entre les chunks consecutifs. Plutot qu'un decoupage strict en blocs non-chevauchants (qui peut couper une phrase ou une idee au milieu), le sliding window crée un overlap de 10-20% entre les chunks adjacents, preservant le contexte aux frontieres. Les parametres cles du Sliding Window Chunking : (1) chunk_size — le nombre de caracteres ou tokens par chunk (256, 512, 1024 tokens sont courants), (2) chunk_overlap — la zone de chevauchement entre chunks consecutifs (typiquement 10-20% du chunk_size). Un chunk_size de 512 tokens avec overlap de 64 tokens donne des chunks de 512 avec 64 tokens partages avec le chunk precedent et le chunk suivant. L'intuition du chevauchement : une phrase importante peut commencer a la fin d'un chunk et continuer au debut du suivant. Sans overlap, la phrase serait coupée et aucun des deux chunks ne contiendrait l'information complete. Avec overlap, les deux chunks contiendraient la phrase complete, garantissant qu'un retrieval qui trouve l'un ou l'autre des chunks aura acces au contexte complet. Les alternatives au Sliding Window Chunking : (1) Semantic chunking — decouper selon la structure semantique (paragraphes, sections, changements de theme) plutot que taille fixe, (2) Sentence-level chunking — un chunk = une phrase ou un groupe de phrases coherentes, (3) Recursive character text splitting — essayer de decouper selon des separateurs hierarchiques (double newline, single newline, espace). Le choix optimal du chunk_size depend de l'application : 128-256 tokens pour les retrieval de faits precis (les embeddings de petits chunks sont plus specifiques), 512-1024 tokens pour les questions necessitant plus de contexte, et 1024-2048 tokens pour les analyses de documents ou la coherence du contexte est importante.
Implementation Sliding Window Chunking
from langchain_text_splitters import RecursiveCharacterTextSplitter
# Decoupage avec chevauchement
splitter = RecursiveCharacterTextSplitter(
chunk_size=512, # 512 tokens par chunk
chunk_overlap=64, # 64 tokens de chevauchement
length_function=len, # Ou: tiktoken_len pour tokens
separators=['\n\n', '\n', '. ', ' ', ''], # Priorite des coupures
is_separator_regex=False
)
chunks = splitter.split_text(document_text)
print(f'Nombre de chunks: {len(chunks)}')
print(f'Taille min/max: {min(len(c) for c in chunks)}/{max(len(c) for c in chunks)}')Benchmark chunk_size sur un corpus de documentation
| chunk_size | Context Precision | Latence retrieval |
|---|---|---|
| 128 tokens | 62% | 8ms |
| 256 tokens | 71% | 10ms |
| 512 tokens | 77% | 14ms |
| 1024 tokens | 74% | 22ms |
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h