CS336 Lecture Notes 6
本文为本人学习相关开源课程过程中,整理的个人学习笔记及作业解答,核心目的仅用于记录个人学习轨迹、巩固所学知识、梳理学习思路,全程为个人自主学习使用,不具备任何商业用途,也不构成任何形式的课程辅导或标准答案参考。
需特别说明的是,由于本人学习进度及知识储备有限,笔记内容及作业解答中可能存在大量纰漏、思路偏差甚至错误,仅代表本人当时的学习理解,不具备权威性和准确性。
在此郑重提醒:请勿将本文中的任何作业解答复制粘贴,作为自身所修课程的提交答案。任何因抄袭本文内容导致的课程成绩问题、学术诚信问题,均由抄袭者自行承担全部责任,本人不承担任何相关连带责任。
同时,本文所分享的内容均基于开源课程的公开内容整理,尊重原课程创作者的知识产权,若涉及相关内容的版权问题,请及时联系本人,本人将第一时间进行调整或删除。
感谢各位读者的理解与支持,也欢迎大家针对笔记及解答中的问题提出宝贵建议,共同交流学习、共同进步。
- 课程网站: https://cs336.stanford.edu/
- Lec0_ 资料: lecture_0x.py
- Lec0_ 资料: lecture_0x.pdf
Scaling laws (Part II)
本节对应 Lecture 11: Scaling – Case Study and Details
动机与核心问题
本节探讨 LLM scaling 的最佳实践:
- Chinchilla 的 scaling 方法是否真的有效?
- 是否可以在训练和拟合过程中节省计算?
- 是否应该选择特定的架构/参数化方式来实现更好的 scaling?
近期模型的 Scaling 实践
CerebrasGPT (2023)
- 模型规模:0.1B 到 13B,使用 Chinchilla 配方训练
- 核心发现:使用 muP (Maximum Update Parametrization) 参数化使 scaling 更加稳定
- 超参数:Scale_emb = 10, lr = 6e-3, init_base = 0.08
MiniCPM (2024)
清华团队开发的小型高性能 LM:
- 模型规模:1-2.5B 参数,性能超越大多数 2B 模型,媲美许多 7B 模型
- 核心策略:muP 稳定 scaling + WSD 学习率
关键技术:
-
muP 参数化:
- Scale_emb = 12, Scale_depth = 1.4, init_std = 0.1, lr = 0.01
-
最优 Batch Size 分析:
- 使用三种模型大小 (9m, 30m, 170m) 进行实验
- 发现最优 batch size 与 final loss 呈多项式关系
-
WSD 学习率调度:
- 将学习率分为 warmup、stable、decay 三个阶段
- 对于 Chinchilla 风格分析,可在 stable 阶段结束时重启
- Decay 阶段约占训练的 10%
-
Chinchilla 分析方法:
- 使用 method 1 (lower envelope) 和 method 3 (joint fit)
- 发现非常高的 data-to-model ratio (192),远超 Chinchilla 的 20 倍规则
DeepSeek (2024)
- 模型规模:7B 和 67B 参数
- 性能:与同等规模的 LLaMA 2 相当
- 策略:不使用 muP,直接估计最优 batch/LR
关键方法:
- 小规模运行 + 收集”接近最优”(在最小值的 0.25% 范围内)的模型
- WSD 风格学习率:快速 warmup + 两个 10% 的 decay 步骤
- 使用 Chinchilla method 2 (IsoFLOP 分析) 进行模型大小权衡
LLaMA 3 (2024)
- Isoflops 风格 scaling (39-1 ratio)
- Compute-to-downstream scaling
Hunyuan-1 (2024)
- Isoflops 风格 scaling(针对 MoE 参数大小)
- 最优 ratio:96-1 (data to active param)
MiniMax-01 (2025)
- 架构 scaling laws + Chinchilla method 1
Scaling 配方总结
| 模型 | 核心策略 |
|---|---|
| CerebrasGPT | muP 使超参数尺度不变,直接使用 Chinchilla 公式 |
| DeepSeek | 假设大多数 Transformer 超参数对尺度不变,进行 batch/LR scaling 分析,使用 IsoFLOP 分析模型大小 |
| MiniCPM | muP 使 Transformer + LR 尺度不变,piecewise linear schedule 配合 Chinchilla method 3 |
| LLaMA 3 / Hunyuan | 仅使用 Isoflops |
| MiniMax | 架构选择/决策的 scaling |
muP (Maximum Update Parametrization) 深入
核心思想
muP 基于以下两个条件(设网络宽度为 ):
- A1:初始化时激活应保持 Θ(1)
- A2:一次梯度更新后,激活的变化应为 Θ(1)
推导要点
条件 A1 的推导: 对于深度线性网络 ,若初始化 :
- 选择
- 可保证
条件 A2 的推导: 对于 SGD 更新 :
- 需要
- 学习率应设为
- 对于 Adam:
muP vs 标准参数化
| 参数 | muP | 标准 |
|---|---|---|
| 初始化 | ||
| 学习率 (SGD) | Θ(1) | |
| 学习率 (Adam) | Θ(1) |
muP 鲁棒性验证
muP 鲁棒的情况:
- ✅ 非线性激活:SwiGLU、Squared ReLU(最优 LR 相同,且都有轻微性能提升)
- ✅ Batch size 变化:较大或较小的 batch size
- ✅ 初始化变体:SP Unembedding、Zero Query
muP 不鲁棒的情况:
- ❌ RMSNorm gain:可学习的 gain 会破坏 muP,但移除 gain 对性能影响很小
- ❌ 异构优化器:如 Lion(基于梯度符号)
- ❌ 强 weight decay (0.1):可能是 muP 最显著的失败案例
muP 的实用性
总体来说,muP 是有用的:
- SP (Standard Parametrization) 相对更不稳定
- muP 参数化/初始化可能更容易调参
实践中的 Scaling 挑战与解决方案
主要挑战:
- 设置模型架构超参数(宽度等)
- 设置优化器超参数(LR、batch)
- 拟合大型 Chinchilla sweep 所需的计算量
解决方案:
- 假设稳定性(或使用 muP)
- 在小规模搜索最优 LR/batch,保持固定或预测 scaling
- 使用替代学习率调度(WSD 风格)
Evaluation
本节对应 Lecture 12: Evaluation
核心问题
Evaluation:给定一个固定模型,它有多”好”?
实际上,evaluation 是一个深刻且丰富的话题——它决定了语言模型的未来。
Evaluation 的目的
没有唯一的”正确”评估方式,取决于你想回答什么问题:
- 用户/公司:做出购买决策(模型 A vs 模型 B)用于特定场景
- 研究人员:测量模型的原始能力(如智能)
- 商业/政策:了解模型的收益和危害
- 模型开发者:获得反馈以改进模型
Evaluation 框架
进行 evaluation 时需要考虑四个方面:
1. 输入 (Inputs)
- 涵盖了哪些用例?
- 是否包含困难输入的尾部样本?
- 输入是否适配模型(如多轮对话)?
2. 调用 LM 的方式
- 如何提示语言模型?
- 是否使用 chain-of-thought、工具、RAG 等?
- 评估的是语言模型还是 agent 系统(开发者想要前者,用户想要后者)?
3. 评估输出
- 参考输出是否无错误?
- 使用什么指标(如 pass@k)?
- 如何考虑成本(推理 + 训练)?
- 如何处理非对称错误(如医疗场景中的幻觉)?
- 如何处理开放式生成(无 ground truth)?
4. 解释结果
- 如何解释一个数字(如 91%)——是否可以部署?
- 如何评估 train-test overlap 时的泛化能力?
- 评估的是最终模型还是方法?
Perplexity
语言模型是序列 token 的概率分布 。
Perplexity 测量 对数据集 的概率分配。
用途:
- 在预训练中最小化训练集的 perplexity
- 测试集 perplexity 作为评估指标
标准数据集:
- Penn Treebank (WSJ)
- WikiText-103 (Wikipedia)
- One Billion Word Benchmark
为什么仍然有用:
- 比 downstream task accuracy 更平滑(用于拟合 scaling laws)
- 是通用的(训练中使用),而 task accuracy 可能遗漏一些细节
- 可以测量下游任务的 conditional perplexity
Perplexity maximalist 观点:
- 真实分布是 ,模型是
- 最佳 perplexity 是 ,当 时达到
- 如果有 ,则可以解决所有任务
- 通过降低 perplexity,最终会达到 AGI
- 警告:这可能不是最有效的方式(在不重要的分布部分花费精力)
类似的任务:
- LAMBADA:cloze 任务,测试长距离依赖
- HellaSwag:常识推理 completion
Knowledge Benchmarks
MMLU (Massive Multitask Language Understanding)
- 57 个学科:数学、美国历史、法律、道德等
- 多选题格式
- 由研究生和本科生从网络免费资源收集
- 实际测试的是知识,而非语言理解
- GPT-3 使用 few-shot prompting 评估
MMLU-Pro
- 移除 MMLU 中嘈杂/简单的问题
- 从 4 个选项扩展到 10 个选项
- 使用 chain-of-thought 评估
- 模型准确率下降 16%-33%(不再饱和)
GPQA (Graduate-Level Google-Proof Q&A)
- 由 61 位 Upwork 上的 PhD 承包商编写问题
- PhD 专家达到 65% 准确率
- 非专家使用 Google 在 30 分钟内达到 34%
- GPT-4 达到 39%
Humanity’s Last Exam
- 2500 个问题:多模态、多学科、多选题 + 简答题
- 提供 $500K 奖池 + 共作者身份给问题创作者
- 经过 frontier LLM 过滤和多阶段审查
Instruction Following Benchmarks
Chatbot Arena
工作机制:
- 互联网随机用户输入 prompt
- 获得两个随机匿名模型的响应
- 用户评价哪个更好
- 基于 pairwise comparisons 计算 ELO 分数
- 特点:live(非静态)输入,可容纳新模型
IFEval (Instruction-Following Eval)
- 在指令中添加简单的合成约束
- 约束可自动验证,但无法验证响应语义
- 指令较简单,约束有些人为
AlpacaEval
- 805 条指令来自各种来源
- 指标:GPT-4 preview 评判下对 GPT-4 preview 的胜率(潜在偏差)
WildBench
- 从 100 万条 human-chatbot 对话中采集 1024 条样本
- 使用 GPT-4 turbo 作为 judge(带 checklist)
- 与 Chatbot Arena 相关性 0.95
Agent Benchmarks
Agent = 语言模型 + agent scaffolding(决定如何使用 LM 的逻辑)
SWEBench
- 2294 个任务,覆盖 12 个 Python 仓库
- 给定代码库 + issue 描述,提交 PR
- 评估指标:单元测试
CyBench
- 40 个 CTF 任务
- 使用首次解决时间衡量难度
MLEBench
- 75 个 Kaggle 竞赛(需要训练模型、处理数据等)
Pure Reasoning Benchmarks
所有上述任务都需要语言和世界知识。能否将推理与知识隔离?
ARC-AGI
由 Francois Chollet 于 2019 年引入:
- 测试抽象推理能力
- 不依赖语言知识
- ARC-AGI-2 更难
Safety Benchmarks
AI 安全的含义是什么?
HarmBench
- 基于 510 种有害行为(违反法律或规范)
AIR-Bench
- 基于监管框架和公司政策
- 分类为 314 个风险类别,5694 条 prompts
Jailbreaking
- 语言模型被训练拒绝有害指令
- GCG (Greedy Coordinate Gradient):自动优化 prompts 以绕过安全
- 可从开源模型(Llama)迁移到闭源模型(GPT-4)
Pre-deployment Testing
- US Safety Institute + UK AI Safety Institute 合作
- 公司在发布前向安全机构提供模型访问(目前是自愿的)
- 安全机构运行评估并向公司报告
安全的复杂性
- 安全的许多方面具有强上下文依赖(政治、法律、社会规范——各国不同)
- 安全不仅仅是拒绝,与能力也不总是对立
- 医疗场景中的幻觉使系统更”有能力”但更不安全
两个影响安全的因素:能力 + 倾向性
- 系统可能有能力做某事,但拒绝执行
- API 模型:倾向性重要
- 开源模型:能力重要(可轻易 fine-tune 移除安全)
Dual-use:网络安全 agent(CyBench 表现好)可用于黑客攻击或渗透测试
Realism
大多数现有 benchmark(如 MMLU)远离真实世界使用。
两种类型的 prompts:
| 类型 | 描述 | 特点 |
|---|---|---|
| Quizzing | 用户知道答案,试图测试系统 | 类似标准化考试 |
| Asking | 用户不知道答案,使用系统获取 | 更真实,为用户创造价值 |
Clio (Anthropic)
- 使用语言模型分析真实用户数据
- 分享人们询问的通用模式
MedHELM
- 之前的医疗 benchmark 基于标准化考试
- 121 个临床任务来自 29 位临床医生,混合私有和公开数据集
注意:真实性和隐私有时是冲突的。
Validity
Train-test overlap
- 机器学习基础:不要在测试集上训练
- 预基础模型时代:有明确的 train-test 分割
- 现在:在互联网上训练,不告知数据来源
两种检测方法:
- 从模型推断 train-test overlap(利用数据点可交换性)
- 鼓励报告规范(如置信区间)
Dataset quality
- SWE-Bench → SWE-Bench Verified(修复)
- 创建 Platinum 版本的 benchmarks
What Are We Evaluating?
预基础模型时代:评估方法(标准化 train-test 分割) 今天:评估模型/系统(任何方式)
例外:
- nanogpt speedrun:固定数据,计算达到特定验证损失的时间
- DataComp-LM:给定原始数据集,使用标准训练流程获得最佳准确率
| 评估对象 | 目的 |
|---|---|
| Methods | 鼓励研究者的算法创新 |
| Models/Systems | 对下游用户有用 |
无论哪种,都需要定义规则!
Takeaways
- 没有唯一的”正确”评估;选择评估取决于你想测量什么
- 始终查看个别实例和预测
- 需考虑多个方面:能力、安全、成本、真实性
- 明确声明游戏规则(方法 vs 模型/系统)
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!