CS336 学习笔记 05:对齐、GRPO 与多模态

本文最后更新于 2026年9月28日 晚上

CS336 入门辅助学习文档 - 对齐与多模态模块


写在前面:这三讲学什么?

这三讲属于课程的第五大模块——对齐与多模态。

为什么要学这个?因为预训练出来的模型,虽然"懂语言",但还不会"好好说话": - 你问它问题,它可能继续往下写,而不是回答你 - 它可能会说脏话、做坏事 - 它可能不会用工具、不会推理

对齐(Alignment)就是让模型更听话、更有用、更安全。 多模态(Multimodal)就是让模型不仅能处理文字,还能看图、听声音、生成图片。

这是大模型从"技术"走向"产品"的关键一步。

💡 为什么对齐和多模态重要? - 预训练模型 ≠ 好用的产品 - 同样的基础模型,对齐做得好,用户体验就好 - 多模态让模型能处理更多场景(看图、画图、语音)

这也是为什么 ChatGPT 这么火——不是因为它的基础模型最强,而是因为它对齐做得最好、用户体验最好。


第十五讲:对齐 I — 怎么让模型更听话?

15.0 前置知识:预训练之后还有什么?

前面的课讲了预训练——用大量文本数据训练一个语言模型。

预训练出来的模型是什么样的? - 它会"续写"文本——给它开头,它能接着写 - 它有很多知识——知道很多事情 - 但它不会"对话"——你问它问题,它可能继续往下写,而不是回答你

就像一个读了很多书的人,但你跟他说话,他只会自顾自地往下说,不会回答你的问题。

那怎么让它变成 ChatGPT 那样的聊天机器人?

答案是:后训练(Post-training)。

预训练之后,还有两个关键步骤: 1. SFT(Supervised Fine-Tuning,监督微调):用对话数据教模型怎么回答问题 2. RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习):用人类的偏好来进一步优化模型

💡 生活类比: 预训练 = 读了很多书,知识渊博 SFT = 学习怎么跟人说话、怎么回答问题 RLHF = 根据别人的反馈,不断改进自己的说话方式

读书多的人不一定会聊天,需要学习沟通技巧。 模型也是一样——预训练只是基础,对齐才是让它好用的关键。


15.1 SFT:监督微调 — 教模型怎么说话

先讲第一步:SFT(Supervised Fine-Tuning,监督微调)。

15.1.1 什么是 SFT?

SFT 很简单: - 收集一堆"问题-回答"对 - 用这些数据继续训练模型 - 让模型学会"给问题,输出回答"

就像教学生做题——给题目和答案,让学生学。

SFT 数据长什么样?

大概是这样的:

1
2
3
4
5
用户:法国的首都是哪里?
助手:法国的首都是巴黎。

用户:帮我写一封请假邮件。
助手:好的,这是一封请假邮件...

就是一问一答的形式。

模型学了这些之后,就知道:哦,原来用户问问题,我应该回答,而不是继续往下写。

15.1.2 SFT 数据集有哪些?

SFT 数据集有很多,我们来看看几个有名的:

1. FLAN - Google 做的 - 把很多 NLP 任务都改成"指令-回答"的形式 - 特点:任务多,覆盖面广,但风格比较"机械"

2. Alpaca - Stanford 做的 - 用 GPT-3.5 生成的 52K 条指令数据 - 特点:简单、开源、是很多小模型的起点

3. ShareGPT / Vicuna - 从 ShareGPT 网站收集的真实用户对话 - 特点:真实的对话风格,更像人说话

4. OpenAssistant - 社区众包的对话数据 - 特点:完全开放,质量不错

5. WizardLM - 用"进化指令"的方法生成的数据 - 特点:指令更难、更复杂

6. Tulu、Nemotron 等 - 更近期的数据集 - 更大、更多样、质量更高

💡 SFT 数据的演变: - 早期:任务型(FLAN)—— 像做题 - 中期:对话型(Alpaca、ShareGPT)—— 像聊天 - 近期:工具型(Nemotron)—— 会用工具

趋势是越来越复杂、越来越接近真实应用。

15.1.3 SFT 数据里什么最重要?

SFT 数据的质量直接影响模型的效果。那什么最重要呢?

1. 风格(Style) - 回答的长度、语气、格式 - 比如:是简短回答,还是详细解释?是用列表,还是用段落?

研究发现,风格对"用户偏好"影响很大——人往往更喜欢长的、有条理的回答,即使内容差不多。

但风格对"基准测试分数"影响不大——题目做对不对,跟回答风格关系不大。

2. 细节和准确性(Detail & Factuality) - 回答里的细节多不多? - 事实准不准确?

比如,回答里引用了论文、数据,这些是不是真的?

细节多不一定好——如果细节是错的,反而更糟。

3. 多样性(Diversity) - 任务类型多不多? - 风格多不多?

多样性好的话,模型的泛化能力更强——没见过的任务也能做。

4. 规模(Scale) - 数据量有多大?

SFT 数据不需要特别大——几万到几十万条就够了。太多了反而可能过拟合。

⚠️ 注意:SFT 数据不是越多越好。 质量比数量重要——1 万条高质量数据,可能比 100 万条低质量数据效果还好。

为什么?因为 SFT 是"精调"——数据不好,反而会把模型带偏。


15.2 RLHF:基于人类反馈的强化学习

SFT 之后,模型已经会回答问题了。但还不够——怎么让它回答得更好?

这就有了 RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)。

15.2.1 为什么需要 RLHF?

SFT 的问题是什么? - SFT 教模型"模仿"人类的回答 - 但模仿得像,不一定就是"好" - 什么是"好"?这是主观的——不同的人有不同的标准

那怎么办?直接问人!

RLHF 的思路: 1. 让人给模型的回答打分(或者比较哪个更好) 2. 训练一个"奖励模型"(Reward Model)来模拟人类的偏好 3. 用强化学习,让模型最大化奖励

💡 生活类比: SFT = 跟老师学说话(模仿) RLHF = 根据别人的反馈改进(优化)

就像学写作: - 一开始,你模仿范文写(SFT) - 后来,老师给你打分,告诉你哪里好哪里不好,你不断改进(RLHF)

RLHF 能让模型的回答更符合人的偏好。

15.2.2 RLHF 的三个步骤

RLHF 一般分三步:

第一步:收集人类偏好数据 - 给同一个问题,让模型生成多个回答 - 让人来比较:哪个回答更好? - 收集大量这样的"偏好对"

第二步:训练奖励模型(Reward Model) - 用人类的偏好数据,训练一个奖励模型 - 奖励模型的输入是"问题+回答",输出是"分数" - 分数越高,说明回答越好(越符合人类偏好)

第三步:用强化学习优化策略模型 - 用 PPO 等强化学习算法 - 让模型生成回答,奖励模型打分 - 模型根据奖励来调整自己,争取更高的分数

同时,还要加一个 KL 散度惩罚——不能让模型变得太离谱,要跟原来的模型保持一定距离。

15.2.3 PPO 是什么?

PPO(Proximal Policy Optimization,近端策略优化)是 RLHF 最常用的强化学习算法。

PPO 是什么?简单说: - 策略梯度方法的一种 - 核心思想:每次更新不要太大,要"保守"一点 - 用一个"clip"来限制更新的幅度

为什么用 PPO? - 比传统的策略梯度更稳定 - 比 TRPO 更简单 - 效果不错,是强化学习的"标配"

⚠️ 注意:PPO 实现起来挺复杂的。 - 需要价值模型(Value Model) - 需要 GAE(Generalized Advantage Estimation) - 需要各种超参数调优

所以 PPO 虽然效果好,但用起来门槛不低。

15.2.4 RLHF 的问题

RLHF 很好,但也有问题:

问题一:奖励黑客(Reward Hacking) - 模型可能找到"投机取巧"的方法来拿高分 - 比如:说很长的话,虽然内容一般,但人往往觉得长的更好 - 结果:奖励分数很高,但实际质量没提升

问题二:过度优化(Overoptimization) - 优化太多轮之后,模型质量反而下降 - 就像考试刷题库——刷多了,分数高了,但真实能力没提升

问题三:成本高 - 收集人类偏好数据很贵 - 训练奖励模型也很贵 - PPO 训练也很贵

这些问题限制了 RLHF 的效果和规模。


15.3 DPO:更简单的对齐方法

RLHF 太复杂了,有没有更简单的方法?

有!DPO(Direct Preference Optimization,直接偏好优化)。

15.3.1 什么是 DPO?

DPO 的思路很巧妙: - RLHF 是先训奖励模型,再用强化学习优化策略——两步 - DPO 直接用偏好数据优化策略——一步

怎么做到的?通过数学推导,把奖励模型和策略优化合并成一个损失函数。

结果就是: - 不需要单独训练奖励模型 - 不需要强化学习 - 直接用偏好数据做监督学习就行

简单、稳定、效果还不错!

💡 DPO 为什么受欢迎? - 简单:就是普通的监督学习,没有 RL 那套复杂的东西 - 稳定:不容易崩 - 效果好:很多情况下和 PPO 差不多

所以现在很多开源模型都用 DPO,而不是 PPO。

15.3.2 DPO vs PPO

DPO 和 PPO 哪个好?

  • DPO:简单、稳定、容易实现,但灵活性稍差
  • PPO:更灵活、理论上更强大,但复杂、不稳定

对于大多数场景,DPO 已经足够好了。但如果有特殊需求(比如在线学习、复杂的奖励函数),PPO 可能更合适。


15.4 对齐的其他方面

除了 SFT 和 RLHF,对齐还有很多其他方面。

15.4.1 安全对齐

安全对齐是让模型"不说坏话、不做坏事"。

怎么做? - 数据层面:过滤掉有毒、有害的数据 - 训练层面:用安全数据做 SFT 和 RLHF - 推理层面:加内容过滤、安全检查

安全对齐很重要,但也很难——"安全"的定义本身就有争议。

15.4.2 工具使用

现在的模型越来越聪明,会用工具了: - 计算器 - 搜索引擎 - 代码解释器 - 浏览器 - ...

怎么教模型用工具? - SFT 数据里加入工具使用的例子 - 让模型学会"什么时候用工具、怎么用工具"

工具使用是模型从"聊天机器人"变成"智能助手"的关键一步。

15.4.3 推理能力

还有推理能力——让模型会思考、会解题。

