【AI大模型面试宝典七】- 训练优化篇

简介: 【AI大模型面试宝典】聚焦强化学习核心考点:从SARSA轨迹、在线/离线数据来源,到同策略与异策略差异,深入解析PPO、DPO、GRPO等主流算法原理与优化技巧,助你系统掌握RLHF、奖励模型设计及训练稳定性方案,轻松应对大模型面试高频难题,快速提升实战能力,offer拿到手软!

【AI大模型面试宝典系列】从面试高频考点到核心原理拆解,从实战代码到避坑指南,帮你吃透大模型面试的每一个得分点!后续会逐个攻破面试核心模块:基础概念、架构细节、项目实操、行业题套路…… 每篇聚焦一个必考点,既能快速补短板,也能精准练重点 —— 想搞定大模型面试、无痛拿下offer?这系列直接码住!

强化学习的数据

强化学习中,用于优化策略的数据(即 “经验样本”)是智能体与环境交互的 “产物”,核心来源是智能体执行策略后,环境反馈的 “状态 - 动作 - 奖励 - 下一状态”(State-Action-Reward-Next State, SARSA)等信息构成的轨迹(Trajectory)。一条轨迹通常包含以下关键信息(根据任务需求略有差异):
● s:智能体当前所处的状态(如游戏中角色的位置、血量;机器人传感器的读数);
● a:智能体在状态 s 下执行的动作(如游戏中 “向左移动”“释放技能”;机器人 “转动电机”);
● r:执行动作 a 后,环境给予的即时奖励(如游戏中 “击杀敌人得 10 分”;机器人 “避开障碍物得 1 分”);
● s′:执行动作 a 后,环境转移到的下一状态(如角色移动后的新位置;机器人转动后的新姿态);
● done(可选):是否达到终止状态(如游戏结束、机器人完成任务),用于标记轨迹的终点。
这些轨迹的形式如下:$τ=(s_0,a_0,r_0,s_1,a_1,r1,···,s{T-1},a{T-1},r{T-1},s_{T},done=true)$,其中 T 是轨迹长度。
数据来源1:在线学习(Online Learning)
智能体在与环境实时交互的过程中,边采集样本边优化策略。数据是 “即时生成” 的 —— 智能体每执行一个动作,环境就返回反馈(奖励、下一状态),形成 (状态, 动作, 奖励, 下一状态) 的数据序列,这些新数据会立即用于更新策略,然后用更新后的策略继续与环境交互,形成 “交互→收集数据→更新策略→再交互” 的循环。例如,机器人在物理环境中移动、游戏AI与游戏引擎交互等场景,数据随交互实时产生,且与当前策略紧密相关。
根据采集样本的策略与待优化策略的关系,又分为 “同策略采集” 和 “异策略采集”。
数据来源2:离线学习(Offline Learning / Batch Learning)
智能体先通过某种方式(如人类演示、其他策略的历史交互、模拟环境预采集)收集大量 “离线数据集”,之后完全脱离与环境的实时交互,仅通过这个固定数据集优化策略。数据是 “预先固定” 的,策略更新过程中不再与环境产生新交互。

同策略学习(On-Policy )
用待优化的目标策略直接与环境交互,策略自己为自己采集数据,然后更新策略,样本分布与目标策略分布完全一致
典型算法:
● 蒙特卡洛采样:用当前策略采样完整轨迹,基于轨迹的累积奖励更新策略;
● SARSA 算法:用当前策略采样 “状态 - 动作 - 奖励 - 下一状态 - 下一动作”(SARSA)样本,更新 Q 函数(进而优化策略);
● 近端策略优化(PPO):虽支持一定程度的样本复用,但核心样本仍由当前策略在线采集(每次更新策略前,用当前策略采集一批样本)。
● 优点:样本与策略完全对齐,无 “分布偏移” 问题;
● 缺点:样本利用率低(策略更新后,旧样本因分布与新策略不一致而失效,需重新采集),训练效率较低(尤其在复杂环境中,交互成本高)。

异策略学习(Off-Policy )
一个策略(行为策略,Behavior Policy)与环境交互采集样本,另一个策略(目标策略,Target Policy)利用这些样本中学习并优化自己(借别人的经验,提升自己)。样本分布与目标策略分布可能不一致(需用重要性采样(Importance Sampling) 技术,用来修正不同策略之间的 “数据分布差异”)
典型算法:
● Q-Learning:行为策略通常是 “ε- 贪心策略”(90% 选当前最优动作,10% 随机动作,保证探索),目标策略是 “贪心策略”(只选最优动作),用行为策略的样本更新目标策略的 Q 函数;
● 深度 Q 网络(DQN):延续 Q-Learning 的异策略逻辑,用 ε- 贪心策略采集样本存入 “经验回放池”(Replay Buffer),目标 Q 网络从回放池中随机采样样本更新,进一步提升样本利用率。
● 优点:
○ 样本利用率高,异策略的核心优势就是 “数据复用”,可以利用已有的大量离线数据(行为策略采集的样本可存入回放池,被目标策略反复利用),不需要每次更新策略都重新收集数据,适合与 “离线学习” 结合
○ 探索与利用分离(行为策略可专注于探索未知环境,目标策略可专注于优化性能,避免因 “过度探索” 影响策略收敛)。
● 缺点:样本分布与目标策略可能存在偏差,需通过 重要性采样,经验回放池(Experience Replay Buffer) 解决强化学习训练中的数据相关性、样本利用效率低等问题,尤其 等手段缓解,否则可能导致训练不稳定。

重要性采样
重要性采样(Importance Sampling)是一种利用从一个分布中采样得到的数据来估计另一个分布的期望值的方法,在蒙特卡洛方法中是一种常用的技巧,用于提高估计的效率和准确性。这种方法适用于目标分布难以直接采样,或者直接采样效率较低的情况。在强化学习中主要用于解决异策略(Off-policy)学习中 “数据分布不匹配” 的问题。
异策略学习中,通常存在两个独立的策略:

  1. 行为策略(Behavior Policy, $π_β$):负责与环境交互、收集训练数据的策略(可以是旧策略、探索策略,甚至随机策略)。
  2. 目标策略(Target Policy, $π_θ$):正在训练的,想要优化和提升的策略。
    ● 由于两个策略的决策逻辑不同(比如行为策略偏向 “探索”,目标策略偏向 “利用”),它们生成的数据(状态 - 动作序列)服从完全不同的分布。
    如果直接用行为策略收集的数据训练目标策略,会导致估计偏差,这时就可以用到「重要性采样」做分布修正: 通过一个 “权重”,将行为策略的数据 “修正” 为符合目标策略分布的数据,从而消除分布不匹配带来的偏差。

