Etapa 0: entorno, configuración validada, modelo y entrenador
Base del proyecto ENLACE: un modelo de lenguaje propio entrenado desde cero, en español, para asistencia general y familiar. El plan completo está en docs/PLAN.md. Esta etapa establece el andamiaje y lo verifica de punta a punta: - Configuración por capas (hardware × model × train × data) validada con pydantic. Ningún hiperparámetro vive en el código y una config inválida falla al arrancar, no a las tres horas de entrenamiento. - Perfiles de hardware que aíslan el salto de GPU: la RTX 2060 (Turing) no soporta bfloat16 ni FlashAttention-2, así que entrena en float16 con GradScaler y backend mem_efficient; el perfil de la 5090 ya está escrito. backends.py valida el perfil contra la GPU real antes de empezar. - Transformer decoder-only estilo Llama: RMSNorm, SwiGLU, RoPE, GQA, embeddings atados, QK-norm y z-loss. Los dos últimos son lo que mantiene estable el entrenamiento en float16. - Entrenador con schedule WSD, acumulación de gradiente, precisión mixta, checkpointing atómico y reanudación exacta. - Cargadores de datos con estado serializable: bytes para el smoke test y shards uint16 para el corpus real. 48 tests, entre ellos el crítico: reanudar desde un checkpoint reproduce los pesos de una corrida ininterrumpida, parámetro por parámetro. Verificado en CPU: 300 pasos sobre texto en español, loss 3.07 -> 1.63. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# Smoke test de la Etapa 0: minutos, no días.
|
||||
#
|
||||
# Criterio de aceptación: el loss baja por debajo de 1.5 y las muestras
|
||||
# generadas son español reconocible. Si eso pasa, el stack entero está bien.
|
||||
run_name: smoke-char
|
||||
out_dir: runs
|
||||
seed: 1337
|
||||
|
||||
max_steps: 2000
|
||||
|
||||
optimizer:
|
||||
lr: 3.0e-3 # modelo diminuto: tolera y necesita un LR alto
|
||||
beta1: 0.9
|
||||
beta2: 0.95
|
||||
eps: 1.0e-8
|
||||
weight_decay: 0.1
|
||||
grad_clip: 1.0
|
||||
|
||||
schedule:
|
||||
kind: wsd
|
||||
warmup_steps: 100
|
||||
decay_steps: 400
|
||||
min_lr_ratio: 0.0
|
||||
|
||||
log_every: 25
|
||||
eval_every: 250
|
||||
eval_batches: 10
|
||||
checkpoint_every: 500
|
||||
sample_every: 500
|
||||
Reference in New Issue
Block a user