怎么做? - 用思维链(Chain of Thought)数据做 SFT - 用数学、代码等推理数据训练 - 用 RLVR(基于可验证奖励的强化学习)来提升

这部分下一节课会详细讲。


15.5 本讲小结

这一讲我们学了对齐的基础知识:

为什么需要对齐 - 预训练模型 ≠ 好用的产品 - 需要教模型怎么说话、怎么回答问题

SFT(监督微调) - 用"问题-回答"对继续训练模型 - 各种 SFT 数据集:FLAN、Alpaca、ShareGPT、OpenAssistant 等 - 数据质量比数量重要

RLHF(基于人类反馈的强化学习) - 三步:收集偏好数据 → 训练奖励模型 → PPO 优化 - PPO:最常用的强化学习算法 - 问题:奖励黑客、过度优化、成本高

DPO(直接偏好优化) - 更简单的对齐方法 - 一步到位,不需要奖励模型和强化学习 - 简单、稳定、效果好

其他方面 - 安全对齐 - 工具使用 - 推理能力


15.6 小白常见问题 Q&A

Q1:SFT 需要多少数据?

A:不需要特别多。

一般来说: - 几万条:基础的对话能力 - 几十万条:比较好的对话能力 - 几百万条:可能过拟合了

质量比数量重要——1 万条高质量数据,可能比 100 万条低质量数据效果还好。

Q2:RLHF 真的有用吗?

A:有用,但不是万能的。

RLHF 能让模型的回答更符合人的偏好——更有用、更安全、更符合期望。

但 RLHF 也有局限: - 不能提升模型的"基础能力"(比如知识、推理) - 容易过度优化 - 成本很高

所以 RLHF 是"锦上添花",不是"雪中送炭"——基础能力还是要靠预训练和 SFT。

Q3:DPO 会取代 PPO 吗?

A:不会完全取代,但会在很多场景替代。

DPO 简单、稳定,适合大多数场景——所以现在很多开源模型都用 DPO。

但 PPO 更灵活,适合更复杂的场景(比如在线学习、多轮奖励)。

两者各有优劣,根据需求选择。

Q4:为什么开源模型的对齐效果不如闭源模型?

A:几个原因: 1. 数据差距:闭源公司有更多、更好的对齐数据 2. 算力差距:闭源公司有更多算力做 RLHF 3. 工程差距:对齐是个工程活,细节很多 4. 用户反馈:闭源产品有大量真实用户反馈,可以不断迭代

但开源模型进步很快,差距在缩小。


15.7 学习路线图

必须掌握: - 为什么需要对齐 - SFT 的基本思想 - RLHF 的三步流程 - DPO 的基本思想 - 对齐的主要挑战

了解即可: - PPO 的具体细节 - 各种 SFT 数据集的细节 - 安全对齐的具体方法 - 工具使用的实现

配合作业: - 作业 5(Alignment)就是做对齐,可以结合这一讲 - 下一讲(L16)会讲 RLVR 和 GRPO,可以接着看


第十六讲:对齐 II — 推理模型与 GRPO

16.0 前置知识:从 RLHF 到 RLVR

上一讲学了 RLHF——用人类的偏好来优化模型。

RLHF 很好,但有个问题:人类偏好是主观的,而且很贵。

那有没有"客观"的奖励?有!

比如数学题:答案对就是对,错就是错,可以自动验证。 比如编程题:跑一下测试用例,过了就是对的。

这种可以自动验证的奖励,叫可验证奖励(Verifiable Rewards)。

用可验证奖励来做强化学习,就叫 RLVR(Reinforcement Learning from Verifiable Rewards)。

💡 RLHF vs RLVR: - RLHF:奖励来自人类偏好 → 主观、贵、覆盖广 - RLVR:奖励来自自动验证 → 客观、便宜、覆盖窄(只能用于有正确答案的任务)

RLHF 适合通用对话,RLVR 适合推理、代码等有明确答案的任务。

为什么 RLVR 重要?因为最近的"推理模型"(比如 OpenAI o1、DeepSeek R1)就是用 RLVR 做出来的!

这一讲我们就来学 RLVR 和它的核心算法 GRPO。


16.1 GRPO:比 PPO 更简单的强化学习

讲 RLVR 之前,先讲一个重要的算法:GRPO(Group Relative Policy Optimization,组相对策略优化)。

16.1.1 PPO 的问题

上一讲学了 PPO——RLHF 最常用的算法。

但 PPO 有个问题:太复杂了。

PPO 需要: - 价值模型(Value Model):估计每个状态的价值 - GAE(Generalized Advantage Estimation):计算优势函数 - 各种超参数调优

价值模型很占内存,也很难训——训不好的话,PPO 效果就差。

那能不能简化一下?把价值模型去掉?

可以!这就是 GRPO 的思路。

16.1.2 GRPO 的核心思想

GRPO 的核心思想很简单:

用"组内归一化"代替价值模型。

什么意思?

对于同一个问题,让模型生成多个回答(一个"组"): - 每个回答都有一个奖励分数 - 计算组内奖励的平均值和标准差 - 用(奖励 - 平均值)/ 标准差 作为"优势"

就这么简单!

不需要价值模型,不需要 GAE——直接用组内的相对位置来估计优势。