具体来说,假设我们有一个目标分布 $p(x)$ ,我们希望计算函数 $f(x)$ 在该分布下的期望值 ,但是从分布 $p(x)$ 中采样很困难,或者成本很高。这时我们可以引入一个简单的分布 $q(x)$ ,并从$q(x)$ 中采样,然后使用重要性采样来估计 $p(x)$ 下的期望值。
根据期望的定义,我们可以将 $p(x)$ 下的期望值写成(连续变量版,如果是离散的,把积分换成求和):
$$E_{X \sim p(x)}[f(X)] = \int f(x)p(x)dx$$
如果从 $p(x)$ 中采样比较困难,我们可以引入另一个分布 $q(x)$ ,并对上式进行如下变换:
$$E_{X \sim p(x)}[f(X)] = \int f(x)\frac{p(x)}{q(x)}q(x)dx$$
上式可以看做是函数 $f(x)\frac{p(x)}{q(x)}$在分布 $q(x)$ 下的期望,所以可以将其写为:
$$E_{X \sim p(x)}[f(X)] = \int [f(x)\frac{p(x)}{q(x)}]q(x)dx = E_{X \sim q(x)}[f(x)\frac{p(x)}{q(x)}]$$
其中,$\frac{p(x)}{q(x)}$被称为重要性权重。

在强化学习中,通常需要计算目标策略的期望回报,其中 $p(x)$ 代表目标策略 $\pi(a|s)$ ,而 $q(x)$ 可以代表行为策略$\pi_b(a|s)$ 。因此,我们可以使用行为策略 $\pi_b$ 与环境交互产生数据,然后用重要性采样来估计目标策略 $\pi$ 的期望回报,

重要性采样的方差问题:
虽然重要性采样为我们提供了一种计算不同分布期望值的方法,但它也存在一些问题。其中最主要的问题就是方差问题。当 $\frac{p(x)}{q(x)}$ 的值较大时,会导致估计值的方差很大。特别是在强化学习中,如果目标策略和行为策略差异较大,会导致重要性权重的方差很大,进而导致算法不稳定。

图片参考自从Policy Gradient到PPO的来龙去脉
为了解决这个问题,我们可以采取一些措施,例如:
● 截断重要性采样(Truncated Importance Sampling): 当重要性权重超过某个阈值时,将其截断为该阈值,从而降低方差。
● 使用平滑策略: 尽量使目标策略和行为策略的差异不要太大。
以上重要性采样部分参考【强化学习教程 16】Off-Policy的策略梯度方法
策略梯度的更新总结
由上,我们知道了根据未来奖励期望计算的不同,策略梯度的写法有不同的形式,现在为策略梯度设置一个更通用的形式:

其中, $\Psi_t$是一个通用的系数。不同的选择方式会产生不同的策略梯度更新算法,并且它们的性质也会有所不同。
● PG: $\Psit = \sum{t=0}^T \gamma^{t} r_t$, 此时的梯度更新是无偏的,但是方差较大。
REINFORCE :$\Psit = \sum{k=t}^T \gamma^{k-t} r_k$, 此时的梯度更新是无偏的,但是方差较大。
带有基线的REINFORCE :$\Psit = \sum{k=t}^T \gamma^{k-t} r_k - V^\pi(s)$, 通过减去基线,降低了梯度估计的方差。
● 优势函数:$\Psi_t = A^\pi(s,a) = Q^\pi(s,a) - V^\pi(s)$,这是我们前面讨论的优势函数,它也是一种降低方差的手段。

策略梯度方法的问题
学习率的选择:策略参数进行梯度更新来提升策略:$\theta{t+1} = \theta{t} + \alpha \nabla{\theta} J(\theta)$ ,如果学习率选择过大,会导致策略的更新幅度过大,使得策略性能急剧下降,甚至直接崩溃;如果选择过小,会导致策略的更新速度过慢,训练效率低下。
● 数据无法复用: 普通策略梯度 (PG) 的流程如下:
PG 是「采样数据→ 立刻更新 → 数据废弃」的,一批数据只能用一次,更新后数据分布变了,旧数据就不再符合当前策略分布了
a. 用当前策略 $\pi
{\theta_0}$ 采样数据 $s0$;
b. 用采样数据计算策略梯度,更新一次策略参数 ,得到新策略 $\pi
{\theta1}$;
c. 更新后策略已经变了,那么之前由策略 $\pi
{\theta_0}$ 采样得到的数据 $s0$不再符合新策略 $\pi{\theta_1}$的分布,所以无法再用那批数据继续更新策略
d. 重新采样,继续以上操作,继续更新策略
更新无约束:策略更新幅度无约束,新旧策略的分布差异可能过大,导致基于旧策略采样的数据无法有效指导新策略学习,样本利用率低
● 样本方差大: 策略梯度优化一个核心的假设是可以通过采样的方法来估计策略的梯度。但是当问题的规模变得非常大:比如每次轨迹都非常长,又或者策略模型非常大,为了预估准确的梯度,我们就不得不采样多次,否则就会面临方差很高的问题。

信任区域策略优化(Trust Region Policy Optimization,TRPO)近端策略优化(Proximal Policy Optimization,PPO)是对PG的改进,它们通过引入约束或者限制,来确保每次策略的更新不会太大,从而避免策略崩溃,同时又能够保证策略的持续提升。

TRPO和PPO中都有两个策略,一个是旧策略,一个是新策略,先对于普通策略梯度 (PG) 的始终一个策略,他们的区别在哪?
普通策略梯度方法中,每个数据样本只进行一次梯度更新,而TRPO和PPO可以对同一批采样数据进行多个 epoch 的小批量更新 ,可以提高样本复用率,同一批数据可以被充分利用( epoch),每次只更新小步(小批量),可以平稳优化策略,每次更新幅度小,使得新策略不会偏离旧策略太远。为了让TRPO和PPO在同一批旧策略数据上可以进行多个 epoch 的小批量更新(想用旧策略采样数据来估计新策略的期望回报),TRPO和PPO就是用了重要性采样的思想,通过重要性权重$\frac{\pi\theta}{\pi{\theta_{old}}}$ 修正更新后的策略分布和旧策略上采样得到的数据分布的偏差。
TRPO
信任区域策略优化(Trust Region Policy Optimization,TRPO)的核心思想是引入「信任区域」的概念。所谓「信任区域」,指的是在这个区域内,我们可以信任当前的策略梯度,进行策略的更新。当策略更新超出这个信任区域时,我们就需要重新评估策略的性能,并调整更新方向。
TRPO的优化目标函数是:

