PAMPAr-Coder / ROADMAP.md
lucas-mella's picture
feat: upload PAMPAr-Coder code and documentation
a2d6a0d verified
|
Raw
History Blame Contribute Delete
12.5 kB

PAMPAr-Coder — Roadmap

Plan de evolución. Última actualización: Mar 2026. Para la identidad del modelo ver CONCIENCIA.md. Para el protocolo de despliegue ver AGENTS.md.


1. Visión

PAMPAr es un físico con doctorado que puede especializarse en cualquier campo:

  • El doctorado (razonamiento computacional) está en los pesos — 108M params.
  • La especialización viene del entorno — se descubre al boot con el Scanner.
  • El protocolo de 3 archivos (CONCIENCIA.md + AGENTS.md + TOOLS.md) es la interfaz entre el modelo y su despliegue.

Las 3 fases del proyecto

Fase Qué Estado
Fase 1 — SFT Entrenar el doctorado: lógica Python, patrones, razonamiento ✅ Completa (16/16 con reparadores, target superado)
Fase 2 — Runtime loop El modelo usa herramientas, ejecuta, lee, aprende del loop ✅ Completa (chat.py + ColaFinetune + mini-SFT wiring)
Fase 3 — Protocolo entrenado El modelo genera su propio AGENTS.md al aterrizar en un sistema nuevo Futuro

2. Arquitectura actual — PamparV3

2.1 Grilla cortical 2D

Tokens (int)
    │
    ▼
[Embeddings] 48K vocab, dim=640, weight-tied con lm_head
    │
    ▼
┌─────────────────────────────┐
│       TalamoInicial          │  routing: qué streams procesan cada token
│  80% LLAVES (INT8 + reglas) │
│  20% attn_proj (aprendido)  │
│  + context_conv causal k=32 │
└────────────┬────────────────┘
             │ [B, L, 4, dim] — 4 streams con pesos distintos
             ▼
  ┌──────────────────────────────────────────────┐
  │          5 × NivelProfundo                   │
  │  TalamoNivel → 4× BloqueAttn GQA 4:1       │
  │  → 4× StreamFFN SwiGLU → LateralGate       │
  │  → Early Exit (umbral 0.90)                 │
  └──────────────────────────────────────────────┘
             │
             ▼
        RMSNorm + lm_head → logits [B, L, 48000]

2.2 Streams ↔ Capas lingüísticas

Stream Territorio Zonas Capa lingüística
0 SINTAXIS B01-B15 Sintaxis — estructura del código
1 SEMANTICA B16-B30 Semántica — significado
2 LOGICO B31-B42 Pragmática — intención, flujo
3 ESTRUCTURAL B43-B52 Discurso — organización, patrones

Los 4 streams procesan en paralelo. Cada NivelProfundo tiene Lateral Gates (bottleneck=128) para comunicación entre streams — como las fibras blancas del cerebro.

2.3 Boot Protocol

1. CONCIENCIA.md → RAG L3 (identidad inmutable)
2. Scanner → workspace (ast), paquetes (importlib), servicios (socket), sistema (platform)
3. AGENTS.md contextual → RAG L2 (entorno mutable)
4. System prompt dinámico = identidad + contexto + acciones

Implementado en pampar.runtime.scanner + pampar.runtime.boot.


3. Estado de checkpoints

Checkpoint Datos Eval open (temp=0.0)
v3_sft.pt 43K Magicoder (inglés) 0/16
v3_sft_v5.pt SFT v5 (base post-catastrófico) 6/16
v3_sft_v6.pt clean_sft.jsonl (555 ejemplos) 10/16
v3_sft_v7.pt final_sft.jsonl (825 = clean + quirúrgico×3) 15/16
v3_sft_v8.pt micro-SFT cuadrados (300 steps + reparadores) 16/16 ✅ BEST

Estado actual (v3_sft_v8.pt — 16/16 con reparadores)

# Función Estado Notas
01 contar_vocales
02 suma_digitos
03 es_palindromo
04 maximo_lista
05 fizzbuzz Corregido (dataset quirúrgico)
06 aplanar_lista
07 frecuencia
08 cuadrados_pares Genera x*i → reparador NameError word-boundary lo corrige
09 invertir_dict
10 fibonacci
11 busqueda_binaria
12 merge_sort Corregido (self-contained)
13 Stack
14 Punto Corregido (import math / **0.5)
15 memoize Corregido (usa fn, no func)
16 primos_hasta Reparador _reparar_bloques_huerfanos + stop endswith(\n\n)

4. Plan de entrenamiento

Fase A — Entrenamiento curricular con MotorCuriosidad

Objetivo: reforzar las bases de lógica que el modelo falla.

python scripts/train_v3.py \
  --checkpoint checkpoints/v3_sft_v4.pt \
  --biblioteca data/biblioteca/ \
  --lr 3e-5 --epochs 3

Temas prioritarios basados en fallos del eval:

  1. bucles_for_while — fizzbuzz, cuadrados_pares
  2. diccionarios — invertir_dict
  3. busqueda_algoritmos — búsqueda binaria
  4. recursion — merge_sort
  5. clases_oop — Punto, memoize
  6. matematica_basica — primos, potencias

