Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Sliding Window Chunking

ia

Dé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_sizeContext PrecisionLatence retrieval
128 tokens62%8ms
256 tokens71%10ms
512 tokens77%14ms
1024 tokens74%22ms

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis