最近的文章
caffe 源码阅读笔记
·30 字·1 分钟
caffe做部署是YYDS!
blob
layer
net
激活函数
卷积
reshape
slice
loss function
reduce
eltwise
argmax
从 DDP 到 ZeRO:为什么分布式训练要对参数、梯度和优化器状态分片?
·7498 字·15 分钟
起因 # 上一篇搞清楚了 AllReduce、ReduceScatter 和 AllGather 三种通信原语,末尾提到 DDP 和 ZeRO Stage 2 选择了不同的通信原语组合,根本原因是参数更新的责任分配不同。
从 AllReduce 到 Ring:分布式训练中的通信原语
·4919 字·10 分钟
起因 # 之前几篇文章从模型显存组成一路算到 7B 模型的训练账本,结论很直接:BF16 mixed precision + AdamW 的 Model States 就有 112 GB,一张 80 GB A100 连放都放不下。Checkpointing + Offloading 两个一起用可以勉强塞进去,但训练速度要被 PCIe 传输和额外重计算拖累。
深入理解 PyTorch DDP:为什么更少的通信,不一定意味着更快的训练?
·6738 字·14 分钟
起因 # 上一篇讨论完 Checkpointing 和 Offloading 之后,结尾留了一句:单卡优化的代价已经不可接受时,下一步自然是考虑让多张 GPU 分担训练状态。
GPU 显存不够怎么办?Checkpointing 与 Offloading 的工程权衡
起因 # 上一篇算完了 7B 模型的训练显存账本。结论很直接:BF16 mixed precision + AdamW 的 Model States 就有 112 GB,加上 30 GB 的 Activations,单卡至少需要 145 GB——一张 80 GB 的 A100 连 Model States 都放不下。
7B 模型只有 14 GB 权重,一张 80 GB GPU 为什么仍可能 OOM?
起因 # 之前分别写了推理和训练的显存心智模型和混合精度训练中的显存组成,反复出现一个粗估:BF16 mixed precision + AdamW 大约 16 bytes/parameter。但这个数字每次都只是"1B × 16 = 16 GB"的单位换算,没有真正对着一个具体的 Transformer 架构把账从头到尾算一遍。
GPU 的数据存在哪?——从 HBM 到片上存储的存储层级
·2379 字·5 分钟
最近在看 MIT 6.S191 Lecture 9 的时候,反复听到一句话:Data Movement Matters。
之前写过 Arithmetic Intensity 和 Compute/Memory Bound,也刚写完 FlashAttention 的分块和 Online Softmax。这些文章里"HBM"和"片上存储"出现了很多次,但我发现自己其实一直没有认真想过一个问题:HBM 到底是什么?它全称叫 High Bandwidth Memory——高带宽内存——既然带宽已经很高了,为什么还要费这么大劲减少对它的访问?
FlashAttention 的核心思想:为什么 Attention Matrix 根本不需要存下来?
·4480 字·9 分钟
之前的几篇把 Self-Attention 的公式拆得比较清楚了,从 QKV 的计算含义到 Multi-Head 的分工。另一条线是 GPU 性能——Arithmetic Intensity、memory bound、HBM 带宽这些概念也已经聊过。关于 HBM 和片上存储的物理区别,可以参考GPU 存储层级那篇。
AI for Science:AI 不是替代物理定律,而是改变科学发现的方式
·3906 字·8 分钟
起因 # 最近看完 MIT 6.S191 的 Lecture 8——AI for Science。这一讲的主题和之前几讲很不一样:不再是 NLP、CV 或者 RL,而是把深度学习拿去做天气预测、材料设计、分子模拟这些事情。
为什么 LLM 会一本正经地胡说八道?从 Token Probability 到 Hallucination
·6342 字·13 分钟
起因 # 之前写 Next-Token Prediction的时候,我把条件概率链式分解、Softmax 输出概率分布这些东西理了一遍。当时觉得逻辑非常自洽:模型在每个位置输出整个词表上的概率分布,概率最高的那个 token 就是模型最有信心的预测。