k = RUN_KNOBS train_out = run_cli([“python”,”scripts/train.py”,”–config”,CFG,”–split_dir”,SPLIT,
“–optimizer_model”,OPTIMIZER_MODEL,”–target_model”,TARGET_MODEL,”–out_root”,RUN,
*COMMON,
“train.train_size=0″,
f”train.num_epochs={k[‘num_epochs’]}”, f”tren.batch_size={k[‘batch_size’]}”, f”gradiente.minibatch_size={k[‘minibatch’]}”, f”gradient.merge_batch_size={k[‘merge_batch’]}”, f”gradiente.analyst_workers={k[‘workers’]}”, f”optimizador.learning_rate={k[‘lr’]}”, f”optimizador.lr_scheduler={k[‘lr_sched’]}”, “optimizer.use_slow_update=true”, “optimizer.use_meta_skill=true”, f”env.workers={k[‘workers’]}”, f”env.limit={k[‘limit’]}”], “TRAIN (rollout->reflect->agregate->select->update->gate; slow-update + meta-skill)”) importa pandas como pd, matplotlib.pyplot como plt hist = json.loads(pathlib.Path(f”{RUN}/history.json”).read_text()) df = pd.json_normalize(hist) print(“\nhistory.json columnas:”, list(df.columns)) def col(*cands): para c en cands: para real en df.columns: si c en actual.lower(): devuelve retorno real Ninguno c_step = col(“paso”) x = df[c_step] if c_step else range(len(df)) c_tr, c_va = col(“train_acc”,”train_hard”,”train”), col(“val_acc”,”val_hard”,”valid”,”val”) c_lr, c_tok = col(“edit_budget”,”lr”,”learning_rate”,”budget”), col(“token”,”coste”) fig, ax = plt.subplots(1, 3, figsize=(16,4)) si c_tr: hacha[0].plot(x, df[c_tr]”o-“, label=”tren acc”) si c_va: ax[0].plot(x, df[c_va]”s-“, label=”val acc (gate)”) si base y base[“hard”] no es Ninguno: hacha[0].axhline(base[“hard”]ls=”–“, c=”grey”, label=”baseline (semilla)”) hacha[0].set_title(“Precisión de la habilidad en los pasos”); hacha[0].set_xlabel(“paso”); hacha[0].leyenda(); hacha[0].grid(alfa=.3) si c_lr: hacha[1].plot(x, df[c_lr]”d-“, c=”púrpura”) hacha[1].set_title(“Editar presupuesto/horario LR (coseno)”); hacha[1].set_xlabel(“paso”); hacha[1].grid(alfa=.3) si c_tok: hacha[2].plot(x, pd.to_numeric(df[c_tok],errors=”coerce”).cumsum(), c=”naranja oscuro”) hacha[2].set_title(“Uso acumulativo de tokens”); hacha[2].set_xlabel(“paso”); hacha[2].grid(alfa=.3) plt.tight_layout(); plt.savefig(f”{RUN}/training_dashboard.png”, dpi=120); plt.mostrar()
“–optimizer_model”,OPTIMIZER_MODEL,”–target_model”,TARGET_MODEL,”–out_root”,RUN,
*COMMON,
“train.train_size=0″,
f”train.num_epochs={k[‘num_epochs’]}”, f”tren.batch_size={k[‘batch_size’]}”, f”gradiente.minibatch_size={k[‘minibatch’]}”, f”gradient.merge_batch_size={k[‘merge_batch’]}”, f”gradiente.analyst_workers={k[‘workers’]}”, f”optimizador.learning_rate={k[‘lr’]}”, f”optimizador.lr_scheduler={k[‘lr_sched’]}”, “optimizer.use_slow_update=true”, “optimizer.use_meta_skill=true”, f”env.workers={k[‘workers’]}”, f”env.limit={k[‘limit’]}”], “TRAIN (rollout->reflect->agregate->select->update->gate; slow-update + meta-skill)”) importa pandas como pd, matplotlib.pyplot como plt hist = json.loads(pathlib.Path(f”{RUN}/history.json”).read_text()) df = pd.json_normalize(hist) print(“\nhistory.json columnas:”, list(df.columns)) def col(*cands): para c en cands: para real en df.columns: si c en actual.lower(): devuelve retorno real Ninguno c_step = col(“paso”) x = df[c_step] if c_step else range(len(df)) c_tr, c_va = col(“train_acc”,”train_hard”,”train”), col(“val_acc”,”val_hard”,”valid”,”val”) c_lr, c_tok = col(“edit_budget”,”lr”,”learning_rate”,”budget”), col(“token”,”coste”) fig, ax = plt.subplots(1, 3, figsize=(16,4)) si c_tr: hacha[0].plot(x, df[c_tr]”o-“, label=”tren acc”) si c_va: ax[0].plot(x, df[c_va]”s-“, label=”val acc (gate)”) si base y base[“hard”] no es Ninguno: hacha[0].axhline(base[“hard”]ls=”–“, c=”grey”, label=”baseline (semilla)”) hacha[0].set_title(“Precisión de la habilidad en los pasos”); hacha[0].set_xlabel(“paso”); hacha[0].leyenda(); hacha[0].grid(alfa=.3) si c_lr: hacha[1].plot(x, df[c_lr]”d-“, c=”púrpura”) hacha[1].set_title(“Editar presupuesto/horario LR (coseno)”); hacha[1].set_xlabel(“paso”); hacha[1].grid(alfa=.3) si c_tok: hacha[2].plot(x, pd.to_numeric(df[c_tok],errors=”coerce”).cumsum(), c=”naranja oscuro”) hacha[2].set_title(“Uso acumulativo de tokens”); hacha[2].set_xlabel(“paso”); hacha[2].grid(alfa=.3) plt.tight_layout(); plt.savefig(f”{RUN}/training_dashboard.png”, dpi=120); plt.mostrar()