监控与验证
会员专享使用 TensorBoard、SwanLab、采样文本和 checkpoint 跟踪预训练
预训练跑起来之后,真正要盯的是实验有没有按预期推进:训练 loss 有没有记录,验证 loss 有没有稳定写出,学习率调度是否正确,采样文本有没有生成,checkpoint 有没有保存。
cookllm-bento 里默认配置了 TensorBoard,同时也提供了 SwanLab logger。实际训练时我更推荐 SwanLab:它适合远程机器、长时间实验和多次实验对比;TensorBoard 更适合本地快速看一眼。
日志从哪里来
训练过程中看到的曲线不是 logger 自己算出来的,而是代码主动记录出来的。比如 PretrainModule 里有两处关键日志:
self.log("train/loss", loss, prog_bar=True, on_step=True, on_epoch=False)
self.log("val/loss", loss, prog_bar=True, on_step=False, on_epoch=True, sync_dist=True)Lightning 会把这些指标交给当前配置的 logger。默认 logger 是 TensorBoard;如果额外传入 configs/swanlab.yaml,logger 会换成 SwanLab。LearningRateMonitor 也是一个 callback,它会把学习率按 step 写进 logger。
ModelCheckpoint 和 logger 不一样。它不会负责画曲线,而是读取已经记录出来的 val/loss,再根据 monitor: val/loss、mode: min 和 save_top_k: 3 决定哪些 checkpoint 应该保留下来。
登录以继续阅读
这是一篇付费内容,请登录您的账户以访问完整内容。
CookLLM文档