CS336 Lecture Notes 6

3098 字
15 分钟
CS336 Lecture Notes 6
Warning

本文为本人学习相关开源课程过程中,整理的个人学习笔记及作业解答,核心目的仅用于记录个人学习轨迹、巩固所学知识、梳理学习思路,全程为个人自主学习使用,不具备任何商业用途,也不构成任何形式的课程辅导或标准答案参考。

需特别说明的是,由于本人学习进度及知识储备有限,笔记内容及作业解答中可能存在大量纰漏、思路偏差甚至错误,仅代表本人当时的学习理解,不具备权威性和准确性。

在此郑重提醒:请勿将本文中的任何作业解答复制粘贴,作为自身所修课程的提交答案。任何因抄袭本文内容导致的课程成绩问题、学术诚信问题,均由抄袭者自行承担全部责任,本人不承担任何相关连带责任。

同时,本文所分享的内容均基于开源课程的公开内容整理,尊重原课程创作者的知识产权,若涉及相关内容的版权问题,请及时联系本人,本人将第一时间进行调整或删除。

感谢各位读者的理解与支持,也欢迎大家针对笔记及解答中的问题提出宝贵建议,共同交流学习、共同进步。

Important

Scaling laws (Part II)#

本节对应 Lecture 11: Scaling – Case Study and Details

动机与核心问题#

本节探讨 LLM scaling 的最佳实践:

  1. Chinchilla 的 scaling 方法是否真的有效?
  2. 是否可以在训练和拟合过程中节省计算?
  3. 是否应该选择特定的架构/参数化方式来实现更好的 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 学习率

关键技术:

  1. muP 参数化

    • Scale_emb = 12, Scale_depth = 1.4, init_std = 0.1, lr = 0.01
  2. 最优 Batch Size 分析

    • 使用三种模型大小 (9m, 30m, 170m) 进行实验
    • 发现最优 batch size 与 final loss 呈多项式关系
  3. WSD 学习率调度

    • 将学习率分为 warmup、stable、decay 三个阶段
    • 对于 Chinchilla 风格分析,可在 stable 阶段结束时重启
    • Decay 阶段约占训练的 10%
  4. 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

关键方法:

  1. 小规模运行 + 收集”接近最优”(在最小值的 0.25% 范围内)的模型
  2. WSD 风格学习率:快速 warmup + 两个 10% 的 decay 步骤
  3. 使用 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 配方总结#

模型核心策略
CerebrasGPTmuP 使超参数尺度不变,直接使用 Chinchilla 公式
DeepSeek假设大多数 Transformer 超参数对尺度不变,进行 batch/LR scaling 分析,使用 IsoFLOP 分析模型大小
MiniCPMmuP 使 Transformer + LR 尺度不变,piecewise linear schedule 配合 Chinchilla method 3
LLaMA 3 / Hunyuan仅使用 Isoflops
MiniMax架构选择/决策的 scaling

muP (Maximum Update Parametrization) 深入#

核心思想#

muP 基于以下两个条件(设网络宽度为 nln_l):

  • A1:初始化时激活应保持 Θ(1)
  • A2:一次梯度更新后,激活的变化应为 Θ(1)

推导要点#

条件 A1 的推导: 对于深度线性网络 hl=Wlhl1h_l = W_l h_{l-1},若初始化 WlN(0,σI)W_l \sim N(0, \sigma I)

  • 选择 σ=nl1min(1,nl/nl1)\sigma = n_l^{-1} \min(1, n_l/n_{l-1})
  • 可保证 hl2=nl+o(nl)\|h_l\|^2 = n_l + o(n_l)

条件 A2 的推导: 对于 SGD 更新 ΔWl=ηlhlhl1\Delta W_l = -\eta_l \nabla_{h_l} \ell \cdot h_{l-1}^\top

  • 需要 ΔWl=Θ(nl/nl1)\|\Delta W_l\|_* = \Theta(n_l/n_{l-1})
  • 学习率应设为 ηl=Θ(nl/nl1)\eta_l = \Theta(n_l/n_{l-1})
  • 对于 Adam:ηl=Θ(1/nl1)\eta_l = \Theta(1/n_{l-1})

muP vs 标准参数化#

