Chunking à Taille Fixe : Rapide et Fiable
Maîtrisez les bases : implémentez le chunking à taille fixe avec chevauchements pour des performances RAG cohérentes et prévisibles.
- Auteur
- Équipe de Recherche Ailog
- Date de publication
- Temps de lecture
- 7 min de lecture
- Niveau
- beginner
- Étape du pipeline RAG
- Chunking
Pourquoi la taille fixe ?
Avantages : • ✅ Simple à implémenter • ✅ Nombre de chunks prévisible • ✅ Rapide (pas d'IA nécessaire) • ✅ Fonctionne pour tout contenu
Inconvénients : • ❌ Coupe les phrases • ❌ Ignore la sémantique
Implémentation de base
``python def fixed_chunk(text, chunk_size=500, overlap=50): chunks = [] start = 0
while start < len(text): end = start + chunk_size chunk = text[start:end] chunks.append(chunk) start += chunk_size - overlap Avancer avec chevauchement
return chunks `
Avec limites de phrases
Mieux : ne pas couper en milieu de phrase :
`python import re
def chunk_by_tokens(text, chunk_size=500, overlap=50): Diviser en phrases sentences = re.split(r'(?<=[.!?])\s+', text)
chunks = [] current_chunk = [] current_size = 0
for sentence in sentences: sentence_size = len(sentence)
if current_size + sentence_size > chunk_size and current_chunk: Sauvegarder le chunk actuel chunks.append(' '.join(current_chunk))
Commencer un nouveau chunk avec chevauchement overlap_sentences = current_chunk[-2:] if len(current_chunk) > 1 else current_chunk current_chunk = overlap_sentences + [sentence] current_size = sum(len(s) for s in current_chunk) else: current_chunk.append(sentence) current_size += sentence_size
if current_chunk: chunks.append(' '.join(current_chunk))
return chunks `
Implémentation LangChain
`python from langchain.text_splitter import RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter( chunk_size=500, chunk_overlap=50, separators=["\n\n", "\n", ". ", " ", ""] )
chunks = splitter.split_text(long_text) ``
Choisir la taille de chunk
Petits chunks (200-300) : • Récupération plus précise • Mais moins de contexte
Chunks moyens (500-800) : • Équilibré (recommandé)
Grands chunks (1000+) : • Plus de contexte • Mais récupération bruyante
Testez sur vos données !
Le chunking à taille fixe est éprouvé. Commencez ici, optimisez plus tard si nécessaire.