Hierarchical Indexing (RAG)
iaDéfinition
Le Hierarchical Indexing (indexation hierarchique) est une technique d'indexation avancee pour les systemes RAG qui cree deux niveaux de representation pour les documents : des resumes de haut niveau (document summaries) et des chunks detailles (paragraph chunks). Le retrieval s'effectue en deux etapes : d'abord identifier les documents pertinents via leurs resumes, puis recuperer les chunks specifiques dans ces documents. L'architecture typique : niveau 1 — chaque document est resume en 100-300 mots par un LLM, ce resume est encode en embedding et indexe dans un vecteurstore 'summaries'. Niveau 2 — le document est decoupes en chunks de 256-512 tokens avec overlap, indexes dans un vectorstore 'chunks'. Lors d'une requete, le retrieval commence par les summaries (faible bruit, haute pertinence semantique de document), puis recupere les chunks des Top-K documents identifies. L'avantage du Hierarchical Indexing sur le chunking plat : pour les documents longs et thematiquement varies (rapports annuels, manuels techniques, monographies), le chunking direct peut recuperer des chunks de documents non pertinents qui ont une similarite cosinus elevee avec la requete sur des mots-cles, mais pas sur le theme global. Les summaries capturent mieux la pertinence semantique au niveau document. LlamaIndex supporte nativement le Hierarchical Indexing via les structures DocumentSummaryIndex et les noeuds parent-enfant (Parent Document Retriever dans LangChain). La structure parent-enfant est une variante ou de grands chunks parents sont indexés pour le retrieval, mais de petits chunks enfants sont retournes au LLM pour le contexte — meilleur equilibre recall/precision. Des etudes montrent que le Hierarchical Indexing ameliore les pipelines RAG de 10-20% sur des corpus de documents longs (> 20 pages). Le cout additionnel est le temps de generation des summaries a l'indexation (une fois) et la latence supplementaire de la premiere etape de retrieval (negligeable).
Implementation avec LlamaIndex
from llama_index.core import DocumentSummaryIndex, SimpleDirectoryReader
from llama_index.core.node_parser import SentenceSplitter
# Charger les documents
documents = SimpleDirectoryReader('./docs/').load_data()
# Creer l'index hierarchique avec resumes
summary_index = DocumentSummaryIndex.from_documents(
documents,
transformations=[SentenceSplitter(chunk_size=512, chunk_overlap=64)],
summary_query='Resume ce document en 3 phrases cles.',
show_progress=True
)
# Retrieval hierarchique
query_engine = summary_index.as_query_engine(
response_mode='tree_summarize',
use_async=True
)
response = query_engine.query('Quels sont les risques cyber majeurs en 2026 ?')
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