Skip to main content

Estrategias de Chunking de Documentos

Metodología de descomposición de documentos masivos y bases de código en fragmentos informativamente autosuficientes (chunks) para la generación de vector embeddings y búsqueda precisa en sistemas RAG.

1. Visión general del concepto y problema sistémico

Los modelos de embedding (por ejemplo, text-embedding-3-large o bge-m3) tienen una longitud de ventana de entrada estrictamente limitada (de 512 a 8192 tokens). Aunque el modelo puede técnicamente aceptar un gran documento PDF en su totalidad, comprime toda la información en un único vector de dimensión fija (por ejemplo, 1536 números).

Sin un chunking granular:

  1. Dilución Semántica (Vector Dilution): Un vector de un documento de 50 páginas se vuelve tan general que pierde detalles específicos de funciones o configuraciones.
  2. Imposibilidad de muestreo preciso en RAG: El sistema de búsqueda extraerá todo el gigantesco documento en el contexto de un LLM generativo, agotando instantáneamente el presupuesto de tokens.
  3. 'Destrucción' de la estructura con un corte ingenuo: La división fija por número de caracteres (Character Splitting) rompe palabras por la mitad, separa el encabezado de la función de su implementación y destruye tablas.

Chunking es fundamental para la ingeniería RAG: transforma texto bruto monolítico en una colección de bloques semánticos interrelacionados e informativamente autosuficientes.

2. Taxonomía arquitectónica y modelo mental

Dependiendo de la estructura de datos, se distinguen cuatro niveles arquitectónicos de chunking:

  • 1. Chunking Fijo con Superposición (Fixed-Size Sliding Window): El enfoque más simple: el texto se corta en bloques de $N$ tokens con una superposición de $M$ tokens. Rápido, pero a menudo rompe los límites lógicos de los párrafos.
  • 2. Chunking Recursivo por Caracteres (Recursive Character Splitting): Enfoque jerárquico (estándar LangChain/LlamaIndex). El algoritmo intenta cortar el texto primero por doble salto de línea (\n\n), si el trozo es demasiado grande — por un solo salto (\n), luego por punto (. ) y solo en última instancia por espacio.
  • 3. Chunking Semántico (Semantic / Embedding-Distance Chunking): El texto se divide en oraciones individuales. Para cada una se genera un vector y se calcula la similitud coseno entre oraciones adyacentes. El límite del chunk se establece en puntos de cambio abrupto de semántica (cambio de tema).
  • 4. Chunking Sintáctico AST/Markdown (Structural Chunking): Considera el árbol sintáctico del documento: divide Markdown estrictamente por niveles de encabezados (#, ##, ###), manteniendo las migas de pan, y el código programático — por nodos de clases y funciones a través de Tree-sitter.

3. Pipeline técnico y mecánica interna

El pipeline de chunking profesional consta de 4 etapas:

  1. Document Ingestion & Pre-cleaning (Ingesta de Documentos y Pre-limpieza): Eliminación de caracteres especiales invisibles, unificación de saltos de línea (\r\n -> \n) y normalización de codificación Unicode (NFC).
  2. Boundary Detection (Detección de Límites): El parser construye un árbol sintáctico (AST) o encuentra puntos seguros de corte (secciones de Markdown, líneas vacías entre funciones).
  3. Window Formatting & Overlap Calculation (Formateo de Ventanas y Cálculo de Superposición): El texto se agrupa en bloques de 500–700 tokens. Se añade un buffer de superposición (10–15%) al inicio de cada chunk siguiente.
  4. Metadata Enrichment & Context Injection (Enriquecimiento de Metadatos e Inyección de Contexto): A cada chunk se le añade un prefijo con metadatos: [File: api/auth.ts | Class: AuthService | Method: validateToken] Esto garantiza que el vector del fragmento se encuentre incluso con una consulta donde el nombre del método no se menciona en su cuerpo.

4. Escenarios prácticos de ingeniería en producción

01. Indexación de la base de código del repositorio a través de Tree-sitter

Cada archivo TypeScript se analiza en un árbol sintáctico. Se forma un chunk separado para cada interfaz exportada y cada función. Si una función ocupa 20 líneas, se convierte en un chunk autónomo junto con el comentario JSDoc y la lista de tipos importados.

02. Procesamiento de tablas complejas e informes financieros

El corte habitual rompe las filas de la tabla, despojando a los números de su sentido. El chunking profesional convierte cada fila de la tabla en una línea de texto autosuficiente: "En 2024, los ingresos de la división Cloud fueron de $35B, un 15% más que en 2023", formando vectores con alta precisión de búsqueda.

03. Parsing de documentación de API (OpenAPI / Swagger)

Cada ruta (por ejemplo, POST /v1/payments) se destaca en un chunk separado que contiene la ruta, el método HTTP, la descripción de los parámetros, un ejemplo de respuesta y códigos de error, lo que permite al agente generar código cliente sin errores.

5. Errores comunes, trampas y seguridad

  • Problema de 'pronombres colgantes' (Dangling Pronouns): Si la oración "Esta función requiere derechos de administrador" cae en el chunk 2, y el nombre de la función queda en el chunk 1, el modelo no podrá responder a la consulta. Siempre use metadatos con enriquecimiento del contexto padre (Parent Document Retrieval).
  • Inflación de la base de datos vectorial por exceso de Overlap: Una superposición superior al 25% conduce a la duplicación de información en la base de datos, incrementa el costo de indexación y sobrecarga fragmentos idénticos en los resultados principales.
  • Pérdida de contexto estructural (Loss of Lineage): Un chunk sin la indicación del nombre del archivo y el número de línea se convierte en ruido anónimo, dificultando la generación de referencias precisas en las respuestas del agente.
/ Preguntas frecuentesSchema.org FAQPage

FAQ: Estrategias de Chunking de Documentos

Chunks pequeños (100–300 tokens) proporcionan una búsqueda vectorial muy precisa, pero pueden perder el contexto de toda la idea. Chunks grandes (1000–2000 tokens) mantienen la imagen completa, sin embargo, sus embeddings se vuelven 'borrosos', lo que reduce la similitud semántica con una consulta específica. El estándar de oro para textos técnicos es de 400–800 tokens.
/ Enlaces internos
Todos los términos