💡 通俗理解: 想象一个班级考试: - PPO = 有个"老师"(价值模型)来估计每个学生的水平 - GRPO = 没有老师,直接看学生在班级里的排名

排名靠前的 = 优势为正 = 应该增加这种回答的概率 排名靠后的 = 优势为负 = 应该减少这种回答的概率

简单粗暴,但有效!

16.1.3 GRPO vs PPO

GRPO 和 PPO 比怎么样?

GRPO 的优点: - 简单:不需要价值模型,代码量少很多 - 省内存:不需要存价值模型的参数和梯度 - 稳定:不容易崩 - 效果好:在很多任务上和 PPO 差不多,甚至更好

GRPO 的缺点: - 需要生成多个回答(一个组),计算量大一些 - 理论上不如 PPO"严谨" - 可能有一些偏差(比如标准差归一化不是无偏的)

但实践中,GRPO 非常好用——尤其是在推理任务上。

⚠️ 注意:GRPO 的"组"大小很重要。 - 组太小:估计不准,方差大 - 组太大:计算量大

一般用 8 到 64 个,具体看任务和算力。


16.2 RLVR:用可验证奖励训练推理模型

有了 GRPO,我们就可以做 RLVR 了。

16.2.1 什么是 RLVR?

RLVR(Reinforcement Learning from Verifiable Rewards)就是用可以自动验证的奖励来做强化学习。

比如: - 数学题:答案对不对,可以自动检查 - 编程题:跑测试用例,过没过,可以自动检查 - 逻辑题:答案对不对,可以自动检查

这些任务都有明确的"正确答案",可以自动验证——不需要人来打分。

💡 RLVR 的优势: - 便宜:不需要人来标注,自动就能算奖励 - 客观:对就是对,错就是错,没有主观因素 - 可扩展:想生成多少数据就生成多少

缺点是:只能用于有正确答案的任务,覆盖范围不如 RLHF 广。

16.2.2 RLVR 怎么做?

RLVR 的流程:

1. 准备问题集 - 收集一堆数学题、编程题等 - 这些题都有明确的正确答案,或者可以自动验证

2. 模型生成回答 - 给模型一个问题 - 让它生成多个回答(GRPO 的"组") - 每个回答都包含"思考过程"和"最终答案"

3. 自动计算奖励 - 检查答案对不对 - 对了给高分,错了给低分 - 还可以加一些格式奖励(比如用了思考标签、格式正确等)

4. GRPO 更新模型 - 用组内归一化计算优势 - 更新模型参数 - 重复以上步骤

就这么简单!

💡 为什么 RLVR 能提升推理能力? 因为 RLVR 让模型"探索"了很多不同的解题路径: - 有的路径走通了(答对了)→ 奖励高 → 增加概率 - 有的路径走不通(答错了)→ 奖励低 → 减少概率

模型在这个过程中,慢慢学会了"怎么思考才能做对题"。 这就是推理能力的来源——不是教出来的,是"探索"出来的。


16.3 案例研究:DeepSeek R1

讲了这么多理论,我们来看一个真实的案例:DeepSeek R1。

DeepSeek R1 是 2025 年初发布的一个推理模型,效果非常好——超过了 OpenAI o1,而且完全开源!

它是怎么做的?核心就是 GRPO + RLVR。

16.3.1 R1 的基本设置

基础模型:DeepSeek-V3(一个 671B 参数的 MoE 模型)

奖励设置: - 准确率奖励:答案对不对?对了给 1 分,错了给 0 分 - 格式奖励:有没有用正确的思考标签?格式对不对?

数据:数学、代码等推理题(具体数据没公开)

算法:GRPO

就这么简单!没有什么复杂的东西——就是 GRPO + 大量的推理题。

💡 R1 为什么令人惊讶? 在 R1 之前,大家以为推理模型需要很复杂的技术: - 蒙特卡洛树搜索(MCTS)? - 过程奖励模型(PRM)? - 特殊的架构?

结果 R1 告诉大家:不需要!就是简单的 GRPO + 大量数据,就能做出很强的推理模型。

这就像——大家都以为造火箭需要很神秘的技术,结果有人说"不就是个大鞭炮嘛",然后真的飞起来了。

16.3.2 R1 的发现

R1 的论文里有几个有趣的发现:

发现一:不需要过程监督 - 很多人以为需要给"思考过程"的每一步都打分(过程监督) - 结果 R1 只用了最终结果的奖励(结果监督),效果就很好 - 过程监督没什么额外增益

发现二:数据量很重要 - 数据越多,效果越好 - 而且是"越多越好"——没有饱和的迹象 - 说明 RLVR 的 scaling law 很好

发现三:小模型也能有不错的效果 - 他们还做了一个 7B 的版本(R1-Zero) - 虽然不如大模型,但也有不错的推理能力 - 说明 RLVR 对小模型也有效

16.3.3 R1 的影响

DeepSeek R1 影响很大: - 证明了开源模型也能做出顶级的推理能力 - 简化了推理模型的训练方法——大家都能做了 - 引发了一波"推理模型"的热潮

之后,很多模型都跟进了: - Kimi K1.5 - Qwen 3 - 各种小模型的 R1 蒸馏版

可以说,R1 开启了一个新时代。


