硬核拆解:从 PPO 到 GRPO,一文读懂 VLA 大模型背后的强化学习魔法
摘要: 本文深入解析了强化学习(RL)在视觉-语言-动作(VLA)大模型中的应用原理。首先将RL算法分为稳健派(如PPO、GRPO)、探索派(如SAC)和数据派(如RLPD),并重点剖析了VLA如何通过动作离散化将视觉输入转化为具体动作。文章详细拆解了GRPO和PPO的核心算法,前者通过分组PK取代Critic网络节省显存,后者采用截断机制确保训练稳定性。最后揭示了VLA工程实现中的关键技巧,包括
硬核拆解:从 PPO 到 GRPO,一文读懂 VLA 大模型背后的强化学习魔法 🤖
文章目录
你是否也曾迷失在强化学习(RL)的缩写海洋里?
PPO, SAC, DPO, GRPO, Reinforce++, CrossQ… 每一个缩写背后都是复杂的数学推导。特别是当这些算法撞上 VLA(视觉-语言-动作) 大模型时,事情变得更加令人头秃:一个原本用来写诗画画的大模型,到底是怎么学会拧瓶盖、叠衣服的?
今天,我们要拒绝“黑盒”思维。我们将从算法原理、数学公式到工程代码实现的维度,彻底拆解现代强化学习在具身智能(Embodied AI)中的落地细节。
🗺️ 一张图看懂 RL 算法版图
在深入细节前,我们先给这些算法分个类。你可以把它们想象成不同风格的“教练”:
- 稳健派 (On-Policy) —— PPO, GRPO
- 特点: 边做边学,小心翼翼。
- 应用: LLM 和 VLA 的微调(Alignment)。
- 核心逻辑: 既然模型已经很强了(预训练过),微调时就不要改动太大,防止“灾难性遗忘”。
- 探索派 (Off-Policy) —— SAC, CrossQ
- 特点: 大胆尝试,数据利用率极高。
- 应用: 传统的机器人连续控制(关节角度控制)。
- 核心逻辑: 机器人收集数据太慢了,所以要把每一条历史数据都榨干(Replay Buffer)。
- 数据派 (Offline) —— RLPD
- 特点: 吃着碗里的(新数据),看着锅里的(旧演示)。
- 应用: 解决冷启动问题。
🧠 核心解密:VLA 如何把“图”变成“动作”?
很多人最大的困惑是:大模型输出的是字(Token),怎么控制电机?
这就涉及到了 Action Tokenization(动作离散化)。
在 VLA 模型(如 OpenVLA, RT-2)眼中,动作就是一种“外语”。
- 切分 (Binning): 将机械臂关节的活动范围(-180° 到 180°)切成 256 份。
- 扩表: 在词表中加入
<act_0>到<act_255>这些特殊 Token。 - 推理:
- Input:
[Image] + "Put the apple in the box" - Output:
"I see an apple." <act_128> <act_200> ...
- 执行: 机器人读取 Token,反查表得到角度,执行动作。
RL 的本质: 就是调整模型的参数,让它在看到苹果图片时,输出 <act_128>(抓住)的概率变大,输出 <act_0>(抓空)的概率变小。
🔍 深度拆解一:GRPO —— 抛弃 Critic 的极简主义
GRPO (Group Relative Policy Optimization) 是 DeepSeek-R1 背后的功臣,也是目前 VLA 微调的热门选择。
为什么 VLA 偏爱 GRPO?
传统的 RL 需要一个 Value Model (Critic) 来打分。但 VLA 模型动辄 7B、13B 参数,显存里装一个 Actor 就够呛了,再装一个同样大的 Critic 直接 OOM(显存溢出)。
GRPO 说:“我们不要 Critic 了,让学生们分组 PK。”
数学原理与流程
- 分组采样 (Group Sampling):
对于同一个指令 ,让 VLA 生成 组不同的动作序列 。 - 环境打分:
得到奖励 。 - 计算优势 (The Magic Math):
它不与绝对标准比,而是与组内平均分比:
- 直觉: 如果你的分比平均分高,优势 就是正的,模型就要强化这组动作;反之则抑制。
- 损失函数:
结论: GRPO 用统计学代替了神经网络 Critic,省下了一半显存,训练速度飞快。
🛡️ 深度拆解二:PPO —— 带着安全绳攀岩
PPO (Proximal Policy Optimization) 是 RL 界的“白米饭”,最稳,最通用。
核心痛点
如果模型发现某个动作能拿高分,它可能会疯狂增加这个动作的概率(比如从 0.1 暴涨到 0.9)。但这很危险,因为如果那个高分是运气好得来的,模型就学偏了(Collapse)。
核心实现:Clip (截断)
PPO 的 Loss 函数里藏着一个精妙的 min 和 clip 逻辑:
- Ratio:
- Clip: 强制把 Ratio 限制在 之间。
人话翻译: “我觉得这个动作好,可以多做,但这次更新最多只能让概率提升 20%。步子大了容易扯着蛋。”
🛠️ 工程实战:VLA 训练的“潜规则”
在代码实现层面(PyTorch),训练 VLA 还有几个不为人知的 Trick。
1. Shared Backbone (共享主干)
在大多数代码库(如 HuggingFace TRL)中,你不会看到独立的 Critic 网络。
- 架构: 一个巨大的 Transformer (Llama) 作为主干。
- Actor Head:
Linear(Hidden, Vocab_Size) - Value Head:
Linear(Hidden, 1)(如果用 PPO) - LoRA: 通常我们冻结主干,只训练挂在上面的 LoRA 权重,这样显存占用极低。
2. Token Masking (精准打击)
这是最容易写 Bug 的地方。
VLA 的输出包含“思考过程(英语)”和“具体动作(Action Token)”。
- 我们只想强化动作!
- 如果在算 Loss 时不加 Mask,RL 可能会为了最大化奖励,破坏模型的语言能力,导致它开始说胡话。
- 代码实现:
# 只有 Action Token 的位置是 1,其他是 0
action_mask = create_mask(target_tokens)
# 只有被 Mask 选中的 Token 才计算梯度
loss = (policy_loss * action_mask).sum() / action_mask.sum()
3. Reward 的难题
在现实世界训练 VLA,最难的不是算法,是怎么给奖励。
- 机器人摸到了苹果,谁来告诉它“摸到了”?
- 目前最前沿的做法是 VLM as Judge:用 GPT-4o 或 Gemini 看着摄像头的视频流,当裁判给 VLA 打分。
结语
从 PPO 的稳健截断,到 GRPO 的去评委化创新,再到 VLA 独特的动作离散化设计,我们看到了强化学习如何一步步适应大模型时代。
如果你是 RL 新手,建议从 PPO 看起,它是地基;如果你致力于做具身智能大模型,GRPO 和 RLPD 则是你必须征服的高峰。
希望这篇文章能帮你打通 VLA 与 RL 的任督二脉! 🚀
更多推荐


所有评论(0)