PAMPAr — Plan de Evolución
Plan aprobado: Option B — "Staged Physics" Budget total: $300-500 USD Modelo: PamparV3, 108.3M params, vocab 48K
Objetivo
Transformar PamparV3 de un modelo que solo conoce patrones Python (38% eval) a un motor de razonamiento multi-lenguaje que usa documentación de referencia para resolver problemas en cualquier dominio.
Métricas target
| Métrica | Actual | Target |
|---|---|---|
| Python eval | 6/16 (38%) | 70%+ |
| Multi-language | 0% | 50%+ |
| Doc consultation (RAG) | 0% | 60%+ |
| Debugging | 0% | 50%+ |
Fase 1 — Continual Pretrain: "Textbook Physics"
Objetivo: inyectar los axiomas fundamentales de razonamiento con referencia.
Datos (~540K-640K tokens)
6 pilares de axiomas, cada uno con ~90K-100K tokens de texto tipo textbook:
| Pilar | Contenido | Fuente |
|---|---|---|
| Lógica y razonamiento | Proposiciones, inferencia, truth tables, deducción | Generado + Wikipedia |
| Estructuras de datos | Arrays, trees, graphs, hashmaps — cross-language | Generado + docs oficiales |
| Patrones de código | Design patterns, idioms en Python/JS/Rust/C | Generado + libros open |
| Comprensión de docs | Cómo leer una API reference, man page, docstring | MDN, Python docs, Rust Book |
| Debugging | Stack traces, error messages, bisección, logging | Generado + StackOverflow curado |
| Multi-language syntax | Equivalencias Python↔JS↔Rust↔C↔Bash↔SQL | Generado + Rosetta Code |
Formato
<textbook>
## Capítulo: [tema]
[Explicación clara del concepto]
### Ejemplo
[Código con comentarios]
### Ejercicio resuelto
[Problema → razonamiento step-by-step → solución]
</textbook>
Costo estimado: $30-60
- Distilación desde GPT-4o/Claude para generar textbooks
- ~6 scripts de generación, uno por pilar
- Validación manual de quality (sampling 5%)
Hardware
- Generación de datos: API calls (local)
- Continual pretrain: RunPod A100 40GB (~2-4 horas)
Fase 2 — SFT: "Chain-of-Thought con Referencia"
Objetivo: enseñar al modelo a usar documentación de referencia para resolver problemas.
Datos (~20K ejemplos)
| Categoría | Ejemplos | Descripción |
|---|---|---|
| Python + ref | 5K | Problemas con snippet de docs como contexto |
| JavaScript + ref | 3K | DOM, Node.js, ES6+ con MDN como referencia |
| Rust + ref | 2K | Ownership, traits, lifetimes con Rust Book |
| SQL + ref | 2K | Queries con schema como referencia |
| Bash/CLI + ref | 1K | Comandos con man pages como referencia |
| Debugging | 3K | Stack traces → diagnóstico → fix |
| Cross-language | 2K | "Traducir" lógica entre lenguajes |
| RAG-grounded | 2K | Preguntas que requieren buscar en docs primero |
Formato SFT
{
"instruction": "[PROBLEMA] Implementar un servidor HTTP básico",
"reference": "[REFERENCIA] Fragmento de docs de http.server de Python...",
"reasoning": "[RAZONAMIENTO] 1. Necesito importar http.server\n2. Crear handler...\n3. Bind al puerto...",
"output": "[SOLUCIÓN] import http.server\n..."
}
Costo estimado: $110-150
- Distilación masiva desde GPT-4o/Claude
- 20K ejemplos × ~$0.006/ejemplo promedio
- Quality filter: score > 0.7 de auto-evaluación
Hardware
- Generación de datos: API calls (local)
- SFT: RunPod A100 40GB (~4-8 horas)
Fase 3 — Corrección: "GhidraProbe + NeuroTrainer"
Objetivo: corregir routing y pesos usando diagnóstico local.
Proceso
- Correr
eval_v3.pypara identificar categorías débiles - GhidraProbe analiza activaciones en ejemplos fallidos
- NeuroTrainer aplica correcciones targeted:
- LLAVES: ajustar reglas INT8 para tokens multi-language
- Routing: corregir
terr_actsdonde el Tálamo asigna mal - Pesos: mini-SFT de 50-100 steps en categorías fallidas
Costo: $0
- 100% local en GTX 1650
- ~2 horas por ronda de corrección
- 3-5 rondas estimadas
Timeline estimado
| Fase | Duración | Costo | Output |
|---|---|---|---|
| Fase 1 — Pretrain data | 1-2 semanas | $30-60 | ~600K tokens textbook |
| Fase 1 — Training | 1 día RunPod | incluido | Checkpoint pretrained |
| Fase 2 — SFT data | 2-3 semanas | $110-150 | ~20K SFT examples |
| Fase 2 — Training | 1 día RunPod | incluido | Checkpoint SFT |
| Fase 3 — Correction | 1 semana | $0 | Checkpoint final |
| Total | 5-7 semanas | $160-235 | Motor de razonamiento |
Pre-requisitos (Blocks 2-3)
Antes de empezar el training, necesitamos limpiar y preparar el código:
Block 2 — Cleanup de código muerto
Scripts que importan módulos v2 eliminados (borrar con backup a _archive/):
scripts/aprender_solo.pyscripts/train.pyscripts/train_cerebral.pyscripts/destilar.pyscripts/evaluate_v2.pyscripts/generar_curriculum.pyscripts/smoke_test_viaje.pyscripts/test_llaves.py
Scripts mixtos v2/v3 rotos (borrar con backup):
scripts/benchmark.pyscripts/probar_modelo.pyscripts/eval_honesta.py
Módulos huérfanos:
pampar/training/— no importado por nada
Block 3 — Refactoring para multi-language
| Archivo | Cambio |
|---|---|
zonas.py |
Agregar keywords JS/Rust/C/Bash/SQL a ZONAS |
llaves.py |
Expandir clasificar_token() para multi-language |
clasificador.py |
Generalizar _calcular_densidad() más allá de Python |
ejecutar_codigo.py |
Agregar soporte para Node.js, Bash |
config.py |
Extraer TOKENIZER_PATH como constante compartida |
Checkpoints esperados
| Nombre | Fase | Descripción |
|---|---|---|
v3_ghidra_v9.pt |
Actual | Score 89, 6/16 (38%) — baseline |
v3_pretrain_f1.pt |
Fase 1 | Post continual pretrain |
v3_sft_f2.pt |
Fase 2 | Post SFT multi-language |
v3_corrected_f3.pt |
Fase 3 | Post GhidraProbe correction — target final |
Notas
- Arquitectura LOCKED: no tocar la grilla 4×5, GQA, SwiGLU, LLAVES 80/20
- Backups siempre: antes de borrar/refactorizar →
_archive/ - RunPod: A100 40GB para fases 1 y 2, el código de
cloud/runpod/ya existe - Evaluación:
scripts/eval_v3.pycomo benchmark consistente entre fases