16.4 其他推理模型

除了 DeepSeek R1,还有一些其他的推理模型。我们快速过一下。

16.4.1 Kimi K1.5

Kimi K1.5 是月之暗面(Moonshot AI)做的推理模型,和 R1 差不多同时发布。

特点: - 也是用 RLVR - 用了 Muon 优化器(之前讲过的) - 效果也很强,和 R1 不相上下

K1.5 和 R1 是"同期生",各有特色。

16.4.2 Qwen 3

Qwen 3 是通义千问的最新模型,也有推理能力。

特点: - 用了 RLVR - 模型更小,但效果不错 - 完全开源

Qwen 3 证明了:即使是中等大小的模型,用 RLVR 也能获得不错的推理能力。

16.4.3 低数据 RLVR

还有一个方向:低数据 RLVR。

RLVR 需要很多数据吗?不一定。

研究发现,即使只有很少的数据(比如几千道题),RLVR 也能有不错的效果。

为什么?因为 RLVR 是"在线学习"——模型自己生成数据,自己探索。

就像学数学——不需要做一万道题,只要认真做几百道,深入思考,也能学得很好。

💡 RLVR 的魅力: RLVR 最酷的地方是:模型自己教自己。

  • 你给它一些题目
  • 它自己尝试各种解法
  • 做对了就"记住",做错了就"改正"
  • 慢慢的,它就越来越聪明

这就像人类的学习过程——通过练习和反馈,不断进步。


16.5 RLVR 的挑战和未来

RLVR 很强大,但也有挑战。

16.5.1 挑战一:奖励的设计

第一个挑战:奖励怎么设计?

看起来简单——对了给 1 分,错了给 0 分。

但实际上有很多细节: - 格式怎么奖励? - 部分正确怎么算? - 要不要惩罚太长的回答? - 要不要鼓励多样性?

奖励设计得不好,模型就会"走偏"——专门钻奖励的空子,而不是真的变聪明。

这就是"奖励黑客"问题——和 RLHF 一样。

16.5.2 挑战二:泛化能力

第二个挑战:泛化能力。

RLVR 训练出来的模型,在训练过的题型上很强。

但遇到没见过的题型呢?会不会就不行了?

这是个开放问题——目前的研究还不够多。

16.5.3 挑战三:通用推理

第三个挑战:能不能推广到通用任务?

现在的 RLVR 主要用于数学、代码等有明确答案的任务。

但更通用的任务呢?比如写作、创意、决策?

这些任务没有明确的"正确答案",很难自动验证。

能不能把 RLVR 的思路推广到更通用的场景?这是未来的方向。

💡 RLVR 的未来: RLVR 是一个很有前景的方向: - 它证明了"推理能力"可以通过强化学习获得 - 它让小模型也能有不错的推理能力 - 它成本低、可扩展

未来,RLVR 可能会和 RLHF 结合—— - RLHF 负责"好不好用" - RLVR 负责"聪不聪明"

两者结合,就是又好用又聪明的模型。


16.6 本讲小结

这一讲我们学了 RLVR 和 GRPO:

GRPO 算法 - 比 PPO 更简单的强化学习算法 - 核心思想:用组内归一化代替价值模型 - 优点:简单、省内存、稳定、效果好

RLVR(基于可验证奖励的强化学习) - 用可以自动验证的奖励来做强化学习 - 适合数学、代码等有明确答案的任务 - 能显著提升模型的推理能力

案例研究 - DeepSeek R1:开源推理模型的里程碑 - Kimi K1.5、Qwen 3 等:跟进的模型 - 低数据 RLVR:少量数据也能有不错效果

挑战和未来 - 奖励设计 - 泛化能力 - 通用推理


16.7 小白常见问题 Q&A

Q1:GRPO 为什么叫"组相对"?

A:因为它的核心是"组"(同一个问题的多个回答)和"相对"(组内的相对位置)。

  • 组:同一个问题生成多个回答
  • 相对:不看绝对分数,看在组里的排名

所以叫"组相对策略优化"。

Q2:RLVR 训练出来的模型,和普通模型有什么不一样?

A:最大的不一样是——它会"思考"了。

普通模型:直接给答案,快但容易错。 RLVR 模型:先想一会儿,一步步推理,然后给答案,慢但更准。

你会看到它输出很长的"思考过程",然后才给出最终答案。

这就像人做题——简单的题直接答,难的题要想一想。

Q3:RLVR 会让模型变笨吗?

A:不会,反而会让模型在推理任务上变聪明。

但 RLVR 主要提升的是"推理能力",对其他能力(比如知识、创意)影响不大。

而且,如果训练不好,可能会有一些副作用(比如回答变得太啰嗦、格式太死板)。

但总体来说,RLVR 是正向的——让模型更聪明。

Q4:我能自己做 RLVR 吗?

A:可以!现在 RLVR 的门槛已经很低了。

你需要: 1. 一个基础模型 2. 一些有正确答案的题目 3. 一个 GRPO 的实现(开源的很多)

然后就能自己训练推理模型了。

当然,要做到顶级效果还是很难的——需要大量数据、大量算力、很多工程细节。

但做一个"能用"的推理模型,已经不难了。


16.8 学习路线图