其中, $\pi{\theta{old}}$是旧策略, $\pi{\theta}$是新策略,$A^{\pi{\theta{old}}}$是优势函数。这个目标函数和普通的策略梯度方法类似,都是希望最大化期望的累积回报。但将累积奖励$$G(\tau)=\sum_{t=0}^T \gamma^t r_t$$改为了优势函数$ A^{\pi{\theta{old}}}$,轨迹是从旧策略$\pi{\theta{old}}$中采样的,目标函数还在优势函数上加了重要性权重$\frac{\pi\theta}{\pi{\theta{old}}}$ ,用于修正更新后的策略分布和旧策略上采样的数据分布的偏差。
TRPO与普通策略梯度方法的区别在于,它引入了一个约束条件,保证新策略与旧策略的差距不能太大:

其中, $D_{KL}$是KL散度,用来衡量两个策略之间的差异; 是一个预先设定的超参数,表示信任区域的大小。这个约束条件确保了新策略不会偏离旧策略太远,从而保证了策略的单调提升。
TRPO的算法流程:

  1. 采样: 用当前策略 $\pi_{\theta0}$ 采数据,把它冻结,命名为 $\pi{\theta_{old}}$ ,表示旧策略
  2. 计算优势函数: 使用GAE或其他方法计算每一步的优势函数值 $A^{\pi{\theta{old}}}(s,a)$。
  3. 构建目标函数和约束条件: 根据上述公式构建TRPO的目标函数和约束条件。
  4. 求解优化问题: 解带约束的优化问题,得到策略更新量 $\delta \theta$。
  5. 更新策略: 使用得到的策略更新量更新策略参数:$\theta{new} = \theta{old} +\delta \theta$。
  6. 迭代: 使用更新后的策略作为新的旧策略,重复上述步骤。

RLHF
RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)是一种结合强化学习和人类反馈的技术,核心是通过人类偏好指导模型优化,使输出更符合人类价值观、安全性和实用性
RLHF流程
RLHF 主要包括3个流程

  1. 第一步:Supervised Fine-Tuning(SFT)监督微调
    用高质量的 “人类指令 - 响应” 数据微调预训练模型,得到初始模型 $model_{sft}$
  2. 第二步:Reward Model(RM)奖励模型训练
    ○ 让模型对同一指令生成多个候选答案,然后人工对后选答案进行质量排序或评分,构建偏好数据集
    ○ 用偏好数据集训练一个奖励模型来预测人类偏好得分
  3. 第三步:Reinforcement Learning(PPO 等)优化策略模型
    ○ 以初始模型 $model{sft}$ 为初始策略,模型的输出由奖励模型打分,作为 RL 的 reward,用强化学习算法(PPO等)优化模型参数,目标是最大化奖励模型的打分(reward)
    ○ 约束:加入 “KL 散度惩罚”(KL Penalty),限制优化后的模型与 SFT 模型的偏离(避免模型忘记预训练知识或输出离谱内容)
    ○ 最终得到对齐人类偏好的模型 $model
    {rlhf}$
    PPO(Proximal Policy Optimization,近端策略优化)
    paper
    PPO 是 OpenAI 提出的强化学习算法,用于在 RLHF 中更新策略模型。
    「近端」一词来源于优化问题中的近端优化(Proximal Optimization)概念。它指的是在优化过程中,通过引入某种约束或惩罚机制,限制每次更新的幅度,使得新策略不会偏离当前策略太远,从而保证优化的稳定性和安全性。
    PPO是TRPO的一种简化版本,它的目标函数是对TRPO的目标函数进行了一些改进
    动机
    ● 传统 RL 中的策略梯度方法容易出现 更新太大导致性能崩坏 的问题
    ● PPO 限制策略更新幅度,确保每次更新不会离旧策略太远
    核心思想
    用 “新旧策略的概率比” 衡量策略变化,在限制策略更新幅度的同时进行优化,以达到稳定、高效的训练结果。

PPO类别
PPO主要有两种实现方式:PPO-Clip 和 PPO-Penalty。
PPO-Clip
PPO-Clip是使用最广泛的一种PPO实现方式,它直接使用上述目标函数进行优化。
PPO-Penalty
PPO-Penalty 则是通过将KL散度约束以惩罚项的形式加入目标函数中,来达到限制策略更新幅度的目的。
$Loss_{penalty} = \mathbb{E}[ r_t(\theta)At - \beta KL(\pi{\theta{old}},\pi{\theta})]$
PPO-Clip
PPO 的有两个关键组件:
● 裁剪机制(Clipping): 限制每次更新的幅度
● 价值网络(Value Network): 相当于评论员Critic,预测"从当前位置开始,预期能得多少分",像一个经验丰富的老师,能预判学生的潜力
对应的,PPO算法使用了两个损失函数:
● 第一个损失函数是近端比率裁剪损失,用于限制策略更新幅度(最核心);
● 第二个损失函数是价值函数损失,用于优化策略。

策略网络:近端比率裁剪损失
PPO算法中,策略网络用于学习和更新策略,这里使用了近端比率裁剪损失,用于限制策略更新幅度。近端比率裁剪损失定义如下:
$Loss_{clip} = \mathbb{E}[ min(r_t(\theta)A_t ,clip(r_t(\theta),1-\epsilon,1+\epsilon)A_t)]$
其中:
● $rt(\theta) = \frac{p{\theta}(a_t | st)}{p{old}(a_t | s_t)}$是策略的更新幅度,表示当前策略$\theta$在状态$s_t$下采取动作$a_t$的概率与旧策略$old$在状态$s_t$下采取动作$a_t$的概率之比,$r_t(\theta)$越大,表示在状态$s_t$下采取动作$a_t$的概率越大,即策略更新幅度越大
● $\epsilon$ 是超参数,用于控制裁剪幅度,通常取0.1~0.2
● $clip(r_t(\theta),1-\epsilon,1+\epsilon)$ 表示将更新幅度$r_t(\theta)$限制在$(1-\epsilon,1+\epsilon)$范围里
● $A_t = Q^\pi(s,a) - V^\pi(s)$ :优势函数,表示在某个状态 s 下,选择某个动作 a 相比于平均水平能提升多少胜率(动作的相对收益,正为优,负为劣)
● 取最小值的原因也是限制策略更新幅度,可分为优势函数为正和负分别讨论
价值网络:价值函数损失
价值函数(由 Critic 网络实现)的核心作用是:
● 输入是状态,输出是该状态的价值估计值(一个标量)
● 估计状态 $s_t$ 的价值$V^\pi(s_t)$ ,即从状态 $s_t$ 开始,遵循当前策略能获得的累积奖励期望。
● 为优势函数 $A_t = Q^\pi(s_t,a_t) - V^\pi(s_t)$ 提供基准。($Q^\pi(s_t,a_t) = rt + \gamma V^\pi(s{t+1})$是动作价值,用即时奖励 $rt$ 和下一状态价值估计 $V^\pi(s{t+1})$ 近似得到),而优势函数是策略优化的核心依据。
PPO 中价值函数损失通常采用均方误差(MSE)损失,目标是让 Critic 网络的预测值 $V^\pi(st)$ 尽可能接近 “真实的累积奖励目标”,价值函数损失定义如下:
$Loss
{value} = \frac{1}{2} \mathbb{E}[(V_{\theta}(st) - V{target}(st))^2]$
其中,$V
{\theta}(s_t)$是Critic 网络(参数为 $\theta$)对状态 $s_t$ 的价值预测(预计从状态 $st$ 开始,遵循当前策略能获得的累积奖励期望”)。
$V
{target}(s_t)$是状态 $st$ 的价值目标(真实累积奖励的估计)。
所以目标值$V
{target}(st)$是从当前时刻 t 开始的所有未来奖励的折扣总和:$V{target}(st) =\sum{k=t}^{T} \gamma^{t-k}r_k$,T是轨迹终止时间步。但实际回报的计算存在一个核心矛盾:当前时刻无法预知未来所有奖励,所以需要通过不同的方法合理估计实际回报。

