Proyectos / Chunking Ablation Suite

Chunking Ablation Suite

Ablaciones de fragmentación fija, estructural y semántica con el mismo MiniLM. Mide evidencia completa recuperada y costo de indexación en código, tablas y referencias cruzadas.

Autor: · Python 3.11.13 · Licencia: MIT

Ficha publicada: · Ficha actualizada:

Repositorio · Evidencia original · Release v0.1.0

Problema y utilidad para agentes

Encontrar el documento correcto sirve de poco si el fragmento pierde una condición, una celda o el destino de una referencia. Esta suite mide si el texto recuperado conserva toda la evidencia necesaria.

Permite elegir segmentación sobre un corpus concreto y revisar sus fallos. Las decisiones quedan respaldadas por offsets, fragmentos, vectores y rankings guardados.

Arquitectura

  1. Corpus con evidencia localizada. Dieciocho documentos originales de ficción incluyen código, tablas y referencias cruzadas. Las consultas declaran los spans requeridos y separan documentos de desarrollo y evaluación.
  2. Ocho configuraciones congeladas. Compara ventanas fijas, bloques por estructura y límites semánticos de MiniLM. Varía método, presupuesto de palabras, overlap o umbral manteniendo el embedding y el retrieval top-3.
  3. Replay de la recuperación. Reconstruye límites con embeddings de bloques guardados, rankings con vectores de fragmentos y consultas, cobertura de evidencia y costos de los índices.

Qué demuestra

  • Diseño de ablaciones con una variable por contraste y resultados por tipo de documento.
  • Separación entre recuperar un documento y recuperar evidencia completa.
  • Publicación de resultados nulos y fallos de segmentación con datos inspeccionables.

Resultados publicados

Medición local con MiniLM en Intel Xeon W-3223 y dos hilos de CPU. Hay 18 consultas de desarrollo y 36 de evaluación; todos los índices contienen los mismos 18 documentos.

Complete@3 exige que la unión de los tres primeros fragmentos cubra todos los spans requeridos. No mide respuestas generadas. Los tamaños 64 y 96 son presupuestos de palabras, no tokens del modelo.

Evidencia completa en evaluación

Resumen de evaluación JSON ·
ConfiguraciónComplete@3Fragmentos del índice
fixed-6421 / 3678
fixed-9631 / 3654
structure-6412 / 3696
structure-9633 / 3684
semantic-6412 / 3696
semantic-9612 / 3668
fixed-64-overlap1632 / 3690
semantic-64-threshold0712 / 3696

Structure-96 recuperó evidencia completa en 33 de 36 consultas. Las configuraciones semánticas lo hicieron en 12. A 64 palabras, cambiar el umbral no cambia ningún límite porque ningún par de bloques cabe en el presupuesto; esa ablación no informa sensibilidad al umbral.

El análisis desglosa recall de spans, completitud, bytes de texto, payload vectorial y tiempo de construcción por código, tablas y referencias cruzadas. Los tiempos son observaciones secuenciales de un único equipo. Resultados y análisis.

Reproducir

El replay funciona con Python 3.11 y biblioteca estándar. Repetir la inferencia requiere el modelo MiniLM fijado y los paquetes del entorno publicado.

Los comandos usan shell POSIX. Reemplazá MODEL_PATH por la ruta que imprime download y elegí directorios nuevos. Ejecutá desarrollo antes de evaluación y evitá otras tareas intensivas durante la medición.

Revisar la evidencia guardada

git clone https://github.com/lucioduran/chunking-ablation-suite.git
cd chunking-ablation-suite
git checkout 12193ba09bb1081a05d3ea7a043748089aa2330b
python -m chunking_suite verify --report results/dev/report.json
python -m chunking_suite verify --report results/eval/report.json

Repetir la medición local

python -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements-local.lock
python -m chunking_suite download
# Replace MODEL_PATH with the snapshot path printed by download.
HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 OMP_NUM_THREADS=2 MKL_NUM_THREADS=2 OPENBLAS_NUM_THREADS=2 python -m chunking_suite run --model-path MODEL_PATH --split dev --output build/reproduced-dev
HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 OMP_NUM_THREADS=2 MKL_NUM_THREADS=2 OPENBLAS_NUM_THREADS=2 python -m chunking_suite run --model-path MODEL_PATH --split eval --output build/reproduced-eval
python -m chunking_suite verify --report build/reproduced-eval/report.json

Alcance y límites

  • Corpus sintético conocido por el autor, con plantillas compartidas entre particiones y sin revisión humana independiente.
  • La preservación de bloques atómicos difiere entre métodos. Compararlos no aísla por sí solo el efecto causal de los embeddings semánticos.
  • No genera respuestas, sigue enlaces ni evalúa preguntas sin respuesta. El payload no representa memoria total de una base vectorial.

Fuentes y revisión

Los valores de esta ficha provienen del informe enlazado. No son una medición en vivo. El informe conserva la revisión ejecutada; la revisión consultada incluye la publicación posterior de ese informe.