必须掌握: - RLVR 是什么,为什么重要 - GRPO 的基本思想 - PPO vs GRPO 的区别 - DeepSeek R1 的意义

了解即可: - GRPO 的数学细节 - 各种推理模型的具体实现 - 奖励设计的细节 - 低数据 RLVR 的细节

配合作业: - 作业 5(Alignment)里有 GRPO 的内容,可以动手实践 - 下一讲(L17)会讲多模态模型,可以接着看


第十七讲:多模态模型 — 让模型能看能说

17.0 前置知识:从纯文本到多模态

前面的课讲的都是纯文本的语言模型——输入文字,输出文字。

但真实世界不是只有文字啊! - 我们能看图片、视频 - 我们能听声音、音乐 - 我们能说话、画图

如果模型只能处理文字,那它的能力就很有限。

所以我们需要多模态模型(Multimodal Models)——能同时处理多种"模态"(文字、图片、声音等)的模型。

💡 什么是"模态"? "模态"(Modality)就是信息的形式: - 文字是一种模态 - 图片是一种模态 - 音频是一种模态 - 视频是一种模态

多模态 = 多种信息形式。

终极目标:全能模型(Omni Model) - 输入:任意组合的模态(文字+图片+音频+...) - 输出:任意组合的模态(文字+图片+音频+...) - 就像人一样——能看、能听、能说、能画

现在我们离这个目标还有距离,但进步很快。

这一讲我们就来学多模态模型是怎么做的。


17.1 核心挑战:怎么把不同模态变成 token?

多模态模型的核心挑战是什么?

我们知道,Transformer 处理的是 token——离散的、有语义的单元。

文字好办——有 BPE 分词器,直接切成 token 就行。

那图片呢?音频呢?视频呢?

核心思路:把所有模态都变成 token!

就像文字有分词器一样,我们也需要给图片、音频做"分词"——把它们转换成 token 序列。

💡 统一的思想: 不管是什么模态,都转换成 token。 然后用同一个 Transformer 来处理。

这就是"大一统"的思路——所有模态都用同一套架构处理。

但问题是:图片、音频这些是连续的(像素值、声波),不是离散的。怎么变成 token?

有几种思路: 1. 连续 token:不用离散,直接用连续向量当 token 2. 离散 token:用 VQ-VAE 等方法把连续信号变成离散的 3. 编码器:用一个编码器把图片等编码成向量,然后当 token 用

现在主流的做法是第三种——用编码器。


17.2 CLIP:图像-文本对比学习

在讲多模态模型之前,先讲一个重要的基础:CLIP。

CLIP 是 OpenAI 2021 年做的,虽然不是"多模态模型"(它不能生成文字或图片),但它是很多多模态模型的基础。

17.2.1 CLIP 是做什么的?

CLIP(Contrastive Language-Image Pretraining,对比语言-图像预训练)是做什么的?

简单说:让图片和文字在同一个"语义空间"里。

什么意思? - 一张"猫"的图片,和"一只猫"这句话,它们的向量应该很接近 - 一张"狗"的图片,和"一只猫"这句话,它们的向量应该很远

这样,你就可以用文字来搜索图片,或者用图片来搜索文字。

💡 生活类比: 想象有两种语言——"图片语"和"文字语"。 CLIP 就像一个翻译官——它能把两种语言翻译成同一种"中间语言"(向量)。

这样,虽然图片和文字形式完全不同,但在"中间语言"里,它们是可以比较的。

17.2.2 CLIP 怎么训练?

CLIP 的训练方法很巧妙——对比学习。

怎么做? 1. 准备一大批(图片,文字描述)对——比如 4 亿对 2. 用图像编码器把图片编码成向量 3. 用文本编码器把文字编码成向量 4. 对于每一对(图片,文字),让它们的向量尽可能接近 5. 对于不匹配的(图片,文字),让它们的向量尽可能远

就这么简单!

💡 对比学习的直觉: 想象你在认人: - 看到同一个人的两张照片 → 你知道是同一个人 → "拉近" - 看到不同人的照片 → 你知道不是同一个人 → "推远"

看多了,你就学会了"人脸的特征"——不管照片角度、光线怎么变,你都能认出是谁。

CLIP 也是一样——看多了(图片,文字)对,它就学会了"语义的特征"。

17.2.3 CLIP 的效果

CLIP 的效果怎么样?非常惊人!

在 ImageNet(经典的图像分类数据集)上: - 以前的模型:用 120 万张标注图片训练,Top-1 准确率 76% - CLIP:零样本(没见过 ImageNet 的训练数据),Top-1 准确率 76%

零样本就能跟监督学习打平!

这说明 CLIP 真的学到了通用的视觉-语义知识。

17.2.4 SigLIP:CLIP 的改进

后来又有了 SigLIP——CLIP 的改进版。

改了什么?把损失函数从 softmax 改成了 sigmoid。

有什么好处? - 不需要大 batch size 了(CLIP 需要很大的 batch size 才好) - 训练更稳定 - 效果更好

现在很多新模型用的都是 SigLIP,而不是原始的 CLIP。


17.3 视觉语言模型:让 LLM 能看图

有了 CLIP 这样的图像编码器,我们就可以做视觉语言模型(Vision-Language Models,VLM)了——让大语言模型能看懂图片。