损失函数
实际实现中,PPO的损失函数通常包含三部分:
$L{total} = L{策略函数损失} - c1 L{价值函数损失} + c2S{\theta}$
其中,$c_1 ,c2$是超参数,用于平衡不同损失函数的权重,$S{\theta}$是策略函数的熵,用于鼓励策略探索,防止策略过早收敛到单一动作

策略函数的熵$S_{\theta}$可以用来衡量策略的不确定性,即策略对于每个状态下的动作的概率分布的随机性。策略的熵越大,策略在每个状态下采取的动作的概率分布就越均匀,策略的探索性就越强。
PPO 的流程
在 RLHF 流程中,PPO 的工作流程如下:

  1. 初始化:用 SFT 模型的权重初始化策略模型(Policy Model),并通常也用它来初始化价值模型(Value Model)。
  2. 采样:从一个指令数据集中随机抽取一个指令(Prompt)。
  3. 生成:策略模型根据指令生成一个回答。
  4. 评估:奖励模型(RM)对“指令-回答”对打分,得到奖励(Reward)。
  5. 价值模型估计状态 $s_t$ 的价值(Value)。
  6. 计算优势:根据奖励和价值计算优势函数。
  7. 更新:使用 PPO 的 Clipped Surrogate Objective 计算损失,并更新策略模型和价值模型的参数。循环:重复步骤 2-6,直到模型收敛。

PPO的算法流程

  1. 采样: 使用旧策略 采样一批轨迹数据。
  2. 计算优势函数: 使用GAE或其他方法计算每一步的优势函数值 。
  3. 构建目标函数: 根据上述公式构建PPO的目标函数。
  4. 优化策略: 使用梯度下降等优化方法,最大化PPO的目标函数,得到新的策略参数 。
  5. 迭代: 使用更新后的策略作为新的旧策略,重复上述步骤。

DPO(Direct Preference Optimization,直接偏好优化)
DPO(Direct Preference Optimization,直接偏好优化)是为解决 PPO 训练复杂问题而生的强化学习方法,核心是‘跳过奖励模型(RM)训练,直接用人类偏好数据优化模型
背景
尽管 PPO 非常成功,但 RLHF 中的 PPO 流程相当复杂。它需要同时维护和训练多个模型(策略模型、价值模型、奖励模型、SFT 参考模型),这使得训练过程非常消耗计算资源和内存,且超参数调整也颇具挑战。正是这些挑战,催生了更简洁的替代方案——DPO。
动机
传统 RLHF 是一个“两步走”的过程:先用偏好数据(A 比 B 好)训练一个能给绝对分数(A 得 90 分,B 得 60 分)的奖励模型,然后再用这个分数去指导强化学习。这个中间的奖励建模步骤不仅复杂,还可能引入误差。
DPO 直接跳过 显式奖励模型 和 RL 采样优化,用一个可解析的似然比目标从偏好数据直接优化策略模型,本质上是将偏好数据转化为一种直接的监督信号
方法

  1. 数据格式:DPO 使用 “成对比较数据”,即对于同一个输入(prompt),人类标注者会给出两个回答(优质回答, 地质回答),记为 $(x,y{chosen},y{reject} )$。
  2. 布拉德利-特里(Bradley-Terry) 偏好模型,常用于比较成对的数据,对于任意两个对象 $i$ 和 $j$ ,若为每个对象分配正实数得分 $p_i$ 和 $p_j$ ,则对象 $i$ 被认为比对象 $j$ 强的概率为:$p(i> j )= \frac{p_i}{p_i+p_j}$
  3. 目标:DPO 的目标是在输入相等的情况下,最大化 “偏好回答” 的概率,同时最小化 “非偏好回答” 的概率

    a. DPO 基于布拉德利-特里(Bradley-Terry) 偏好模型, 假设人类的偏好概率 $p^$ 可以用一个潜在的奖励模型 $r^(y,x)$ 来建模:
    $$ p^*(y_w \succ y_l)= \frac{r^*(y_w,x) }{r^*(y_w,x) + r^*(y_l,x)} $$
    其中,$yw$ 指的是$y{winner}$,即优质回答,$yl$指的是$y{loser}$,即低质回答。 $y_w \succ y_l$ 表示元素 $y_w$ 在某个偏序关系中严格大于(或优于)元素 $y_l$, $ p^*(y_w \succ y_l) $表示策略偏向优质回答的概率,$y_w$ 的奖励比 $y_l$高得越多,人类偏好$y_w$的概率就越大。

    实际场景中,因为$r^(y,x)$ 有正有负,在计算 $p^(y_w \succ y_l)$ 的时候将$r^(y,x)$ 转换为$exp(r^(y,x))$ ,保证其为正实数,因此$$ p^*(y_w \succ y_l)= \frac{exp(r^*(y_w,x)) }{exp(r^*(y_w,x)) + exp(r^*(y_l,x)) } $$

    为避免显式训练一个单独的奖励模型,将潜在的奖励模型 $r^(y,x)$ 定义如下,其中 $\pi ^$ 表示最佳策略(训练时用当前待更新模型 $\pi ^{\theta}$表示),$\pi ^{ref}$ 表示参考策略(当前策略和参考策略都来源于同一个初始模型,但是参考策略参数冻结), $\beta$是超参数,用于缩放奖励。$\pi ^(y,x)$ 表示给定x,策略输出y的概率,奖励模型 $r^(y,x)$ 的含义:待优化模型相对于参考模型,对回答 y 的偏好程度差异。DPO 算法的核心目标是让模型 θ 生成 “人类偏好的回答” 的概率,相对高于 “人类不偏好的回答” 的概率
    $$ r^*(y,x) = \beta log \frac{\pi ^*(y,x) }{\pi ^{ref}(y,x) } + const$$
    把假设的奖励表达式带入$p^(y_w \succ yl)$ ,由下面的恒等式:
    $$log \frac{e^a}{e^a+e^b} = log \frac{1}{1+e^{b-a}} = log \alpha(a-b)$$
    其中$\alpha$表示sigmoid函数,就能得到一个直接可优化的对数似然目标:
    $Loss
    {DPO}(\pi ^ {\theta} ;\pi ^ {ref}) = - log( \alpha (\beta (log \frac{\pi ^ {\theta} (y_w,x)}{\pi ^ {ref} (y_w,x) } - log \frac{\pi ^ {\theta} (y_l,x)}{\pi ^ {ref} (y_l,x) })))$
    DPO希望最小化这个loss,实际上就是最大化$p^
    (y_w \succ y_l)$,即最大化 $y_w$ 被偏好的概率,理想情况,loss的计算中左半部分变大,右半部分变小,即chosen response概率提升,rejected response概率下降,模型训练结束后更倾向选择chosen的答案。
    左边的式子- 右边式子的值,即选择好回答和坏回答的差异:
    ● 左边变大,右边变小,理想情况,good response概率提升,bad response概率下降
    ● 左边变小,右边更小,good response概率下降,但是bad response概率下降的更多,生成的时候还是倾向于good response
    ● 左边变的更大,右边只大了一点点,和2同理
    DPO算法步骤

  4. DPO算法仅包括两个模型:actor model 和 reference model
  5. 微调过程开始时,首先对正在训练的model复制一份,并冻结其可训练参数,成为reference model
  6. 对于每个样本,选择和拒绝的答案由训练和冻结的语言模型评分,这个评分是与每一步所需答案的所有 token 概率的乘积(或和)
  7. 在对选择和拒绝的答案评分后,我们可以计算policy模型给出的评分(R_policy)与冻结reference模型给出的评分(R_reference)之间的比率。
  8. 这些比率然后用于计算最终损失,该损失用于在梯度下降更新中修改模型权重。
    优点
    训练流程简化(仅需 SFT 初始化模型→DPO 单阶段训练)、算力成本低(无需训练 RM 和价值网络);
    缺点
    偏好数据维度少(比如仅二元偏好)时,对齐精细度不如 PPO(PPO 支持多候选排序)。