参数muP标准
初始化Θ(1/nl1)min(1,nl/nl1)\Theta(1/n_{l-1}) \min(1, n_l/n_{l-1})1/nl11/n_{l-1}
学习率 (SGD)nl/nl1n_l/n_{l-1}Θ(1)
学习率 (Adam)1/nl11/n_{l-1}Θ(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 挑战与解决方案#

主要挑战:

  1. 设置模型架构超参数(宽度等)
  2. 设置优化器超参数(LR、batch)
  3. 拟合大型 Chinchilla sweep 所需的计算量

解决方案:

  1. 假设稳定性(或使用 muP)
  2. 在小规模搜索最优 LR/batch,保持固定或预测 scaling
  3. 使用替代学习率调度(WSD 风格)

Evaluation#

本节对应 Lecture 12: Evaluation

核心问题#

Evaluation:给定一个固定模型,它有多”好”?

实际上,evaluation 是一个深刻且丰富的话题——它决定了语言模型的未来。

Evaluation 的目的#

没有唯一的”正确”评估方式,取决于你想回答什么问题:

  1. 用户/公司:做出购买决策(模型 A vs 模型 B)用于特定场景
  2. 研究人员:测量模型的原始能力(如智能)
  3. 商业/政策:了解模型的收益和危害
  4. 模型开发者:获得反馈以改进模型

Evaluation 框架#

进行 evaluation 时需要考虑四个方面:

1. 输入 (Inputs)#

  • 涵盖了哪些用例
  • 是否包含困难输入的尾部样本?
  • 输入是否适配模型(如多轮对话)?

2. 调用 LM 的方式#

  • 如何提示语言模型?
  • 是否使用 chain-of-thought、工具、RAG 等?
  • 评估的是语言模型还是 agent 系统(开发者想要前者,用户想要后者)?

3. 评估输出#

  • 参考输出是否无错误
  • 使用什么指标(如 pass@k)?
  • 如何考虑成本(推理 + 训练)?
  • 如何处理非对称错误(如医疗场景中的幻觉)?
  • 如何处理开放式生成(无 ground truth)?

4. 解释结果#

  • 如何解释一个数字(如 91%)——是否可以部署?
  • 如何评估 train-test overlap 时的泛化能力?
  • 评估的是最终模型还是方法?

Perplexity#

语言模型是序列 token 的概率分布 p(x)p(x)

Perplexity (1/p(D))1/D(1/p(D))^{1/|D|} 测量 pp 对数据集 DD 的概率分配。

用途:

  • 在预训练中最小化训练集的 perplexity
  • 测试集 perplexity 作为评估指标

标准数据集:

  • Penn Treebank (WSJ)
  • WikiText-103 (Wikipedia)
  • One Billion Word Benchmark

为什么仍然有用:

  • 比 downstream task accuracy 更平滑(用于拟合 scaling laws)
  • 通用的(训练中使用),而 task accuracy 可能遗漏一些细节
  • 可以测量下游任务的 conditional perplexity

Perplexity maximalist 观点:

  • 真实分布是 tt,模型是 pp
  • 最佳 perplexity 是 H(t)H(t),当 p=tp = t 时达到
  • 如果有 tt,则可以解决所有任务
  • 通过降低 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 分割
  • 现在:在互联网上训练,不告知数据来源

两种检测方法:

  1. 从模型推断 train-test overlap(利用数据点可交换性)
  2. 鼓励报告规范(如置信区间)

Dataset quality#

  • SWE-Bench → SWE-Bench Verified(修复)
  • 创建 Platinum 版本的 benchmarks

What Are We Evaluating?#

预基础模型时代:评估方法(标准化 train-test 分割) 今天:评估模型/系统(任何方式)

例外:

  • nanogpt speedrun:固定数据,计算达到特定验证损失的时间
  • DataComp-LM:给定原始数据集,使用标准训练流程获得最佳准确率
评估对象目的
Methods鼓励研究者的算法创新
Models/Systems对下游用户有用

无论哪种,都需要定义规则!

Takeaways#

  1. 没有唯一的”正确”评估;选择评估取决于你想测量什么
  2. 始终查看个别实例和预测
  3. 需考虑多个方面:能力、安全、成本、真实性
  4. 明确声明游戏规则(方法 vs 模型/系统)

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
CS336 Lecture Notes 6
https://llm-tech.com.cn/posts/cs336-lec-notes-6/
作者
Ming
发布于
2026-05-04
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Ming
你是来找 Ming 学习的吗
🎉 欢迎来到 Ming 的博客
这里是我的个人博客,分享 AI Infra、LLM 等技术内容。欢迎关注交流!
分类
标签
站点统计
文章
19
分类
6
标签
12
总字数
69,591
运行时长
0
最后活动
0 天前

目录