Anclar las rutas de .gitignore al raíz del repo
Un patrón sin "/" inicial en .gitignore matchea cualquier directorio con ese nombre en cualquier nivel. "data/" y "runs/" estaban excluyendo, además de lo que se quería: enlace/data/ los cargadores de datos (ByteStream, ShardStream) configs/data/ corpus.yaml, smoke.yaml, distill.yaml configs/runs/ todos los configs ejecutables Es decir que el repo commiteado no contenía ni la capa de datos ni un solo config con el que arrancar un entrenamiento. Como scripts/remote.sh sincroniza por git push/pull, el servidor habría recibido un paquete que falla al importar, y el síntoma habría aparecido recién allá. Se anclan las cuatro rutas con "/" inicial y se documenta el porqué en el propio archivo. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
# Corpus tokenizado en shards uint16 (Etapa 1 del plan).
|
||||
# Los shards viven en el servidor; nunca se descargan enteros.
|
||||
source: shards
|
||||
shards_dir: data/shards
|
||||
val_fraction: 0.005
|
||||
@@ -0,0 +1,36 @@
|
||||
# Generación de datos sintéticos con la Batch API (Etapa 3 del plan).
|
||||
#
|
||||
# Se usa la Batch API y no llamadas sueltas porque cuesta la mitad y generar un
|
||||
# dataset no es sensible a la latencia. A cambio el trabajo es asincrónico y
|
||||
# puede tardar horas: el estado vive en disco y es reanudable.
|
||||
#
|
||||
# Esto NO hace falta para entrenar ni para correr ENLACE. Solo se usa al armar
|
||||
# el dataset SFT, y solo para la parte difícil: identidad y casos límite. El
|
||||
# grueso sale de plantillas (cero modelo) y de un 7-8B local en la 2060.
|
||||
|
||||
model: claude-opus-5
|
||||
|
||||
# En este modelo el pensamiento está activo por defecto y max_tokens acota
|
||||
# pensamiento + respuesta juntos: sin holgura la salida se corta a la mitad.
|
||||
# 8000 alcanza de sobra para ejemplos de SFT, que son cortos.
|
||||
max_tokens: 8000
|
||||
|
||||
# Generar parafraseos y ejemplos etiquetados no es trabajo intensivo en
|
||||
# razonamiento. `low` baja el costo bastante sin perder calidad acá; subilo a
|
||||
# `medium` para el set de identidad, que sí exige coherencia fina.
|
||||
effort: low
|
||||
|
||||
# Tope de la API: 100.000 pedidos o 256 MB por lote. Se parte bien por debajo
|
||||
# para no depender de que una request HTTP enorme llegue entera.
|
||||
requests_per_batch: 10000
|
||||
|
||||
poll_interval_seconds: 60
|
||||
max_wait_hours: 26 # la API promete < 24 h; el resto es red de seguridad
|
||||
|
||||
output_dir: data/distill
|
||||
|
||||
# Solo para el reporte de costo estimado. Los precios reales los factura
|
||||
# Anthropic; esto sirve para saber en qué orden de magnitud estamos.
|
||||
usd_per_mtok_input: 5.0
|
||||
usd_per_mtok_output: 25.0
|
||||
batch_discount: 0.5
|
||||
@@ -0,0 +1,5 @@
|
||||
# Texto plano en español para el smoke test a nivel de caracteres.
|
||||
# El vocabulario se deriva del propio texto al cargarlo.
|
||||
source: chars
|
||||
text_path: data/smoke/texto.txt
|
||||
val_fraction: 0.05
|
||||
@@ -0,0 +1,7 @@
|
||||
# Pretraining real del modelo base en la RTX 2060 (Etapa 2 del plan).
|
||||
# ~1-2 días de cómputo. Correr siempre bajo tmux: ver scripts/remote.sh.
|
||||
include:
|
||||
hardware: hardware/turing-2060.yaml
|
||||
model: model/tiny-50m.yaml
|
||||
train: train/pretrain.yaml
|
||||
data: data/corpus.yaml
|
||||
@@ -0,0 +1,13 @@
|
||||
# Smoke test de la Etapa 0 en el servidor con la RTX 2060.
|
||||
# Criterio: loss < 1.5 y texto legible en menos de 15 minutos.
|
||||
include:
|
||||
hardware: hardware/turing-2060.yaml
|
||||
model: model/char-smoke.yaml
|
||||
train: train/smoke.yaml
|
||||
data: data/smoke.yaml
|
||||
|
||||
# El modelo char es diminuto: en la 2060 entra un micro-lote grande sin
|
||||
# acumulación. Sobrescribe el perfil de la placa solo en lo que corresponde.
|
||||
hardware:
|
||||
micro_batch_size: 64
|
||||
grad_accum_steps: 1
|
||||
@@ -0,0 +1,21 @@
|
||||
# Smoke test en CPU — para verificar el código en la máquina de trabajo,
|
||||
# que no tiene GPU. No entrena nada útil: comprueba que el stack funciona.
|
||||
include:
|
||||
hardware: hardware/cpu.yaml
|
||||
model: model/char-smoke.yaml
|
||||
train: train/smoke.yaml
|
||||
data: data/smoke.yaml
|
||||
|
||||
train:
|
||||
run_name: smoke-cpu
|
||||
max_steps: 300
|
||||
schedule:
|
||||
kind: wsd
|
||||
warmup_steps: 30
|
||||
decay_steps: 60
|
||||
min_lr_ratio: 0.0
|
||||
log_every: 20
|
||||
eval_every: 100
|
||||
eval_batches: 5
|
||||
checkpoint_every: 150
|
||||
sample_every: 150
|
||||
Reference in New Issue
Block a user