GRPO(Group Relative Policy Optimization,分队相对策略优化)
我们不仅需要训练本来的大语言模型(也称策略模型),还需要训练一个价值模型,它的大小经常与策略模型相当,这对显存和计算能力有相当的耗费,同时也带来了训练的不稳定等问题。
GRPO(Group Relative Policy Optimization,群组相对策略优化)是一个基于 PPO 的变体,由 DeepSeek 团队在其论文《DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models》中首次提出
它的核心创新在于取消了 价值函数(Critic / Value Network),取而代之的是改为使用多个样本的平均奖励作为基线,从而减少模型结构复杂度和算力开销
背景
PPO 的核心是优势函数$A^\pi(s,a)$ ,它需要一个奖励模型来提供奖励$Q^\pi(s,a)$ ,还需要一个价值模型$V^\pi(s)$来提供基线,即在状态 $s_t$ 下的平均期望回报。训练和维护这个价值模型是 PPO 流程中主要的复杂性和成本来源之一。
方法
GRPO 的核心是对 PPO 中优势函数的计算方式进行了修改。其步骤如下:

  1. 组采样 (Group Sampling):对于一个给定的指令 q,使用当前的策略模型 $\pi ^{\theta}$ 生成一个包含多个回答的组 $o_1,o_2,···,o_n$ 。
  2. 组评估 (Group Evaluation):使用一个奖励函数(可以是一个训练好的奖励模型,也可以是某种可计算的启发式规则,例如代码的执行结果、数学题的答案是否正确等)为组内的每一个回答 $o_i$ 打分,得到奖励 $r_i$。
  3. 组内优势计算 (Group-Relative Advantage Estimation):计算组内所有回答的平均奖励 $\bar{r}$ 和标准差 $\sigma_{r}$ 。对于组内的每一个回答 $o_i$ ,其优势被定义为其归一化后的奖励:$A_i= \frac{r_i- \bar{r}}{\sigma_r}$, 这种方法被称为组内奖励归一化(Group-wise Reward Normalization)。它直接用组内的统计量(均值和标准差)来替代了 PPO 中需要专门训练的价值模型所扮演的角色。
  4. 策略更新:一旦计算出了每个样本的优势 $A_i$ ,接下来的步骤就和 PPO 非常相似了。GRPO 同样使用 Clipped Surrogate Objective 来更新策略模型,对组内每个输出分别计算策略比$rt(\theta)$, (当前策略与旧策略的比值),然后使用 clip 优化目标:
    $Loss
    {grpo-clip} = \mathbb{E}[ min(r_t(\theta)A_t ,clip(r_t(\theta),1-\epsilon,1+\epsilon)A_t)]$
    GRPO 的优势与特点
  5. 高效性: GRPO 最显著的优势是无需价值模型。价值模型通常和策略模型一样大,去掉它可以节省近一半的训练内存和计算量,这对于训练超大规模模型来说意义重大。
  6. 灵活性:GRPO 对奖励函数的定义非常灵活。它不一定需要一个端到端训练的神经网络奖励模型。在某些任务中(如代码生成、数学推理),我们可以设计出可验证的奖励函数(Verifiable Reward Functions)。例如,如果生成的代码能成功运行并通过所有单元测试,就给予高奖励;如果数学题的最终答案正确,也给予高奖励。这种方式使得奖励信号更客观、更廉价。
  7. 稳定性:通过组内归一化,GRPO 使得优势函数的尺度保持在一个稳定的范围内,这有助于稳定训练过程,减少了对超参数的敏感性。

GRPO论文
paper
PPO优化目标如下:

其中:

在 PPO(近端策略优化)中,需要将一个价值函数与策略模型一同训练;并且,为了减轻对奖励模型的过度优化,标准做法是在每个标记(token)的奖励中,加入来自参考模型的逐token KL 散度惩罚。

PPO vs GRPO 流程算法对比:

GRPO优化目标:

需要注意的是,GRPO 并未在奖励中添加 KL 散度惩罚项,而是通过将 “训练策略与参考策略之间的 KL 散度” 直接加入损失函数来实现正则化,从而避免了给优势函数估计的计算带来额外复杂度。
GRPO流程:

μ是一个超参数,它控制了 “在每一批次数据上,对策略模型进行 GRPO 更新的次数”

DAPO
DAPO是字节跳动和清华大学提出的一个对GRPO的改进,其全称是裁剪解耦与动态采样策略优化(Decouple Clip and Dynamic sAmpling Policy Optimization)