Fase B — SFT v5 (post-curricular)

  • ~18K ejemplos curados (3K por topic × 6 topics)
  • Formato Alpaca, filtrado con pytest
  • Generados por el propio modelo + verificación automática

Fase C — Matriz lingüística como dato de entrenamiento

Incluir ejemplos que ejerciten explícitamente cada capa:

  • Pragmática: "El usuario quiere X, yo debo hacer Y" (comprensión de intención)
  • Semántica: Renombrar variables, inferir tipos, naming conventions
  • Sintaxis: Indentación correcta, keywords, delimitadores, f-strings
  • Discurso: Organización de código (imports → constantes → clases → funciones → main)

5. Roadmap de milestones

COMPLETADO ✅       COMPLETADO ✅        AHORA                 LARGO PLAZO
────────────        ────────────         ─────────────         ────────────
15/16 eval   →     16/16 eval   →       Mini-SFT auto →       Protocolo
v3_sft_v7.pt       v3_sft_v8.pt         cuando cola≥50        entrenado
108M params        + reparadores        ColaFinetune          Fase 3

SFT dataset        chat.py              Mini-SFT wiring       El modelo
limpio+quirúrgico  loop activo          sft_v5.py             genera su
Clean+surgical×3   gen→exec→retry       auto-reload           AGENTS.md

Milestone 1 — 16/16 eval ✅ COMPLETADO (target era ≥12/16)

  • Dataset limpio (clean_sft.jsonl — 555 ejemplos sin contradicciones)
  • Dataset quirúrgico (surgical_sft.jsonl — 90 ejemplos para 6 fallos)
  • SFT v6 (10/16) desde clean data
  • SFT v7 (15/16) desde clean + surgical×3
  • Fix primos_hasta → reparador _reparar_bloques_huerfanos + stop endswith(\n\n)
  • Fix cuadrados_pares → reparador NameError word-boundary en verificador
  • 16/16 confirmado con v3_sft_v8.pt + eval_v3.py cadena de reparadores

Milestone 2 — Runtime autónomo (EN PROGRESO)

  • Scanner del sistema (pampar.runtime.scanner)
  • Boot protocol (pampar.runtime.boot)
  • CONCIENCIA.md como identidad invariante
  • System prompt dinámico (identidad + contexto del scan)
  • El agente ejecuta código que genera y observa output (scripts/chat.py)
  • Si falla, agrega el par (prompt, error) a ColaFinetune
  • Mini-SFT automático cuando la cola supera umbral (wiring con sft_v5.py + reload en proceso)

Milestone 3 — Protocolo entrenado ✅ Implementado (generador determinista)

  • pampar/runtime/generar_agents.py — genera AGENTS.md contextual desde el scan (determinista)
  • BootProtocol._inyectar_contexto() actualizado: genera AGENTS.md → fragmenta por secciones → RAG L2
  • 23 tests en tests/test_generar_agents.py (132/132 en suite completa)
  • Quick Reference, Sistema detectado, Paquetes clave, Servicios, Boot protocol generados dinámicamente
  • El modelo "sabe" escanear: genera scan_sistema() como código (largo plazo — necesita mucho más SFT)
  • CONCIENCIA se refuerza con RLHF/DPO sobre interacciones reales (largo plazo)
  • Nota: entrenar 108M params para generar markdown desde cero requiere 10K+ pasos — protocolo funcionando vía boot determinista es la aproximación correcta para este tamaño de modelo

Milestone 4 — VS Code extension

  • Extension que carga PamparV3 localmente (CPU/GPU)
  • Completado inline de código
  • Panel de chat con el agente
  • Memoria persistente entre sesiones (RAG en disco)

Milestone 5 — Voz (cuando el sistema la tiene)

  • Detectar motores de voz al boot (espeak, SAPI, say) — ya implementado en Scanner
  • TTS para respuestas cuando el usuario lo pide
  • Zero-dependency: usa lo que el OS tiene instalado

6. Estructura de carpetas

PAMPAr-Coder/
├── CONCIENCIA.md                 # Identidad invariante del modelo
├── AGENTS.md                     # Protocolo de despliegue (mutable)
├── ROADMAP.md                    # Este archivo
├── pampar/
│   ├── coder/v3/                 # Arquitectura activa (108M)
│   │   ├── modelo.py             # PamparV3
│   │   ├── config.py             # ConfigV3, presets
│   │   ├── talamo.py             # TalamoInicial
│   │   ├── bloques.py            # BloqueAttn, StreamFFN, LateralGate
│   │   ├── llaves.py             # LlavesV2 — lookup INT8
│   │   └── zonas.py              # 52 Zonas de Brodmann
│   ├── memoria/
│   │   ├── clasificador.py       # ClasificadorPareto — L0 a L3
│   │   ├── rag.py                # RAGResidual — vector store
│   │   └── cola_finetune.py      # ColaFinetune — buffer SFT
│   ├── runtime/
│   │   ├── agente.py             # Agente — orquestador principal
│   │   ├── scanner.py            # Scanner — inspección del entorno
│   │   └── boot.py               # BootProtocol — secuencia de arranque
│   └── training/
│       ├── curiosidad.py         # MotorCuriosidad — ZPD
│       └── lector.py             # LectorBiblioteca
├── checkpoints/
│   └── v3_sft_v4.pt              # Mejor checkpoint (8/16)
└── tests/                        # 109+ tests