LogoCookLLM文档
LogoCookLLM文档
首页CookLLM

原理精讲

词元化
Tokenization 基础BPE 算法详解GPT 系列 TokenizerBPE 训练工程化
模型架构
Transformer LM
从 token ids 到 logitsEmbedding 与 LM Head
Attention 机制
Self-Attention 到 GQAAttention Sink
位置编码
位置编码基础RoPE 数学推导RoPE 代码实现长度外推
GPU 编程基础
GPU 架构基础张量布局Triton 入门:向量加法
FlashAttention
Flash Attention 原理详解从朴素实现到 Auto-TuningBlock Pointer 与多维支持Causal Masking 优化Grouped Query Attention反向传播实现
分布式训练
数据并行ZeRO 优化器全分片数据并行张量并行流水线并行多维混合并行
推理优化
KV CacheContinuous BatchingPagedAttention

动手训练

概述
预训练
预训练数据Tokenizer 训练模型架构数据流水线训练循环监控与验证
X (Twitter)
预训练

监控与验证

会员专享

使用 TensorBoard、SwanLab、采样文本和 checkpoint 跟踪预训练

预训练跑起来之后,真正要盯的是实验有没有按预期推进:训练 loss 有没有记录,验证 loss 有没有稳定写出,学习率调度是否正确,采样文本有没有生成,checkpoint 有没有保存。

cookllm-bento 里默认配置了 TensorBoard,同时也提供了 SwanLab logger。实际训练时我更推荐 SwanLab:它适合远程机器、长时间实验和多次实验对比;TensorBoard 更适合本地快速看一眼。

日志从哪里来

训练过程中看到的曲线不是 logger 自己算出来的,而是代码主动记录出来的。比如 PretrainModule 里有两处关键日志:

src/trainer/pretrain.py

登录以继续阅读

这是一篇付费内容,请登录您的账户以访问完整内容。

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 应该保留下来。

训练循环

拆开 LightningCLI、PretrainModule、优化器和调度器

目录

日志从哪里来
终端进度
TensorBoard
SwanLab
文本采样
Checkpoint
Predict 验证
先看哪些指标