Proximal Policy Optimization (PPO) for Large Language Models

主要参考https://yugeten.github.io/posts/2025/01/ppogrpo/ 和一点自己的理解。 LLM的训练通常可以分为pre-training和post-training两个阶段: 预训练(Pre-training): 这是"把大量数据喂给模型"的阶段。模型在大规模网络数据上通过下一个 token 预测(next token prediction)进行训练。简单来说,模型反复做一件事:给定前面的文字,预测下一个词是什么。通过海量文本的训练,模型学会了语言的统计规律、世界知识和基本推理能力。 后训练(Post-training): 目标是在预训练的基础上进一步提升模型的推理能力和对齐程度,它分为两个子阶段: Stage 1: SFT (监督微调,Supervised Finetuning): 用少量高质量的"专家推理数据"对模型做监督学习,比如指令跟随、问答、思维链(Chain-of-Thought)等。模型在这个阶段学习模仿专家的示范。如果我们有无限量的高质量专家数据,SFT 本身就足够了——但现实中我们没有。 Stage 2: RLHF (基于人类反馈的强化学习,Reinforcement Learning from Human Feedback): 核心思路是先让人类标注员对模型输出进行偏好评分,然后训练一个Reward Model来自动化这个评分过程,即模拟人类的评分。最后用强化学习算法(如 PPO、GRPO)引导LLM朝着人类偏好的方向优化。 整个流程可以理解为:pre-training让模型学会回答问题,SFT 让模型回答的像专家,RLHF 让模型说对话,即与人类的细微偏好对齐。DeepSeek R1-Zero 的一个关键创新是跳过了 SFT 阶段,直接在基座模型上做 RL,这样既节省算力,又避免了人工标注数据带来的偏差,还允许模型通过探索自主演化推理能力。 Policy Network 策略网络表示为 $\pi_\theta(a|s)$,其中 $\theta$是可训练的参数,表示对于当前环境状态 $s$,执行动作 $a$的概率。对于 $s$状态下所有可能的action $a \in \mathcal{A}$,有 $\sum_{a \in \mathcal{A}} \pi_\theta (a | s) = 1$。 状态价值函数(State Value Function, Critic): 一个用于评价当前状态 $s$好坏的函数 $V_\gamma(s)$: $$ V_\gamma(s) = \sum_a \pi_\theta(a|s) \cdot Q_{\pi}(s,a) $$ ...

March 19, 2026 · 3 min · JhuoW