怎么做?很简单: 1. 用图像编码器把图片编码成向量序列 2. 把这些向量当作"特殊的 token",插到文字 token 中间 3. 然后正常用 LLM 处理就行

就这么简单!

💡 通俗理解: 想象 LLM 只会读文字。 你给它一张图片,它看不懂。

但你有一个"翻译官"(图像编码器),能把图片翻译成一段"文字描述"(向量序列)。

然后你把这段"翻译"给 LLM,它就能看懂图片了。

虽然它"看"到的不是真正的图片,而是图片的"翻译",但效果差不多。

17.3.1 LLaVA:最经典的视觉语言模型

LLaVA(Large Language and Vision Assistant) 是最经典的开源视觉语言模型之一。

怎么做的? 1. 图像编码器:用 CLIP 的视觉编码器(ViT-L/14) 2. 投影层:一个简单的线性层,把图像特征映射到 LLM 的维度 3. LLM:用 LLaMA 等开源大语言模型 4. 训练:用指令微调数据(图片+指令+回答)来训练

训练分两步: - 第一步:冻结图像编码器和 LLM,只训练投影层 - 第二步:解冻 LLM,一起微调

简单、有效、开源——所以 LLaVA 很快就火了,成为了很多视觉语言模型的基础。

17.3.2 LLaVA-OneVision:统一的视觉模型

LLaVA 一开始只能处理图片。后来又有了 LLaVA-OneVision——能处理图片、视频、图表等多种视觉输入。

怎么做的? - 用 SigLIP 作为图像编码器 - 支持多种分辨率、多种比例的图片 - 视频就是把每一帧都编码,然后拼起来

越来越通用了。

17.3.3 Qwen-VL 系列

除了 LLaVA,Qwen-VL 系列也是很强的开源视觉语言模型。

特点: - 支持更高分辨率的图片 - 支持中文 - 支持多图(一次看多张图片) - 效果很好

Qwen-VL 已经迭代了好几代:Qwen-VL → Qwen2-VL → Qwen3-VL,一代比一代强。

💡 视觉语言模型的发展趋势: - 分辨率越来越高(从 224×224 到 1024×1024 以上) - 支持的模态越来越多(图片、视频、图表、文档) - 效果越来越好 - 越来越接近"原生多模态"

但目前的视觉语言模型,本质上还是"LLM + 图像编码器"——图像编码器是"外挂"的,不是原生的。


17.4 原生多模态模型:Chameleon

刚才说的视觉语言模型,都是"LLM + 图像编码器"的结构——图像是"外挂"的。

那有没有原生的多模态模型?——同一个模型,既能处理文字,又能处理图片,还能生成图片?

有!比如 Chameleon。

17.4.1 什么是原生多模态?

什么是"原生多模态"? - 不是"LLM + 图像编码器"的拼接 - 而是同一个 Transformer,同时处理文字和图片 - 既能理解文字和图片,也能生成文字和图片

就像人一样——同一个大脑,既能看,又能说,又能画。

17.4.2 Chameleon 是怎么做的?

Chameleon 是 Meta 2024 年做的一个原生多模态模型。

怎么做的?核心思路:把图片也变成 token。

具体来说: 1. 文字:正常的 BPE token 2. 图片:用 VQ-VAE 把图片编码成离散的 token 序列

然后,所有 token(不管是文字的还是图片的)都输入到同一个 Transformer 里。

模型可以: - 输入文字 → 输出文字(普通的语言模型) - 输入图片 → 输出文字(图像理解) - 输入文字 → 输出图片(图像生成) - 输入图片+文字 → 输出图片+文字(多模态对话)

全能!

💡 Chameleon 的巧妙之处: 它把图片也变成了 token——和文字一样。 这样,Transformer 根本"不知道"自己处理的是文字还是图片——对它来说,都是 token。

这才是真正的"大一统"——所有模态都用同一套架构、同一套参数处理。

17.4.3 原生多模态的挑战

原生多模态听起来很美好,但也有挑战:

挑战一:图像 token 太多 - 一张图片,编码成 token 之后,可能有几千甚至几万个 - 而一句话只有几十个 token - 图片 token 太多,会挤占文字的"空间"

挑战二:训练难度大 - 同时训练多种模态,很难平衡 - 图像生成和文本理解的"节奏"不一样 - 容易出现某一种模态好、另一种差的情况

挑战三:数据难搞 - 高质量的图文对数据不多 - 视频数据更少 - 多模态对话数据更少

所以原生多模态虽然方向很好,但目前还在早期阶段——效果还不如专门的视觉语言模型 + 专门的图像生成模型。

但这是未来的方向。


17.5 多模态模型的未来

最后,我们来聊聊多模态模型的未来。

17.5.1 趋势一:越来越统一

第一个趋势:越来越统一。

从"LLM + 图像编码器"的拼接,到原生多模态——架构越来越统一。

未来的模型,可能就是一个统一的 Transformer,能处理所有模态。

17.5.2 趋势二:模态越来越多

第二个趋势:模态越来越多。

从只有文字,到文字+图片,到文字+图片+视频,到文字+图片+音频+视频...

越来越接近"全能模型"。

17.5.3 趋势三:生成能力越来越强

第三个趋势:生成能力越来越强。