Clip-Higher——提高裁剪的上界
这个改进主要基于研究团队在GRPO训练过程中观察到的一个现象——策略模型输出的熵快速下降。这意味着模型随着训练的进行,越来越倾向于利用之前的经验,而很少进行新的探索。研究团队认为,这跟裁剪的上界有关,他们认为,同样的裁剪上界 $\epsilon$,对于较高概率的行为,其被限制后仍然能达到很高的概率,但较低概率的行为,则限制更严。这个某种意义上是有道理的,因为我们裁剪的是重要性比率,即$\frac{\pi{\theta}}{\pi{\theta{old}}}$ ,实际作用到 $\pi{\theta}$上的上界是$(1+\epsilon)\pi{\theta{old}}$ ,原来 \pi{\theta{old}}$越高的,其能增加的也越高。研究团队实验也发现,被上界裁剪的确实多是一些概率较低的标记。
于是研究团队将重要性比率裁剪的上下界进行了解耦:设置两个不同的ϵ,low设置的小一点,high设置的高一点。从而给低概率Token一定增长空间。论文中low被设置成0.2,high被设置成0.28。
动态采样
GRPO中,使用基于规则的奖励,优势的计算是用奖励减去分组的平均奖励再除以分组奖励的标准差,当某些提示词Acc等于1时的梯度消失问题。因为Acc为1时,GRPO一组输出的Reward都是1,Advantage等于0,此时Policy没有优化,因此降低了样本效率。根据经验,精度等于1的样本数量会在训练过程中持续增加。
因此,使用过采样并过滤掉准确度等于1和0的提示词,也就是损失函数中的 s.t. 部分,equivalent的意思是样本时等效的(过滤掉无效的)。具体做法是:在训练前持续采样,直到批次被准确率既不为 0 也不为 1 的样本完全填充。可用于提高训练效率。

使用标记级别的损失
在原来GRPO中,分组内每个样本的损失被赋予了相同的权重(我们是先求每个标记的平均损失,然后再求每个样本的平均损失,解释:由于不同输出序列的长度可能不同(例如有的回答含 10 个 token,有的含 20 个 token),GRPO 会对每个序列中所有 token 的损失项取平均,再在批次内对所有序列的平均损失进一步取平均),这导致了长的优质回答不容易被学习,而长的错误模式(比如不必要的重复等)又不容易被惩罚,导致回答的熵和长度出现异常增长。
为什么较长回复中的Token对总体损失的贡献更低?因为每个样本都被平均到Token级别了,和长度无关了,导致长样本的影响被“稀释”了,对总Loss的贡献和短样本相同。所以就可能导致高质量的长样本学习的较差,而低质量的长文本又无法得到惩罚。
改进部分体现在损失函数的求和部分,改为将 “所有 token 的损失之和” 除以 “所有 token 的总数量”。此时,较长的序列(相比短的)对整体Loss的影响更大。此外,从单个Token的角度来看,如果某种特定的生成模式能够导致奖励的增加或减少,那么无论该模式出现在多长的回复中,它都会被同等地促进或抑制。

超长奖励调整
论文主要研究的是长思维链推理能力的增强,对于一些问题,模型的响应可能会过长,超过了预设的长度限制,传统的做法是进行截断并赋予一个长度惩罚,但这样未免有些粗暴。论文研究团队首先实验了直接在计算损失时不计入被截断的过长样本的损失,发现这样可以很好地稳定训练并提升模型表现。随后,论文研究团队又提出了一个弹性超长惩罚,对于被截断的过长样本,在一定的区间内不予惩罚,超过一定程度后逐步线性增加惩罚,直到一个预设的最大长度,惩罚保持为-1。

GSPO
paper
中文博客:GSPO:迈向持续拓展的语言模型强化学习 | Qwen
动机:
● 在每个 token 级别应用重要性采样,会在长序列中积累高方差,导致训练不稳定。
● 这一问题在 专家混合模型(Mixture-of-Experts, MoE) 中尤为严重,因为 token 级别的路由变化会加剧不稳定性。
GSPO(Group Sequence Policy Optimization,分组序列策略优化)是阿里巴巴的千问团队提出的一个对于GRPO的改进,其核心要义在于将原先GRPO中token级别的重要性比率裁剪改为序列接别的,从而增强训练的稳定性。
设 x 为查询,$\pi{\theta{old}}$为用于采样回复的策略,${yi} {i=1}^G$为采样得到的回复组,$\hat{Ai}$为各个回复的组内相对优势,为需优$\pi{\theta}$化的当前策略。GSPO 采用以下优化目标:

要理解GSPO设计的理念,需要回到重要性比率的意义,PPO引入重要性比率本质上在提高样本的利用率,在策略梯度定理的推导中引入了一个期望,通过采样求平均的方式来近似,但是每次模型更新都重新采样对计算资源会带来巨大的浪费,于是使用重采样,使用之前策略产生的样本但乘以一个重要性比率。
GRPO中,重要性比率是对每个标记计算并应用的,但奖励或者优势又往往是对于整个序列而言的,这就导致了 优化目标和奖励目标的颗粒度不匹配,给训练梯度带来了高方差的噪声,这个噪声会随着长序列而累积并被裁剪操作放大。据此,千问的团队提出了GSPO,在序列级别上应用重要性比率。
这里的 $s_i(θ)$ 即为 GSPO 基于序列似然定义的重要性比率,这种采样权重的设计自然地缓解了逐 token 方差的累积问题,从而显著提升了训练过程的稳定性。
此外,GSPO 对 序列级的重要性比率 $s_i(θ)$还做了 长度归一化,不同问题的回答长度差别很大,如果不归一化,importance ratio 会对长度非常敏感,
最后,因为同一个序列中的所有 token 共用同一个重要性权重,一旦发生 clipping,被裁剪掉的就是 整个序列,而不是像 GRPO 那样只影响部分 token

GFPO

Sample More to Think Less: Group Filtered Policy Optimization for Concise Reasoning
微软:分组过滤策略优化(Group Filtered Policy Optimization,GFPO)
核心思想:少思考,多采样
大型语言模型(LLM)领域日益凸显的问题:“答案虚胖”。使用强化学习(RL)来训练模型解决复杂问题(如数学、编程)时,模型为了获得更高的分数(奖励),倾向于生成越来越长的答案。这种现象被称为“长度爆炸”(Length Inflation)。然而,更长的答案并不总是意味着更高质量的推理。很多时候,增加的文本只是重复、啰嗦的“填充物”,并没有提供实质性的解题步骤,反而增加了计算成本和用户的阅读负担。

GFPO 的核心思想并非设计一种全新的 RL 算法,而是在 GRPO 的框架内引入一个简单而有效的过滤步骤。其理念可以概括为:通过在训练数据层面进行主动筛选,来隐式地塑造模型的行为,而不是依赖复杂的奖励函数工程。
“基于选择性采样的隐式奖励塑造”:传统方法可能会设计复杂的奖励函数来惩罚长度,GFPO另辟蹊径:它不直接修改奖励函数,而是在训练的“原材料”上下功夫。通过在每次训练迭代中生成一大批候选答案,然后只把那些“短小精悍”的答案喂给模型去学习,被拒绝的答案则完全不参与梯度更新。这种“只看好榜样”的学习方式,间接地引导模型朝着我们期望的方向进化。

