File size: 5,745 Bytes
ee54756 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | # Evaluación eval-v3 — rediseño con demostrador especializado local
> 2026-10-15. Rediseño: `docs/PLAN_REDISENO_PROVER.md` (DECISIONS #110-#115).
> Problemas: las rondas 1-2 de eval-v1 (30 problemas), **pareados** con eval-v2 (`docs/eval_report_v2.md`).
>
> Datos:
> - `data/eval/runs/eval-v3/` (resultados y trazas);
> - `data/eval/results/eval_v3_analysis.json` (se regenera con `data/eval/results/eval_v3_analysis.py`);
> - `eval_v3_round{1,2}_check.json` (guardia de costo).
---
## 1. Resultado
| Sistema | Resueltos /30 | IC95 Wilson | Dificultad 1 / 2 / 3 | Costo de API |
|---|---|---|---|---|
| **v3 `full`** (rediseño completo) | **21** | 0.52-0.83 | 13/16 · **6/10** · **2/4** | US$0.061 |
| v3 `baseline_prover` (sólo el demostrador local) | 21 | 0.52-0.83 | 13/16 · 6/10 · 2/4 | **US$0** |
| v2 `full` (sistema de anoche) | 8 | 0.14-0.44 | 8/16 · 0/10 · 0/4 | US$0.108 |
| v2 `no_rag` | 9 | 0.17-0.48 | 8/16 · 1/10 · 0/4 | US$0.096 |
| v2 `baseline_auto` (tácticas de Lean, sin LLM) | 7 | 0.12-0.41 | 7/16 · 0/10 · 0/4 | US$0 |
Comparaciones pareadas (McNemar exacto):
| A | B | sólo A | sólo B | p |
|---|---|---|---|---|
| v3 `full` | v2 `full` | **13** | **0** | **0.0002** |
| v3 `full` | v2 `no_rag` | 12 | 0 | 0.0005 |
| v3 `baseline_prover` | v2 `baseline_auto` | 14 | 0 | 0.0001 |
| v3 `full` | v3 `baseline_prover` | 0 | 0 | 1.0 |
**El rediseño resuelve 2.6 veces más problemas (21 frente a 8) y no pierde ninguno de los que resolvía el sistema anterior.** Es la primera diferencia estadísticamente significativa del proyecto. La mejora está en los problemas difíciles: de 0/14 a 8/14 en dificultad 2-3, incluidos `imo_1964_p1_1` e `imo_1965_p1`.
Todas las pruebas pasaron el verificador completo:
- el enunciado del problema intacto: el modelo sólo aporta las tácticas;
- el validador de tácticas;
- el kernel;
- la auditoría de axiomas (sólo `propext`, `Classical.choice`, `Quot.sound`).
Se revisaron a mano las dos de IMO: son demostraciones reales, paso a paso.
## 2. Qué componente aporta qué (respuesta honesta)
- **El demostrador hace todo el trabajo:** los 21 problemas los resolvió la etapa 0 (Goedel-Prover-V2-8B sobre el teorema completo), sin ninguna llamada a la API.
- **Los agentes por API no añadieron ningún problema.** Corrieron en los 9 que la etapa 0 no resolvió (3.4 llamadas de media en `full`), gastaron US$0.06 y no resolvieron ninguno.
- **El RAG no añadió ningún problema.**
- Por diseño, el canal nuevo (sugerir nombres que existen en el Mathlib fijado cuando el demostrador usa uno viejo) sólo actúa en la autocorrección.
- Actuó en 2 correcciones, con 8 nombres citados, y el kernel no usó ninguno.
- Las premisas por goal (Fase 3) no llegan a usarse, porque la etapa 0 resuelve antes de que haya goals.
- **En resumen:** `full` = `baseline_prover` en los 30 problemas. Con este demostrador, lo que decide el resultado es el modelo especializado más la verificación formal. La orquestación de agentes y el RAG, en su forma actual, no suman sobre él en este conjunto.
## 3. Costo y tiempo
- **API:** US$0.0129 (ronda 1) + US$0.0477 (ronda 2) = **US$0.061**. Todo fue a los agentes sobre los problemas no resueltos. Saldo de la key: **US$0.059**.
- **GPU** (RX 9060 XT, Q6_K, ~70 tok/s agregados):
- unas 4 horas para las dos configuraciones;
- media de 7.5 muestras por problema en `full`, la mayoría reutilizadas de la caché de `baseline_prover`;
- los problemas fáciles salen en el primer lote de 4 muestras (1-3 min); los difíciles agotan las 8 y la corrección (~12 min).
## 4. Validez y limitaciones
- **Contaminación posible.** miniF2F es el benchmark público con el que se evalúa (y se compara) Goedel-Prover-V2. Los enunciados son de miniF2F-v2 (corregidos), pero el modelo puede haber visto problemas parecidos en su entrenamiento sintético. Esta evaluación mide el sistema con este demostrador, no la capacidad de generalizar a problemas nuevos. Para eso haría falta un conjunto fuera de miniF2F, como el PDF propio o PutnamBench.
- **n = 30**, un subconjunto (rondas 1-2) del conjunto de 60. Las rondas 3-4 no se evaluaron con el rediseño por saldo.
- **Comparación entre sistemas, no entre modelos con igual presupuesto.** v2 usaba ~8 llamadas a un modelo general por API; v3 usa hasta 8 muestras locales de un modelo especializado, más los agentes como respaldo.
- **El modelo se entrenó con Lean 4.9:** las pruebas que usan nombres renombrados en Mathlib v4.28 fallan. Las 9 no resueltas incluyen problemas donde la autocorrección no logró arreglarlo.
- **Muestreo con semillas fijas y caché:** `full` y `baseline_prover` comparten las mismas muestras de la etapa 0, así que su empate en la etapa 0 es por construcción. Sí son comparables en lo que añaden después.
## 5. Qué sigue (propuestas, sin ejecutar)
1. **Más muestras donde importa.** Pasar los 9 problemas no resueltos a pass@32 en la GPU (0 API, ~2-3 h). Es lo más barato y probablemente lo que más suba el resultado.
2. **Que los agentes y el RAG aporten algo sobre el demostrador.** Hoy sólo entran cuando la etapa 0 falla, y lo hacen con el modelo general.
- Variante a probar: el plan y el boceto del Planificador, con sus lemas recuperados, **como contexto del prompt del demostrador** (estilo Draft-Sketch-Prove), en vez de un flujo aparte.
- Es la forma en que el RAG puede influir de verdad en la prueba, y se mide igual: `full` frente a `baseline_prover`.
3. **Conjunto fuera de miniF2F** para medir sin el riesgo de contaminación.
4. **Ahorro:** desactivar el respaldo por API en los problemas que el demostrador no resolvió con 8 muestras. En eval-v3 costó US$0.06 y no aportó ningún problema.
|