English · Español
Fase 09 — MLP, módulos y optimizadores¶
Requiere: 08 — Autograd tensorial desde cero Enseña:
module-abstraction·parameter-registration·linear·sequential·optimizersSalta a cualquier capítulo desde el índice de referencia de fases.
Mapa del capítulo¶
La fase donde emerge el framework. Las fases 7 y 8 construyeron dos motores de autograd (
Valueescalar yTensor). La Fase 9 envuelveTensoren una API con forma de PyTorch —Module,Parameter,Linear,Sequential,SGD,Adam— para que componer capas sea ergonómico y portar pequeños scripts de PyTorch aminimodellleve treinta minutos justos.🇪🇸 La fase donde el framework aparece.
ModuleyParameterno son magia: son una convención sobre dónde viven los pesos y cómo el optimizador los encuentra. La forma de la API la copiamos de PyTorch — no por imitación, sino porque la convención de PyTorch resuelve un problema real (descubrir parámetros por reflexión a través de un grafo de submodules anidado).Anclas:
LYNX_CORTEX.md§4 / PHASE 9,LYNX_CORTEX_ADDENDUM.md§A12, §A13.PHASE_09_PLAN.md.
Qué construyes¶
Un nuevo módulo src/minimodel/ (~250 LOC por Borja) con:
nn/module.py—Parameter, clase baseModulecon registro vía__setattr__.nn/linear.py—Linear(in, out).nn/activations.py—ReLU,Tanh,Sigmoid,GELU.nn/container.py—Sequential([...]).nn/init.py—kaiming_uniform_,xavier_normal_(versiones mínimas; la Fase 10 las amplía).nn/losses.py—CrossEntropyLoss,MSELoss.optim.py— baseOptimizer,SGD,Adam.
Y un experimento: experiments/09-tense-mlp/ — entrenar un MLP de 2 capas sobre el grid gramatical §A13 (entrada = one-hot del verbo ⊕ one-hot de la persona, 23-d; salida = logits sobre los 5 tiempos; 250 entrenamiento / 50 validación a partir de las 300 triplas de conjugación). Objetivo: >85% de accuracy en validación.
Más el port drill: experiments/09-pytorch-port-drill/ — un script PyTorch de tense-MLP de 50 líneas portado línea a línea a minimodel en ≤30 minutos. El sentido del drill es que la API debería estar lo bastante cerca de PyTorch como para que no tengas que repensar nada.
Orden de lectura¶
- Teoría (en
theory/): 00-motivation.md— por qué existe un "Module" siquiera; qué resuelveParameter.01-parameter-and-module.md— la mecánica de registro; por qué__setattr__y no__init__.02-linear-and-sequential.md— la capa más simple + composición; inicialización.-
03-optimizers.md—SGD, momentum,Adamcon corrección de sesgo. Repaso de ingeniería de las matemáticas de la Fase 4. -
Labs (en
lab/): 00-parameter-and-module-skeleton.md— registro deParameter+Module. ~30 LOC, toda la astucia del framework.01-linear-and-activations.md—Linear,ReLU,Tanh,Sequential. ~50 LOC.02-optimizers.md—SGD(+momentum) yAdam. ~70 LOC. Verifica Adam contratorch.optim.Adam.-
03-train-tense-mlp.md— cierra la fase entrenando el MLP del grid gramatical. -
Soluciones aparecen después de intentar los labs; nunca copies antes de intentarlo.
Lo que esta fase no cubre¶
- BatchNorm / LayerNorm. Fase 10.
- Conexiones residuales. Fase 10. Bloque transformer: Fase 17.
- Capas de embedding. La Fase 13 (embeddings) profundiza; la Fase 17 las usa.
- Dropout. Fase 18 (trucos de entrenamiento).
- Entrenamiento distribuido. Fase 35.
- La implementación real de PyTorch. La Fase 25 inspecciona los internos de PyTorch.
Definición de hecho (DoD) (referencia rápida)¶
Mira PHASE_09_PLAN.md §6 para la DoD completa. Lo más destacable:
mypy --strictlimpio en todosrc/minimodel/.Sequential(Linear(2, 3), ReLU(), Linear(3, 1)).parameters()produce exactamente 4 objetosParameteren orden.Adamcoincide contorch.optim.Adama 1e-5 sobre 100 pasos en una cuadrática.experiments/09-tense-mlp/alcanza >85% de accuracy en validación.experiments/09-pytorch-port-drill/se completa en ≤30 minutos (cronometrado)./quiz 09≥ 70%.
Siguiente fase¶
Fase 10 — Inicialización, normalización, regularización — completa las partes de un MLP que la Fase 9 omitió (derivación de Kaiming/Xavier, BatchNorm/LayerNorm, weight decay).
Lecturas recomendadas¶
Opcional — enriquece pero no es necesario para aprobar la fase.
- ✍️ A Recipe for Training Neural Networks — Karpathy · 2019. cómo los profesionales componen y depuran módulos de verdad.