GFPO 的完整流程如下:

  1. 扩大采样:对于每个问题q ,GFPO 会从当前策略 π 中采样一个比标准 GRPO 更大的响应组 G。例如,如果 GRPO 使用 G=8,GFPO 可能会使用 G=16 或 G=24。这一步的目的是为了增加生成「理想」响应(既正确又简洁的响应)的概率,为后续的筛选提供更丰富的候选池。
  2. 度量与过滤:这是 GFPO 的核心。算法会使用一个用户指定的度量函数 metric(·) 来为采样出的G个响应打分。然后,根据分数对所有响应进行排序,并只选择其中最优的K个响应,形成一个保留子集 S。新的优化指标:除了传统的正确率奖励,GFPO还引入了两个关键的筛选指标:响应长度(Response Length)和 令牌效率(Token Efficiency)(即奖励与长度的比值),引导模型学习简洁性。
  3. 选择性学习:在计算优势函数和策略梯度时,只有被选入子集 S中的K 个响应会被用于学习。对于那些未被选中的响应,它们的优势值将被强制设为零。这意味着这些被「拒绝」的响应不会对模型的参数更新产生任何影响。
    GFPO Vs. GRPO:

GFPO 目标函数:

其关键在于优势函数 的定义:
这里,μ 和 σ 分别是保留子集 S中K 个响应的奖励均值和标准差。最重要的是$m_i$ ,它是一个二进制掩码(mask):如果响应$o_i$ 在子集S 中,则$m_i=1$ ;否则 $m_i=0$。正是这个掩码$m_i$ 实现了选择性学习,它将不符合期望的响应从梯度计算中「屏蔽」掉。
这种机制是一种隐式奖励塑造(Implicit Reward Shaping)。它没有直接修改奖励R本身,而是通过数据过滤,告诉模型什么样的响应是「值得学习的」。这种方法比手动调整多目标奖励函数中的权重(例如 )要更加直接和稳定。
GFPO 的主要干预措施是在 Advantage 估计层面,使其可与任何 GRPO 类似的方法兼容,例如 DAPO、Dr. GRPO 或带有 Dual-Clip PPO 损失的 GRPO。

奖励模型
输入:状态 + 动作 / prompt + 生成结果(任务依赖)。
输出:一个标量分数,衡量质量或偏好。
训练方式:通常直接用 神经网络(尤其是 Transformer、CNN、MLP 等)建模,具体取决于输入模态,如:
● 自然语言任务(RLHF)
○ 用一个大语言模型(Transformer)作为 backbone。
○ 输入是 Prompt + 模型生成的候选文本。
○ 在最后的 [CLS] token 或 pooling 层 上接一个线性头,输出标量 reward。
● 图像任务(如图像生成偏好学习)
○ 用 CNN / Vision Transformer 提取图像特征,最后接一个 MLP 输出标量。
● 强化学习控制任务(IRL/Preference Learning)
○ 输入是状态 s 或 (状态, 动作) (s,a)。
○ 网络一般是 MLP,输出一个 reward 值。

人类偏好标注数据
让人类标注者针对智能体(如初始 LLM)的输出进行标注。
具体操作:先让基础模型(如未经 RLHF 的 GPT-3)对大量用户问题生成多个候选回复(如每个问题生成 3-5 个不同回复),再由标注者对这些回复进行偏好判断。
标注方式(两种核心模式):
● 单样本绝对标注
标注者针对单个回复,按预设标准(如 “准确性、相关性、流畅性、安全性”)打分。
● Pairwise 对比标注
标注者面对两个候选回复(A 和 B),直接判断 “哪个更符合人类偏好”,输出 A>B、B>A 或两者相当。

奖励模型的损失
奖励模型(Reward Model, RM)的 损失函数 一般不是直接 MSE,而是基于 排序/偏好学习 (preference learning) 设计的
针对绝对评分:回归损失(Regression Loss)
目标是让模型预测分与人类标注分的误差最小,常用 均方误差(MSE) 或 平均绝对误差(MAE):
Loss = MSE(模型预测分, 人类标注分)
配对比较损失(Pairwise Loss)最主流场景
基于 Bradley–Terry 的思想,假设人类给了一个偏好对 $(y1,y2)$,并标注说 $y1≻y2$ ,奖励函数打分: $r\theta (y1)$ ,$r\theta (y2)$ ,定义概率:$$p(y1 \succ y2)= \frac{exp(r_\theta (y1)) }{exp(r_\theta (y1)) + exp(r_\theta (y2)) }$$
损失函数:$L(θ)=−log⁡(P(y1 \succ y2))$
由于 $$log \frac{e^a}{e^a+e^b} = log \frac{1}{1+e^{b-a}} = log \alpha(a-b)$$,因此也可以写成$L(θ)=−log⁡(sigmod(y1- y2)) $的形式
思想:如果人类更喜欢 y1,模型就要学到 $r\theta (y1)>r\theta (y2)$
margin优化:
直接优化 “更优行为分数 ≥ 较差行为分数 + 边际值(margin)”,强制两者分数差距至少达到一个阈值margin(避免模型输出微小差异),有时用 Hinge Loss 风格:
$L(θ)=max(0,m-(r\theta (y1)-r\theta (y2)))$
列表排序损失(Listwise Loss)—— 多候选场景
Listwise Ranking Loss 是 奖励模型在有多个候选输出时(不仅仅是二选一)常用的一类偏好损失。它的核心思想是:用 softmax 把奖励模型的打分转化成一个概率分布,然后和人类提供的排序分布做交叉熵损失,让模型对整个列表的分数排序,与真实偏好排序尽可能一致,直接优化 “排序质量”。

  1. 给定同一个输入(例如同一个 prompt),假设模型生成了 n 个候选输出 $y_1,y2,···,yn$,奖励模型打分$r\theta (y_i)$
  2. 把奖励模型的打分转化为一个概率分布:$p(yi)= \frac{exp(r\theta (y_i)) }{\sumj exp(r\theta (y_j)) }$, 这个 softmax 分布表示奖励模型对候选的偏好概率。
  3. 计算真实偏好的理想分布 $q(y_i)$ :
    ● Top-1 选择: 人类只在多个候选里挑出一个“最好”的, 那么$q(y_i)$ 就是一个 one-hot 分布,选择的为1,其余为0
    ● 完整排序(Full ranking): 如果人类给出了一个完整的排序,比如:$y_2≻y_1≻y3$,可按照 $q{y_i} = \frac{1 / rank_i} {Σ_j (1 / rank_j)}$ 计算(rank_i是行为 i 在真实排序中的名次,名次越靠前,q_i越大);
  4. 交叉熵(cross-entropy loss)定义预测分布和人类偏好分布的差异:$Loss = - Σ_i q(y_i) · log(p(y_i))$

