Reranker Budget Router
Router de reranking con presupuestos estrictos de pares, políticas ajustadas en desarrollo y cross-encoder MiniLM local. Publica calidad, latencia, decisiones y errores.
Problema y utilidad para agentes
Reordenar todos los candidatos consume cómputo incluso cuando BM25 ya resolvió la consulta. Saltarse el reranker también puede perder una mejora. La decisión necesita una comparación medida y casos de error visibles.
El proyecto permite inspeccionar cuánto cómputo asigna una política a cada consulta y qué calidad deja de obtener. Separa el presupuesto de pares de los dólares, la energía y una garantía de latencia.
Arquitectura
- Recuperación y señales. BM25 genera candidatos. La diferencia entre scores y la cobertura de términos alimentan un router que elige profundidad 0, 4 o 12 bajo un presupuesto duro.
- Políticas congeladas. Seis combinaciones de presupuesto y penalización ajustan umbrales únicamente sobre desarrollo. Un MiniLM cross-encoder fijado reordena el prefijo elegido y conserva el resto.
- Decisiones auditables. Trazas por consulta, scores contrafactuales, políticas y hashes permiten recalcular métricas, identificar cómputo evitable y localizar pérdidas de calidad.
Qué demuestra
- Asignación explícita de presupuesto de inferencia y separación entre ajuste y evaluación.
- Medición conjunta de calidad, latencia y pares procesados, con dos baselines.
- Análisis de un resultado negativo: reconocer cuándo un router añade costo y no captura una mejora.
Resultados publicados
Corpus de 24 documentos ficticios, 12 consultas de desarrollo y 26 de evaluación, incluidas dos sin respuesta. MiniLM se ejecutó en Intel Xeon W-3223 con dos hilos y tres repeticiones seriales por política.
La latencia caliente incluye recuperación, señales, routing, tokenización e inferencia. Las preguntas sin respuesta puntúan cero. Son 26 unidades de calidad por política; repetir los tiempos no crea 78 consultas independientes.
Calidad y costo en evaluación
| Política | nDCG@3 | Pares medios | Media (ms) | p95 (ms) |
|---|---|---|---|---|
| always-12 | 0.9089 | 12.00 | 101.321 | 126.578 |
| never | 0.8947 | 0.00 | 0.108 | 0.152 |
| router-b12-p0 | 0.8947 | 0.00 | 0.114 | 0.176 |
| router-b12-p0.01 | 0.8947 | 0.00 | 0.112 | 0.154 |
| router-b12-p0.04 | 0.8947 | 0.00 | 0.109 | 0.139 |
| router-b4-p0 | 0.8947 | 0.00 | 0.160 | 0.201 |
| router-b4-p0.01 | 0.8947 | 0.00 | 0.127 | 0.194 |
| router-b4-p0.04 | 0.8947 | 0.00 | 0.116 | 0.152 |
Las seis políticas aprendidas omitieron todo reranking. Obtuvieron la calidad de never y agregaron overhead. El baseline always-12 mejoró eval-iris-1 y alcanzó 0,9089 nDCG@3 frente a 0,8947. Esta evaluación no demuestra una ventaja del router.
Los seis errores de pérdida de calidad son la misma consulta contada para seis políticas. La frontera observada contiene always-12 y never. Diferencias mínimas entre políticas con decisiones idénticas son ruido de temporización. Resultados y análisis.
Reproducir
El replay y el comando route usan Python 3.11 o posterior sin dependencias de modelos. route muestra señales y candidatos sin ejecutar inferencia. La reproducción completa descarga un cross-encoder público.
Los comandos de entorno usan shell POSIX. reproduce.py adquiere un lock exclusivo, ejecuta ambas particiones y verifica la evidencia. La salida debe ser nueva; dev y eval permanecen como carpetas hermanas para comprobar el origen de las políticas.
Revisar la evidencia guardada
git clone https://github.com/lucioduran/reranker-budget-router.git
cd reranker-budget-router
git checkout b34802875068f89c8fb3550f53680d60afdae513
python -m budget_router verify --output results/dev
python -m budget_router verify --output results/eval
python -m budget_router route "Where can I restore a deleted notebook?" --budget 4Repetir la medición local
python3.11 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements-models.txt -r requirements-dev.txt
python -m budget_router download
python scripts/reproduce.py --output build/reproductionAlcance y límites
- Dataset pequeño, sintético y conocido por el autor. Los grupos de consultas son correlacionados y no tienen validación humana de relevancia.
- El presupuesto limita pares, no tiempo máximo. El modelo no recupera documentos fuera del prefijo; usa truncación a 256 tokens.
- Tres repeticiones calientes en una CPU no caracterizan concurrencia, energía, costo monetario ni percentiles estables en producción.
Fuentes y revisión
Las cifras provienen del resumen, las trazas y el análisis incluidos en v0.1.0. Los metadatos identifican la revisión ejecutada y el entorno; no registran una hora de ejecución. La fecha de release se muestra por separado.
- Revisión consultada:
b34802875068f89c8fb3550f53680d60afdae513 - Revisión registrada por el experimento:
09ac402ba70b1456e4e49dfa3d3fc30de18d56d3 - Release publicada: v0.1.0 ·
- SHA-256 del corpus:
ecf0e3d23dbee38f61aad545e67d7ad3e81195e39659a4619b7035babb5938e6