现在的多模态模型,大多是"理解"强、"生成"弱——能看图,但画图能力一般。

未来,生成能力会越来越强——既能理解,也能生成,而且质量很高。

17.5.4 终极目标:全能模型

终极目标是什么?全能模型(Omni Model): - 能输入任意模态的组合 - 能输出任意模态的组合 - 能理解、能推理、能创造 - 就像人一样

我们离这个目标还有距离,但每一步都在靠近。

💡 为什么多模态重要? 因为真实世界是多模态的。

  • 你跟人交流,不仅听他说什么,还要看他的表情、手势
  • 你学习知识,不仅看书,还要看图、看视频
  • 你解决问题,不仅用文字,还要用图片、工具

只懂文字的模型,永远只能理解世界的一部分。 只有多模态的模型,才能真正理解这个世界。


17.6 本讲小结

这一讲我们学了多模态模型:

核心思想 - 把所有模态都变成 token - 用同一个 Transformer 处理 - 目标:全能模型(Omni Model)

CLIP / SigLIP - 图像-文本对比学习 - 让图片和文字在同一个语义空间 - 是很多多模态模型的基础

视觉语言模型 - LLaVA:最经典的开源 VLM - Qwen-VL 系列:很强的中文 VLM - 结构:图像编码器 + 投影层 + LLM - 趋势:分辨率越来越高,支持的模态越来越多

原生多模态 - Chameleon:原生多模态模型的代表 - 把图片也变成 token,同一个 Transformer 处理 - 挑战:图像 token 多、训练难、数据少

未来趋势 - 越来越统一 - 模态越来越多 - 生成能力越来越强 - 终极目标:全能模型


17.7 小白常见问题 Q&A

Q1:多模态模型就是"能看图的 ChatGPT"吗?

A:差不多,但不止。

现在的多模态模型大多是"能看图的聊天机器人"——你给它一张图,它能跟你聊这张图。

但未来的多模态模型会更多——能生成图片、能处理视频、能处理音频、能生成视频...

"能看图"只是第一步。

Q2:为什么多模态模型经常看错图片?

A:几个原因: 1. 分辨率不够:很多模型只能看低分辨率的图片,细节看不清 2. 训练数据不够:高质量的图文对数据不多 3. 图像编码器的限制:图像编码器可能丢失了一些信息 4. 推理能力的问题:不是看错了,而是理解错了、推理错了

但进步很快——每年都比前一年好很多。

Q3:原生多模态和"LLM + 图像编码器"哪个好?

A:目前来说,"LLM + 图像编码器"的效果更好、更成熟。

原生多模态是未来的方向,但现在还在早期,效果还不如拼接的。

但长期来看,原生多模态应该是趋势——更统一、更优雅、潜力更大。

Q4:多模态模型会取代纯文本模型吗?

A:不会完全取代,但会越来越重要。

  • 纯文本模型:便宜、快、适合纯文字任务
  • 多模态模型:功能强、贵、慢、适合需要视觉的任务

两者各有各的用处,会长期共存。

但很多应用场景(比如聊天、助手),多模态会越来越主流——因为人是多模态的,你跟人说话的时候也会看图、看表情。


17.8 学习路线图

必须掌握: - 多模态的核心思想(都变成 token) - CLIP 的基本原理和作用 - 视觉语言模型的基本结构 - 原生多模态的概念

了解即可: - CLIP 的训练细节 - LLaVA、Qwen-VL 的具体实现 - Chameleon 的技术细节 - 各种多模态模型的对比


模块小结:对齐与多模态(L15-L17)

这三讲我们学了大模型的"对齐与多模态"——怎么让模型更听话、更有用,以及怎么让模型能看能说。

对齐 I(L15) - 为什么需要对齐:预训练模型 ≠ 好用的产品 - SFT:监督微调,教模型怎么说话 - RLHF:基于人类反馈的强化学习 - DPO:更简单的对齐方法 - 安全对齐、工具使用、推理能力

对齐 II(L16) - RLVR:基于可验证奖励的强化学习 - GRPO:比 PPO 更简单的强化学习算法 - DeepSeek R1:开源推理模型的里程碑 - Kimi K1.5、Qwen 3 等其他推理模型 - 挑战与未来

多模态(L17) - 核心思想:把所有模态都变成 token - CLIP / SigLIP:图像-文本对比学习 - 视觉语言模型:LLaVA、Qwen-VL 等 - 原生多模态:Chameleon 等 - 未来趋势:越来越统一、越来越全能

核心思想 - 对齐是从"技术"到"产品"的关键 - RLVR 让模型自己教自己 - 多模态是理解真实世界的必经之路 - 终极目标:又好用又聪明的全能模型

整个 CS336 课程的主要内容到这里就结束了!

从基础的架构,到系统优化,到缩放定律,到数据与评估,再到对齐与多模态——我们完整地走了一遍大语言模型的全流程。

希望这些内容能帮助你更好地理解大模型,也希望你能在这个 exciting 的领域里继续探索!



CS336 学习笔记 05:对齐、GRPO 与多模态
https://cdro.tech/notes/CS/cs336-05-l15-l17-alignment-grpo-multimodal/
作者
k9Q6CK42
发布于
2026年9月28日
更新于
2026年9月28日
许可协议