<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>LLM Post Training on MIMI&#39;s Blog</title>
    <link>https://blog.shqww.top/en/categories/llm-post-training/</link>
    <description>Recent content from MIMI&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>en</language>
    
    <managingEditor>haoruw@outlook.com (MIMI)</managingEditor>
    <webMaster>haoruw@outlook.com (MIMI)</webMaster>
    
    <copyright>All articles on this blog are licensed under the BY-NC-SA license agreement unless otherwise stated. Please indicate the source when reprinting!</copyright>
    
    <lastBuildDate>Thu, 30 Apr 2026 00:00:00 +0000</lastBuildDate>
    
    
    <atom:link href="https://blog.shqww.top/en/categories/llm-post-training/index.xml" rel="self" type="application/rss&#43;xml" />
    

    
    

    <item>
      <title>LLM后训练(五)--GRPO和DPO</title>
      <link>https://blog.shqww.top/en/post/llmpost5/</link>
      <pubDate>Thu, 30 Apr 2026 00:00:00 &#43;0000</pubDate>
      <author>haoruw@outlook.com (MIMI)</author>
      <guid>https://blog.shqww.top/en/post/llmpost5/</guid>
      <description>
        <![CDATA[<h1>LLM后训练(五)--GRPO和DPO</h1><p>Author: MIMI(haoruw@outlook.com)</p>
        
          <p>本文是LLM后训练的第五篇，介绍了两种基于LLM强化学习的后训练方法：GRPO（Generalized Reward Policy Optimization）和DPO（Direct Preference Optimization）。</p>
        
        <hr><p>Published on 2026-04-30 at <a href='https://blog.shqww.top/'>MIMI's Blog</a>, last modified on 2026-04-30</p>]]>
      </description>
      
        <category>LLM Post Training</category>
      
    </item>
    
    

    <item>
      <title>LLM后训练(四)--RLHF-PPO</title>
      <link>https://blog.shqww.top/en/post/llmpost4/</link>
      <pubDate>Wed, 29 Apr 2026 00:00:00 &#43;0000</pubDate>
      <author>haoruw@outlook.com (MIMI)</author>
      <guid>https://blog.shqww.top/en/post/llmpost4/</guid>
      <description>
        <![CDATA[<h1>LLM后训练(四)--RLHF-PPO</h1><p>Author: MIMI(haoruw@outlook.com)</p>
        
          <p>本文是LLM后训练的第四篇，从这篇开始，会介绍LLM的后训练。而本篇章主要介绍基于人类反馈的强化学习（Reinforcement Learning with Human Feedback, RLHF）以及PPO算法在RLHF中如何应用。</p>
<h2 id="llm的训练阶段">
<a class="header-anchor" href="#llm%e7%9a%84%e8%ae%ad%e7%bb%83%e9%98%b6%e6%ae%b5"></a>
LLM的训练阶段
</h2><p>在介绍RLHF之前，我们先回顾一下LLM的训练阶段。LLM的训练通常分为三个阶段：</p>
<ul>
<li>预训练（Pre-training）：在这个阶段，模型通过大量的文本数据进行训练，学习语言的基本结构和语义。训练完成后模型可以够生成连贯的文本，但可能缺乏特定任务以及指令遵从能力。</li>
<li>有监督微调（Supervised Fine-tuning, SFT）：在这个阶段，模型主要学会指令遵从能力以及下游特定任务的能力。训练数据通常是人类编写的指令-响应对，模型通过模仿这些对话来学习如何更好地理解和执行指令。</li>
<li>强化学习（Reinforcement Learning, RL）：在这个阶段，模型通过强化学习来进一步优化其性能(例如对齐人类偏好，使其说话语气更接近人类。或者提高代码和数学能力)。RLHF是强化学习的一种方法，它利用人类反馈来指导模型的学习过程。</li>
</ul>
<p><img src="/images/llmrl/stage.png" alt="图片描述"></p>
<p>前两个阶段本文不再介绍，下面用强化学习的视角来介绍RLHF。</p>
<h2 id="强化学习视角下的llm">
<a class="header-anchor" href="#%e5%bc%ba%e5%8c%96%e5%ad%a6%e4%b9%a0%e8%a7%86%e8%a7%92%e4%b8%8b%e7%9a%84llm"></a>
强化学习视角下的LLM
</h2><p>在LLM后训练(一)中提到，一个完整的强化学习系统主要包括智能体，环境，状态，动作以及奖励。在LLM的强化学习阶段中，模型可以视为智能体，环境和状态可以视为模型的输入以及已经输出的上下文，动作可以视为模型的当前时刻输出的token，奖励则是根据模型输出的文本质量靠人类或者额外的模型进行评估。下面结合可视化以及PPO详细介绍一下LLM强化学习中的要素：</p>
<h3 id="智能体环境和状态和动作">
<a class="header-anchor" href="#%e6%99%ba%e8%83%bd%e4%bd%93%e7%8e%af%e5%a2%83%e5%92%8c%e7%8a%b6%e6%80%81%e5%92%8c%e5%8a%a8%e4%bd%9c"></a>
智能体，环境和状态，和动作
</h3><p><img src="/images/llmrl/actor_model.png" alt="图片描述"></p>
<p>LLM为智能体，环境和状态就包含了输入的prompt(包括special token、用户输入的token以及工具调用的token等)以及已经输出的token。动作$a_t$则是模型在步骤t采样输出的token。对于LLM来说，离散动作空间相当于是词表的大小，通常是非常大的。而策略$\pi_\theta(a_t|s_t)$则是模型在状态$s_t$下采样动作$a_t$的概率分布，即模型最后一层softmax输出的概率分布， $\theta$为模型的参数。由于LLM自回归的特性，模型每次输出后都会将输出的token直接加入到下一步的环境中，形成新的状态。</p>
<h3 id="actor-model--reference-model">
<a class="header-anchor" href="#actor-model--reference-model"></a>
Actor model &amp; Reference Model
</h3><p><img src="/images/llmrl/ref_model.png" alt="图片描述"></p>
<p>在LLM后训练(三)中提到，PPO需要阶段性地rollout，即需要在$\pi_{\theta_{old}}$上采样生成动作，更新$\pi_{\theta}$模型, $\pi_{\theta_{old}}$ 即为reference model, 作用是提供一个稳定的基准，防止模型在训练过程中发生过大的更新，从而保持训练的稳定性。Reference model一般是SFT输出的模型（即RL阶段最初的模型）。Policy model为更新前的actor model，在每轮更新周期内，policy model对给定prompt进行采样生成动作，并根据奖励信号对actor进行更新。由于采样速度较慢，为了提高数据利用效率，对actor model的使用同一批数据进行多次更新，在多次更新后将模型同步回policy model，然后用新的policy model 进行下一轮采样。在代码实现中，actor model和policy model通常只需要维护同一套权重。而Reference model则需要单独维护一套权重，且在训练过程中保持不变（但是在部分模型中比如DeepSeek会间隔一定步数和actor model进行同步）。</p>
<h3 id="reward-model">
<a class="header-anchor" href="#reward-model"></a>
Reward Model
</h3><p><img src="/images/llmrl/rm.png" alt="图片描述">
奖励模型（Reward Model, RM）负责对Prompt+Response提供真实的奖励信号。它通常对整个序列而非每个token进行打分。如上图所示，奖励模型的输入是Prompt+Response，输出在<EOS>token处取得一个序列级的奖励值。</p>
<p>奖励模型的训练通常是通过人类反馈进行的。具体来说，训练数据由人类标注的Prompt+Response对组成，其中每个Response都有一个对应的质量评分（例如1-5分）。然而，如果人类直接对序列进行具体分值进行打分会出现主观不准确的情况，实际在标注时使用比较的方式进行标注，即给出两个Response让人类选择哪个更好。奖励模型的训练目标是是对于同一个Propmt的不同回答构成的样本对，输出的奖励值能够正确反映人类的偏好, 损失函数为：</p>
$$
\begin{aligned}
\mathcal{L}_{RM}(\phi) = -\sum_{i=1}^N \log \sigma(r_\phi(x_i) - r_\phi(y_i))
\end{aligned}
$$<p>其中，$x_i$和$y_i$分别是同一个Prompt的两个不同回答，$r_\phi(x_i)$和$r_\phi(y_i)$分别是奖励模型对这两个回答的打分，$\sigma$是sigmoid函数。通过最小化这个损失函数，奖励模型能够学习到更好地反映人类偏好的奖励信号。奖励模型通常使用SFT模型进行初始化，一般训练一个Epoch，防止过拟合。</p>
        
        <hr><p>Published on 2026-04-29 at <a href='https://blog.shqww.top/'>MIMI's Blog</a>, last modified on 2026-04-29</p>]]>
      </description>
      
        <category>LLM Post Training</category>
      
    </item>
    
    

    <item>
      <title>LLM后训练(三)--PPO算法</title>
      <link>https://blog.shqww.top/en/post/llmpost3/</link>
      <pubDate>Sun, 26 Apr 2026 00:00:00 &#43;0000</pubDate>
      <author>haoruw@outlook.com (MIMI)</author>
      <guid>https://blog.shqww.top/en/post/llmpost3/</guid>
      <description>
        <![CDATA[<h1>LLM后训练(三)--PPO算法</h1><p>Author: MIMI(haoruw@outlook.com)</p>
        
          <!-- 本文是LLM后训练的第三篇，主要介绍GPT所使用的RLHF（Reinforcement Learning with Human Feedback）方法。RLHF是一种结合了人类反馈的强化学习方法，旨在提升LLM在特定任务上的表现。 -->
<p>本文是LLM后训练的第三篇，主要介绍近端策略优化（Proximal Policy Optimization，简称PPO）算法。PPO算法在LLM后训练中起到举足轻重的作用。PPO算法更像是一个强化学习技巧的集合体，其设计重点在于保证训练的稳定性。因此在介绍PPO算法之前，需要先了解其背后的一些基础背景。</p>
<h2 id="广义优势估计-gae">
<a class="header-anchor" href="#%e5%b9%bf%e4%b9%89%e4%bc%98%e5%8a%bf%e4%bc%b0%e8%ae%a1-gae"></a>
广义优势估计 (GAE)
</h2><p>广义优势估计（Generalized Advantage Estimation, 简称GAE）是一种用于强化学习中的优势函数估计方法。在LLM后训练（二）中，我们提到了TD误差实际上是优势函数的一个估计。然而，这种估计往往是有偏的，因为对状态值函数的估计可能不准确。与之相对，如果使用蒙特卡洛采样实际样本去估计优势函数，虽然可以做到无偏，但是方差会非常大。GAE方法通过引入一个衰减因子$\lambda$，在TD误差和蒙特卡洛采样之间进行权衡，从而得到一个既有较低偏差又有较低方差的优势函数估计。
下面给出TD(0)版本的优势函数估计：
</p>
$$
\begin{align}
\hat{A}_t &= \delta_{t} \nonumber
\\
&= r_t + \gamma V(s_{t+1}) - V(s_t) \nonumber
\end{align}
$$<p>
这里只使用了一个时间步的奖励和状态函数估计，进一步我们可以写出TD(1)版本的优势函数估计：
</p>
$$
\begin{align}
\hat{A}_t &= r_t + \gamma r_{t+1} + \gamma^2V(s_{t+2}) - V(s_t) \nonumber
\\
&= r_t + \gamma V(s_{t+1}) - V(s_t) + \gamma(r_{t+1} + \gamma V(s_{t+2}) - V(s_{t+1})) \nonumber
\\
&= \delta_t + \gamma \delta_{t+1} \nonumber
\end{align}
$$<p>
其中第二个等号使用了逆向递归展开，最终利用不同时间步的TD(0)误差表示出了TD(1)版本的优势函数估计。
以此类推，我们可以得到TD(k)版本的优势函数估计：
</p>
        
        <hr><p>Published on 2026-04-26 at <a href='https://blog.shqww.top/'>MIMI's Blog</a>, last modified on 2026-04-26</p>]]>
      </description>
      
        <category>LLM Post Training</category>
      
    </item>
    
    

    <item>
      <title>LLM后训练(二)--价值函数</title>
      <link>https://blog.shqww.top/en/post/llmpost2/</link>
      <pubDate>Thu, 23 Apr 2026 00:00:00 &#43;0000</pubDate>
      <author>haoruw@outlook.com (MIMI)</author>
      <guid>https://blog.shqww.top/en/post/llmpost2/</guid>
      <description>
        <![CDATA[<h1>LLM后训练(二)--价值函数</h1><p>Author: MIMI(haoruw@outlook.com)</p>
        
          <p>本文是LLM后训练的第二篇，主要介绍强化学习中价值函数以及Advantage Actor-Critic模型(A2C)。</p>
<h2 id="奖励信号的构造方式">
<a class="header-anchor" href="#%e5%a5%96%e5%8a%b1%e4%bf%a1%e5%8f%b7%e7%9a%84%e6%9e%84%e9%80%a0%e6%96%b9%e5%bc%8f"></a>
奖励信号的构造方式
</h2><p>在LLM后训练（一）中，我们介绍了强化学习的基本概念和一些常用的算法，并介绍了最原始的奖励损失函数：</p>
$$
J(\theta) \approx \frac{1}{N} \sum_{i=1}^{N} \left( R(\tau^i) \sum_{t=0}^{T} \log \pi_\theta(a_t^i|s_t^i) \right)
$$<p>这个函数对整条轨迹使用统一的奖励，因此存在一些问题。那么，有没有对每一步动作使用不同奖励的算法呢？假设这种奖励存在，那么奖励信号就可以写入第二个求和符号中：</p>
$$
J(\theta) \approx \frac{1}{N} \sum_{i=1}^{N} \left( \sum_{t=0}^{T} \varPsi_t^i \log \pi_\theta(a_t^i|s_t^i) \right)
$$<p>为了方便表示，假设只针对一条采样轨迹进行分析，忽略下标$i$，将$\varPsi_t^i$简写为$\varPsi_t$。在不同算法中，$\varPsi_t$的定义不同。在介绍A2C算法之前，先总结一下$\varPsi_t$的几种常见构造方式：</p>
<blockquote>
<p>$\varPsi_t = \sum_{t=0}^{T}{r_t}$</p>
</blockquote>
<p>这种方式等价于最原始的奖励损失函数。</p>
<blockquote>
<p>$\varPsi_t =\sum_{t'=t}^{T}{r_{t'}}$</p>
</blockquote>
<p>这种方式考虑了从$t$时刻开始的奖励。</p>
<blockquote>
<p>$\varPsi_t =\sum_{t'=t}^{T}{r_{t'}} - b(s_t)$</p>
</blockquote>
<p>这种方式引入了基线函数$b(s_t)$，用来降低奖励的方差。因为如果只考虑绝对奖励，可能会出现每个奖励都很大或者都很小的情况，从而导致梯度更新不稳定。引入基线后，奖励就变成了某个动作相对于平均水平的“优势”，而训练模型的最终目标正是在候选动作中选择更优动作。$b(s_t)$的定义有很多，这里暂时将其视为采取所有动作时的平均奖励。</p>
<blockquote>
<p>$\varPsi_t = Q(s_t, a_t)$</p>
</blockquote>
<p>这种方式使用动作价值函数作为奖励信号。
它表示在状态$s_t$和该步对应动作$a_t$的条件下，针对策略$\pi$未来奖励的期望值。由于这里使用的是未来奖励的期望值而非一个具体奖励的采样值，因此它可以看作是一个更稳定的奖励信号。
需要注意的是，动作价值函数中的条件期望是针对特定策略$\pi$定义的。在训练过程中，策略可能会随着参数更新而改变（也可能使用固定采样策略，此时不需要考虑策略改变的问题）。</p>
<blockquote>
<p>$\varPsi_t = A(s_t, a_t)$</p>
</blockquote>
<p>这种方式使用优势函数作为奖励信号。优势函数的定义为：</p>
$$A(s_t, a_t) = Q(s_t, a_t) - V(s_t)$$<p>
它表示在状态$s_t$和动作$a_t$条件下，动作价值函数与状态价值函数的差值。状态价值函数的定义为</p>
$$V(s_t) = \mathbb{E}_{\tau \sim \pi} \left[ \sum_{t'=t}^{T} \gamma^{t'-t} r_{t'} \mid s_t \right]$$<p>
它表示在状态$s_t$的条件下，针对策略$\pi$未来奖励的期望值。最终，优势函数表示在状态$s_t$和动作$a_t$的条件下，动作相对于平均水平的“优势”，它可以看作是一个更稳定的奖励信号。</p>
        
        <hr><p>Published on 2026-04-23 at <a href='https://blog.shqww.top/'>MIMI's Blog</a>, last modified on 2026-04-23</p>]]>
      </description>
      
        <category>LLM Post Training</category>
      
    </item>
    
    

    <item>
      <title>LLM后训练(一)--强化学习</title>
      <link>https://blog.shqww.top/en/post/llmpost1/</link>
      <pubDate>Wed, 22 Apr 2026 00:00:00 &#43;0000</pubDate>
      <author>haoruw@outlook.com (MIMI)</author>
      <guid>https://blog.shqww.top/en/post/llmpost1/</guid>
      <description>
        <![CDATA[<h1>LLM后训练(一)--强化学习</h1><p>Author: MIMI(haoruw@outlook.com)</p>
        
          <p>本为 LLM 强化学习后训练梳理与总结。其脉络沿着强化学习的基本概念、算法原理、改进策略、以及在大语言模型后训练中的应用展开。不会涵盖强化学习的所有内容，而是聚焦于与大语言模型后训练相关的部分。主要是理清大语言模型后训练中强化学习的核心逻辑和思路。</p>
<h1 id="强化学习">
<a class="header-anchor" href="#%e5%bc%ba%e5%8c%96%e5%ad%a6%e4%b9%a0"></a>
强化学习
</h1><h2 id="1-背景">
<a class="header-anchor" href="#1-%e8%83%8c%e6%99%af"></a>
1. 背景
</h2><p>强化学习（Reinforcement Learning）是机器学习的一个重要分支，它关注智能体如何在环境中采取行动以最大化某种累积奖励。与监督学习不同，强化学习通常没有标记好的“正确答案”，而是通过试错和延迟奖励来学习最优策略。</p>
<p>强化学习的灵感来源于心理学中的行为主义理论，即生物体通过与环境交互，根据行动产生的后果（奖励或惩罚）来调整自身的行为。这种学习范式使得智能体能够在未知且动态的环境中进行决策，被广泛应用于机器人控制、游戏博弈、自动驾驶和推荐系统等领域。</p>
<p>强化学习的分类如下图所示：
<img src="/images/llmrl/guide.png" alt="图片描述">
(注：上图来源于<a href="https://arxiv.org/abs/2401.13662"><i class="fas fa-link"></i></a>，分类不一定准确，比如Q-Learning也可以算是基于策略的模型)
本主要对大模型后训练中用到的 on-policy 算法进行总结和分析。在此之前，先介绍强化学习的一些基本概念。</p>
<p>一个标准的强化学习系统由以下核心要素组成：</p>
<ul>
<li>智能体：进行学习和决策的主体。</li>
<li>环境：智能体所处的外部世界。</li>
<li>动作：智能体可以执行的操作。</li>
<li>状态：对环境情况的描述。</li>
<li>奖励：环境反馈给智能体的标量信号，用于评价动作的好坏。</li>
</ul>
<h2 id="2-环境状态">
<a class="header-anchor" href="#2-%e7%8e%af%e5%a2%83%e7%8a%b6%e6%80%81"></a>
2. 环境状态
</h2><p>环境状态是强化学习中最基础的概念之一。它是对环境在某一时刻的完整描述，包含了决定未来发展所需的所有信息。</p>
<p>通常用符号 $s_t$ 表示时刻 $t$ 的状态。智能体的目标通常是根据观测到的状态序列，选择最优的动作序列。状态的获取方式通常有两种：</p>
<ul>
<li>完全可观测：智能体能直接感知到环境的真实状态 $s_t$。</li>
<li>部分可观测：智能体只能接收到观测值 $o_t$，观测值可能不包含环境的所有信息（例如，由于视野受限或噪声干扰）。在这种情况下，智能体通常需要维护内部的“信念状态”或历史记录来做决策。</li>
</ul>
<p>在数学上，强化学习过程通常被建模为马尔可夫决策过程 (MDP)。如果状态满足马尔可夫性质，即“未来状态仅依赖于当前状态和当前动作，而与过去的历史无关”，那么该状态是最理想的。</p>
<h2 id="3-奖励函数">
<a class="header-anchor" href="#3-%e5%a5%96%e5%8a%b1%e5%87%bd%e6%95%b0"></a>
3. 奖励函数
</h2><p>奖励函数是强化学习的核心，它定义了强化学习问题追求的量化目标。</p>
<p>在每一个时间步 $t$，环境会根据智能体的动作 $a_t$ 和当前状态 $s_t$，反馈一个标量数值 $r_t$。智能体的终极目标是最大化长期累积奖励。</p>
<p>累积奖励通常通过回报 (Return) 来计算，最常见的计算方式是折扣累积回报，定义如下：</p>
$$ R = r_t + \gamma r_{t+1} + \gamma^2 r_{t+2} + \dots + \gamma^Tr_T = \sum_{k=0}^{T} \gamma^k r_{t+k} $$<p>其中，$\gamma \in [0, 1]$ 是折扣因子。</p>
        
        <hr><p>Published on 2026-04-22 at <a href='https://blog.shqww.top/'>MIMI's Blog</a>, last modified on 2026-04-22</p>]]>
      </description>
      
        <category>LLM Post Training</category>
      
    </item>
    
  </channel>
</rss>