奖励函数设计的核心原则
在设计奖励函数前,先了解几个核心原则:

  1. 目标对齐:奖励信号必须清晰、无歧义地指向你希望智能体最终达成的业务目标。
  2. 稀疏性与稠密性: 稀疏奖励只在任务完成或失败时给出(如游戏赢或输),但可能导致学习困难。稠密奖励则提供更频繁的中间反馈,引导智能体学习,通常需要在二者间取得平衡
  3. 可量化:业务目标应能转化为可计算的数值信号。例如,用户体验这类抽象概念,可以通过“用户满意度评分”、“点击率”等指标来量化。
  4. 平衡与权重:当奖励函数包含维度时,需要为不同部分分配合适的权重。
    reward的设计如何和业务结合?
    reward 是优化目标,要想让模型为业务服务,必须让 reward 与业务指标(KPI)强相关。具体流程:明确业务目标 → 找到可量化指标 → 组合成 reward → 增加惩罚项避免模型“投机取巧”
    ● 短视频推荐:在短视频平台的推荐业务中,reward 可以设计为与用户互动相关的指标。例如,用户对视频的点赞、评论、转发行为可以分别赋予不同的正奖励,而用户快速划走视频则给予负奖励。快手的研究团队在短视频推荐场景中,提出了 R1-Reward,其奖励函数包括格式奖励、结果奖励和一致性奖励。格式奖励要求模型的输出符合指定格式,鼓励模型在给出最终答案之前先进行推理;结果奖励则是确保模型最终生成的答案与人类专家的偏好一致;一致性奖励是让模型的分析过程和最终答案保持一致,通过这样的设计提升了短视频推荐的性能。

参考
强化学习入门:基本思想和经典算法 - 知乎 (zhihu.com)
从Policy Gradient到PPO的来龙去脉
强化学习7-PPO(Agent-only) 逐行代码讲解
近端策略优化 (PPO) 算法深度解析
DPO详解
强化学习入门,小学生都可以读懂的DPO,PPO
从 PPO、DPO 到 GRPO:万字长文详解大模型训练中的三大关键算法

相关实践学习
使用PAI+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
相关文章
|
机器学习/深度学习 数据采集 数据挖掘
实战派教学:掌握Scikit-learn,轻松实现数据分析与机器学习模型优化!
【10月更文挑战第4天】Scikit-learn凭借高效、易用及全面性成为数据科学领域的首选工具,简化了数据预处理、模型训练与评估流程,并提供丰富算法库。本文通过实战教学,详细介绍Scikit-learn的基础入门、数据预处理、模型选择与训练、评估及调优等关键步骤,助你快速掌握并优化数据分析与机器学习模型。从环境搭建到参数调优,每一步都配有示例代码,便于理解和实践。
404 2
|
canal 存储 SQL
MySQL数据库同步CDC方案调研
数据库同步是一个比较常见的需求,业务数据一般存储在一致性要求比较高的OLTP数据库中,在分析场景中往往需要OLAP数据库或者比较火的数据湖方案;CDC是数据库同步较为流行的方案,全称是Change Data Capture,主要用于捕捉数据库中变化的数据,然后根据变化的数据写入不同的目标存储。接下来是一些数据库CDC方案的调研及原理探讨,调研方案基于MySQL数据库。
3953 0
MySQL数据库同步CDC方案调研
|
4月前
|
存储 人工智能 数据挖掘
StarRocks Connect 2025 圆满落幕:AI Native 时代,数据分析未来已来
StarRocks Connect 2025 聚焦“连接”,汇聚全球技术领袖,探讨数据分析的现在与未来。从性能引擎到AI Native平台,StarRocks 持续进化,赋能 Shopee、携程、Cisco 等企业实现高效实时分析,并推动开源生态与商业化协同发展。
|
4月前
|
算法 API 数据安全/隐私保护
深度解析京东图片搜索API:从图像识别到商品匹配的算法实践
京东图片搜索API基于图像识别技术,支持通过上传图片或图片URL搜索相似商品,提供智能匹配、结果筛选、分页查询等功能。适用于比价、竞品分析、推荐系统等场景。支持Python等开发语言,提供详细请求示例与文档。
|
4月前
|
存储 人工智能 监控
淘宝闪购基于Flink&Paimon的Lakehouse生产实践:从实时数仓到湖仓一体化的演进之路
本文整理自淘宝闪购(饿了么)大数据架构师王沛斌在 Flink Forward Asia 2025 上海站的分享,深度解析其基于 Apache Flink 与 Paimon 的 Lakehouse 架构演进与落地实践,涵盖实时数仓发展、技术选型、平台建设及未来展望。
988 0
淘宝闪购基于Flink&Paimon的Lakehouse生产实践:从实时数仓到湖仓一体化的演进之路
|
7月前
|
SQL 人工智能 自然语言处理
别让你的大模型被忽悠了,聊聊prompt注入攻击
本文探讨了Prompt工程中的隐私与安全问题,重点分析了“奶奶漏洞”及更广泛的Prompt攻击现象,特别是Prompt注入的原理与防御手段。Prompt注入通过构造恶意输入突破模型限制,使LLM执行非预期操作。文章介绍了直接注入和间接注入类型,并提供了多种防御方案,如输入过滤、强化系统指令、接入第三方校验库及多模型协作防御。此外,还讨论了Prompt逆向工程及其正负影响,以及恶意MCP服务投毒的实际案例,如GitHub Copilot漏洞。最后提出了动态权限控制和持续安全监测等解决策略。
|
机器学习/深度学习 数据采集 算法
Java 大视界 -- Java 大数据机器学习模型在金融衍生品定价中的创新方法与实践(166)
本文围绕 Java 大数据机器学习模型在金融衍生品定价中的应用展开,分析定价现状与挑战,阐述技术原理与应用,结合真实案例与代码给出实操方案,助力提升金融衍生品定价的准确性与效率。
Java 大视界 -- Java 大数据机器学习模型在金融衍生品定价中的创新方法与实践(166)
|
10月前
|
SQL 弹性计算 DataWorks
Flink CDC 在阿里云 DataWorks 数据集成入湖场景的应用实践
Flink CDC 在阿里云 DataWorks 数据集成入湖场景的应用实践
498 6
|
机器学习/深度学习 算法 对象存储
【玩转数据系列十】利用阿里云机器学习在深度学习框架下实现智能图片分类
伴随着今日阿里云机器学习PAI在云栖大会的重磅发布,快来感受下人工智能的魅力。 一、背景 随着互联网的发展,产生了大量的图片以及语音数据,如何对这部分非结构化数据行之有效的利用起来,一直是困扰数据挖掘工程师的一到难题。
50291 63