Chengshu@skadai · 2026.09.30

CS336

17 篇文章

  • Stanford CS336 第一讲精读:从零构建语言模型,为什么先讲分词?斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第一讲完整讲义:这门课为什么存在、苦涩的教训的正确读法(accuracy = efficiency × resources)、从 Shannon 到 Transformer 的历史坐标、从零构建语言模型的完整流水线,以及字符级/字节级/词级分词为什么都不行、BPE 到底怎么训练出来的。youtube转录StanfordCS336语言模型课程讲义
  • Stanford CS336 第二讲精读:PyTorch 与资源核算——训一个大模型到底要多少显存和算力?斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第二讲完整讲义:用两道「餐巾纸算术」题讲清训练的资源账——6 × 参数量 × token 数的算力从哪来、显存为什么是 16 字节/参数、float32 / float16 / bfloat16 / fp8 怎么选、PyTorch 张量的 storage 与 stride 为什么重要、MFU 怎么算,以及从参数初始化、优化器一路到激活值、梯度、优化器状态的完整内存账本,最后落到混合精度训练。youtube转录StanfordCS336PyTorch课程讲义
  • Stanford CS336 第三讲精读:Transformer 架构与超参数,哪些改动是真的重要?斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第三讲完整讲义:主讲 Tatsunori Hashimoto 把 2017–2025 的架构演化当成一份实验数据来读——pre-norm 是唯一的铁律,RMSNorm 与删掉 bias 背后是访存而非 FLOPs,SwiGLU 为什么赢了,位置编码如何收敛到 RoPE,d_ff、头维度、宽深比、词表大小的共识与例外,以及 z-loss、QK norm、MQA/GQA 与稀疏注意力这些稳定性与推理侧的关键改动。youtube转录StanfordCS336Transformer架构课程讲义
  • Stanford CS336 第四讲精读:混合专家(MoE),以及 DeepSeek V3 是怎么搭起来的斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第四讲完整讲义:MoE 到底是什么(其实和「专家分领域」毫无关系)、为什么在 FLOPs 对齐下它稳定地赢、token choice top-K 路由为什么成为唯一收敛的答案、细粒度专家与共享专家、负载均衡的 F·P 损失与 DeepSeek V3 的「无辅助损失」偏置、专家并行与 token dropping,以及把 DeepSeek V1/V2/V3 一路拆到 MLA 与多 token 预测。youtube转录StanfordCS336MoE课程讲义
  • Stanford CS336 第五讲精读:GPU 硬件、访存瓶颈,以及 Flash Attention 是怎么被逼出来的斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第五讲完整讲义:为什么这一讲只讲单卡硬件、CPU 优化延迟而 GPU 优化吞吐、SM/warp/block 的执行模型与物理内存层级、同样重要的 TPU 支线,以及那张「波浪形」矩阵乘法性能图的三重谜底(roofline、tiling 对齐、wave quantization)——低精度、算子融合、重计算、访存合并、tiling 这五件提速法宝最终如何拼成 Flash Attention。youtube转录StanfordCS336GPU课程讲义
  • Stanford CS336 第六讲精读:Kernels 与 Triton——从 PyTorch 一路降到 PTX斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第六讲完整讲义:为什么 benchmark 之前必须 warm-up 加 cuda.synchronize、torch.profiler 与 Nsight Systems 里 CPU 为什么总跑在 GPU 前面、一行 print 如何毁掉整条流水线、cutlass kernel 名字里的 tile 尺寸,以及「仓库—工厂」的算子融合比喻如何变成三个真实的 GELU 实现——手写 CUDA、Triton、torch.compile——最后用 Triton 写一个融合 softmax 收尾。youtube转录StanfordCS336Triton课程讲义
  • Stanford CS336 第七讲精读:并行(上)——ZeRO/FSDP、流水线并行与张量并行斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第七讲完整讲义:单卡为什么不够用、8 卡一个盒子的网络层级、必须背下来的 all-reduce ≡ reduce-scatter + all-gather、数据并行的显存账单(16 字节每参数、5 份权重)与 ZeRO 三阶段(stage 1 在带宽受限下几乎免费,stage 3 就是 FSDP)、batch size 为什么是一种被花掉的资源、流水线并行的气泡与 zero-bubble 技巧、张量并行的切法与 8 卡经验法则、激活内存公式与序列并行,最后落到 3D/4D 并行的经验法则与 Megatron、DeepSeek、Llama 3 的真实配置。youtube转录StanfordCS336并行训练课程讲义
  • Stanford CS336 第八讲精读:并行(下)——把集合通信、数据/张量/流水线并行写成代码斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第八讲完整讲义:上一讲讲概念,这一讲把概念落成代码。从 1980 年代的集合通信原语讲起(broadcast/scatter/gather/reduce/all-gather/reduce-scatter 与 all-reduce ≡ reduce-scatter + all-gather),再看 PCIe/以太网与 NVLink/NVSwitch 两代硬件(H100:18 条 NVLink 4.0、总带宽 900 GB/s)、NCCL 与 torch.distributed 的分工,然后逐行实现三个 bare-bones 训练脚本——数据并行(在 SGD 里插一行 all-reduce)、张量并行(沿宽度切、一路 all-gather)、流水线并行(按层切、micro-batch 与点对点通信),最后用 JAX/Levanter 的十行代码对照,并总结「重计算 / 存内存 / 存到别的 GPU 再通信」这条贯穿全课的主线。youtube转录StanfordCS336并行训练课程讲义
  • Stanford CS336 第九讲精读:缩放定律(上)——从 1993 年的学习曲线,到 Chinchilla 的三种拟合方法斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第九讲完整讲义,主讲 Tatsunori Hashimoto。这一讲先把缩放定律放回统计学习理论的历史里(VC 维的 1/√m、非参数速率的 n^(−β/(2β+1))、1993 年 Bell Labs 那篇几乎没有引用的学习曲线论文、Hestness 2017 的三阶段曲线),再用两个玩具例子说明'幂律为什么是自然的'(估计均值得斜率 1、非参数回归得斜率 −1/d 与内在维度),然后逐一拆解模型工程里最实用的几件事——架构/优化器选择、深度与宽度、batch size 与临界 batch size、学习率与 muP——最后落到'更多数据还是更大模型':联合缩放定律与 Chinchilla 的三种方法(最小包络、IsoFLOP、联合拟合),以及 Epoch AI 如何通过'从图里取证读点'复现方法三、发现原论文只是曲线拟合的残差没零均值。youtube转录StanfordCS336缩放定律课程讲义
  • Stanford CS336 第十讲精读:推理——为什么 generation 是访存受限的,以及 KV cache 的五种瘦身法斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第十讲完整讲义,主讲 Percy Liang。这一讲把'推理'当成一门系统工程课来讲:先给出一张算力账(算术强度、accelerator intensity、prefill 与 generation 的两阶段模型),说明为什么训练的瓶颈是算力而推理的瓶颈是显存带宽;再用 Llama-2 13B + H100 把延迟、吞吐与 batch size 的三角关系算成具体数字;然后用整场后半段讲 KV cache 的五种瘦身法(GQA、MLA、跨层注意力 CLA、局部注意力、以及它们的组合拳),并跳出 Transformer 看状态空间模型、线性注意力与扩散模型;最后收在两类工程手段上——有损的量化与剪枝、无损的投机解码,以及服务系统里的连续批处理、选择性批处理与 PagedAttention。youtube转录StanfordCS336LLM推理课程讲义
  • Stanford CS336 第十一讲精读:缩放定律(下)——真实世界的 scaling 配方,与 muP 的两条谱条件斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第十一讲完整讲义,主讲 Percy Liang。这是 scaling laws 两讲中的第二讲,也是更偏案例与细节的一讲。上半场把'真实模型是怎么用 scaling law 的'拆成四个案例:Cerebras-GPT 与 MiniCPM 如何用 muP 把超参从规模里解耦、MiniCPM 如何用 WSD(warm-up / stable / decay)学习率把 Chinchilla 复现从 n² 次训练压到近似一次、DeepSeek LLM 如何不靠 muP 直接网格搜索最优 batch 与学习率、以及近一年 Llama 3(约 39:1)、Hunyuan-1(96:1)、MiniMax-01 这些公开 scaling 研究给出了什么。下半场用四十分钟深潜 muP:从两条'谱条件'(初始化时激活为 Θ(1)、走一步梯度后激活变化仍为 Θ(1))出发,在一个深线性网络上推导出 1/√fan-in 的初始化和逐层学习率 fan-out/fan-in(SGD)或 1/fan-in(Adam),再对照大规模消融实验看它什么时候有效、什么时候失效。youtube转录StanfordCS336缩放定律课程讲义
  • Stanford CS336 第十二讲精读:评估——从 perplexity 到 Agent 与安全基准,一场『评估危机』里的方法论斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第十二讲完整讲义,主讲 Percy Liang。这一讲把『评估』拆成四件事——输入、如何调用模型、如何评判输出、如何解读结果——然后带着这条线索走遍今天的评测版图:perplexity 与数据污染、MMLU / MMLU-Pro / GPQA / Humanity's Last Exam 这四代知识型基准、Chatbot Arena / IFEval / AlpacaEval / WildBench 这类指令遵循评测、SWE-bench / Cybench / MLE-bench 与 ARC-AGI 这些 Agent 与推理基准,以及 HarmBench / AIR-Bench / 越狱与『能力 vs 倾向』的安全评测。最后落到两个最容易被忽略的问题:评测离真实用例有多远(quizzing 还是 asking),以及『有效性』——训练集污染、数据质量与『我们到底在评测方法还是评测系统』。youtube转录StanfordCS336模型评估课程讲义
  • Stanford CS336 第十三讲精读:Data 1——数据不会从天上掉下来,从 BERT 的 BooksCorpus 到 Nemotron-CC 的完整数据工程史斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第十三讲完整讲义,主讲 Percy Liang。这一讲把『预训练数据』当成一门工程来教:开场先给出一句暴论——数据是决定语言模型好坏最重要的东西,然后从 BERT 的 BooksCorpus 与 Wikipedia 讲起,走过 Common Crawl、CCNet、C4、WebText、GPT-3、The Pile、MassiveText、LLaMA、RefinedWeb、FineWeb、Dolma、DCLM/DataComp,一直讲到 Nemotron-CC 的『改写 + 任务化』合成路线;中间穿插数据投毒、影子图书馆、代码与问答数据;最后用大段时间讲版权——许可、Creative Commons、合理使用的四个要素、以及『合法也可能被服务条款挡住』。收尾是那句关键的一课:数据不会从天上掉下来,你得动手去弄。youtube转录StanfordCS336数据治理课程讲义
  • Stanford CS336 第十四讲精读:Data 2——过滤与去重的算法机制,从 KenLM、fastText、重要性重采样到布隆过滤器与 MinHash LSH斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第十四讲完整讲义,主讲 Percy Liang。上一讲是数据集的编年史,这一讲转向机制:先把『过滤』抽象成『给定小份高质量目标数据 T 和大量原始数据 R,找出与 T 相似的子集 T′』,再依次讲三种实现——n-gram 语言模型(KenLM / Kneser-Ney)、fastText 线性分类器(词袋 + hashing trick)、以及重要性重采样(DSIR);接着用语言识别、质量过滤、毒性过滤三个案例说明同一套机器怎么复用;后半程进入去重,先分清精确重复与近重复,讲哈希分组与布隆过滤器(含假阳性率的推导与最优哈希函数个数 k≈(m/n)ln2),再讲 Jaccard 相似度、MinHash 的碰撞概率证明、以及 LSH 的『与/或』band 结构如何把相似度概率曲线锐化成一条近乎阶跃的 sigmoid。收尾是那句总结:哈希之所以重要,是因为它把成对的相似与碰撞变成了一元函数,从而让线性时间成为可能。youtube转录StanfordCS336数据治理课程讲义
  • Stanford CS336 第十五讲精读:Alignment——人类怎么把自己的偏好装进模型,从 SFT 到 RLHF斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第十五讲完整讲义,主讲 Tatsunori Hashimoto。这一讲回答一个问题:GPT-3 已经很强了,但那支从 GPT-3 指向 ChatGPT 的箭到底是怎么射出去的?前半程拆三种完全不同的 SFT 数据(FLAN 的 NLP 任务聚合、OpenAssistant 的人类众包、Alpaca 的模型生成),讲为什么『完全正确且非常详细』的数据反而会教模型编造引用、安全微调如何在拒绝与过度拒绝之间走钢丝、mid-training 如何把指令数据塞回预训练;后半程进入 RLHF:成对偏好数据怎么收、标注员是谁为什么重要、生成-验证差距,最后把 InstructGPT 的目标函数、Bradley-Terry 奖励模型、PPO 的三次渐近尝试与 DPO 的完整推导一步步走完。youtube转录StanfordCS336对齐课程讲义
  • Stanford CS336 第十六讲精读:Alignment——从 PPO 到 GRPO,再到 R1 / Kimi / Qwen3 的可验证奖励 RL斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第十六讲完整讲义,主讲 Tatsunori Hashimoto。这一讲先把 RLHF 收尾(DPO 的梯度形状、SimPO 与长度归一化、过优化与校准度崩塌),然后正式转向 RL from verifiable rewards:从最朴素的策略梯度推到 PPO、再推到删掉 value model 与 GAE 的 GRPO;接着逐条拆解 GRPO 的两个理论瑕疵(除以标准差、按长度归一化)以及 Dr. GRPO 的修正;最后用三个案例——DeepSeek-R1、Kimi k1.5、Qwen3——对比同一套思路下不同的配方:奖励怎么设、数据怎么筛、思维链长度怎么控、thinking 模式怎么融合。youtube转录StanfordCS336强化学习课程讲义
  • Stanford CS336 第十七讲精读:Alignment——把策略梯度和 GRPO 的机制拆到底斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第十七讲完整讲义,主讲 Percy Liang,也是全课最后一讲。这一讲不引入新内容,而是把第十六讲 RL from verifiable rewards 的算法机制拆开重讲:从状态/动作/奖励与结果奖励的设定出发,推朴素策略梯度为什么是「被奖励加权的 SFT」、为什么稀疏奖励会让梯度消失;用两个状态的玩具例子讲清方差问题与基线(baseline)的等价变换,再接到优势函数;然后把 GRPO 的代码从头走一遍——排序任务与部分分奖励、compute_deltas 的三种选择、冻结参数与 no_grad、裁剪的重要性比率、低方差 KL 估计,最后用一次真实的小实验说明「损失曲线为什么会骗人」。youtube转录StanfordCS336强化学习课程讲义