起因 # 上一篇算完了 7B 模型的训练显存账本。结论很直接:BF16 mixed precision + AdamW 的 Model States 就有 112 GB,加上 30 GB 的 Activations,单卡至少需要 145 GB——一张 80 GB 的 A100 连 Model States 都放不下。
起因 # 之前分别写了推理和训练的显存心智模型和混合精度训练中的显存组成,反复出现一个粗估:BF16 mixed precision + AdamW 大约 16 bytes/parameter。但这个数字每次都只是"1B × 16 = 16 GB"的单位换算,没有真正对着一个具体的 Transformer 架构把账从头到尾算一遍。
最近在看 MIT 6.S191 Lecture 9 的时候,反复听到一句话:Data Movement Matters。
之前写过 Arithmetic Intensity 和 Compute/Memory Bound,也刚写完 FlashAttention 的分块和 Online Softmax。这些文章里"HBM"和"片上存储"出现了很多次,但我发现自己其实一直没有认真想过一个问题:HBM 到底是什么?它全称叫 High Bandwidth Memory——高带宽内存——既然带宽已经很高了,为什么还要费这么大劲减少对它的访问?
之前的几篇把 Self-Attention 的公式拆得比较清楚了,从 QKV 的计算含义到 Multi-Head 的分工。另一条线是 GPU 性能——Arithmetic Intensity、memory bound、HBM 带宽这些概念也已经聊过。关于 HBM 和片上存储的物理区别,可以参考GPU 存储层级那篇。
起因 # 最近看完 MIT 6.S191 的 Lecture 8——AI for Science。这一讲的主题和之前几讲很不一样:不再是 NLP、CV 或者 RL,而是把深度学习拿去做天气预测、材料设计、分子模拟这些事情。
起因 # 之前写 Next-Token Prediction的时候,我把条件概率链式分解、Softmax 输出概率分布这些东西理了一遍。当时觉得逻辑非常自洽:模型在每个位置输出整个词表上的概率分布,概率最高的那个 token 就是模型最有信心的预测。
起因 # 过去几篇笔记一直在 Lecture 6 的范围里打转。Distribution Shift 那篇让我意识到离线测试集的 98% 准确率没法平移到生产环境,Algorithmic Bias 那篇又告诉我总体准确率可以掩盖群体间的巨大差异,对抗攻击那篇则让我看到泛化好的模型仍然可以被微小扰动骗过。
起因 # 上一篇结尾留了一个问题:Pre-training Loss 通常随模型规模平滑改善,但一些下游 benchmark 上的准确率似乎在某个规模区间突然大幅提升。
起因 # 上一篇理清了 Pre-training 和 Post-training 的关系——Pre-training 让模型学会语言建模,SFT 和 RLHF 再让它学会遵循指令。
起因 # 最近继续跟 MIT 6.S191,加上工作中或多或少接触到一些 LLM 训练相关的讨论,我开始试着把大模型的训练流程从头到尾理一遍。
案发现场 # 前几天在 pn51 上通过 Tailscale SSH 连 p14s(Arch Linux),碰到一个让我困惑了好一阵的问题。
起因 # 昨晚把常用的 87 配列机械键盘拆开清洗了一遍。装回去之后发现主键盘区的数字 1 键彻底没反应了——按下去手感正常,但系统完全不认。
最近在学股票的波段交易(Swing Trading),平时看行情主要依赖趋势形态、动量和成交量。前段时间在琢磨做空交易时,遇到过一个很实际的场景:我看空某只股票,但我不想直接融券做空——融券需要借入股票,要付融券利息,还有被券商提前召回的可能;更棘手的是,如果遇到逼空(Short Squeeze),理论上的亏损幅度是上不封顶的,账户随时面临追加保证金(Margin Call)的压力。
起因 # 之前在量化团队做 ML Infra 相关工作时,我曾参与过期货预测模型的特征重要度评估与特征筛选系统。
起因 # 上一篇聊分布偏移与外推的时候,我把关注点放在了训练数据与生产环境之间的不一致上:模型在离线测试集上哪怕拿到了 98% 的高分,一旦现实环境发生 Covariate Shift 或者流形外推,线上的预测能力依然可能迅速滑坡。
在很长一段时间里,我对股票市场的理解非常机械,甚至带着一种理所当然的工程偏见。
作为一个长期和分布式系统、性能优化与反馈控制打交道的工程师,我习惯把撮合引擎看作一个纯粹的分布式信息处理系统:全市场的参与者带着各自的信息、算力和风险偏好,用真金白银在订单簿上挂单出清。价格上涨,说明对未来的盈利预期转好;价格下跌,说明基本面恶化或风险溢价上升。
起因 # 上一篇聊随机标签实验的时候,我把注意力放在了模型容量和假设空间上:一个参数量巨大、完全有能力死记硬背随机噪声的神经网络,为什么在面对真实规律的数据时,依然能找到泛化良好的解。
10月16日,美东时间上午,我在看 SOXL 的成交统计时看到了一组让我反复盯着屏幕的数字。
SOXL 是 3 倍做多半导体 ETF,那天跌了超过 6%。我打开成交统计,本来预期应该看到一个主动卖出量远超买入量的页面——毕竟已经跌成这样了。结果是这样的:
前段时间在梳理短期利率时,有一个朴素的疑问困扰了我一阵子。
当时我在看 3 个月期美国国债(3-Month Treasury Bill,简称 3M T-Bill)。直觉上的买卖过程非常直接:假设我花了 9,900 美元买下一张三个月后到期、面值为 10,000 美元的国债。只要美国政府不违约,三个月后财政部如期兑付 10,000 美元,我净赚 100 美元差价。
最近在整理金融基础笔记,梳理到利率和通胀的关系时,发现自己以前对"加息抑制通胀"的理解一直停留在一个很粗糙的直觉上:
美联储加息 → 大家更愿意把钱存进银行 → 市场上流通的钱变少了 → 通胀就下来了。