帮你快速理解、总结文档立即下载

Importance Sampling(重要性采样)

最近更新时间:2026-10-19 21:18:03
我的收藏
Importance Sampling(重要性采样) 是统计学和强化学习(RL)中的一种采样与估计方法, 是一种通过利用“已知分布(旧模型/采样器)”生成的数据,来精确估计和训练“另一个未知或在新变动中的分布(新模型/学习器)”的数学方法。

痛点:大模型生成文本(Rollout)极其消耗算力,如果模型参数每更新一次就重新生成一批数据,训练速度会慢到无法接受。
解法:允许模型用“旧模型吐出的回答数据(q)”来训练“最新的模型(pθ)”。
机制:通过乘上比值
重要性权重比值

,如果新模型比旧模型更看好这个回答,就放大该奖励信号;反之则缩小,从而在无需重复生成数据的前提下,实现安全高效的 Off-policy 策略更新。

这是策略梯度目标函数的一个常见变体,当学习策略 pθ 可能因非确定性、策略更新滞后或其他原因而与采样策略 q 不一致时使用。
朴素目标函数为:

当 x ∼ q(采样器)与 x ∼ pθ(学习器)不匹配时,它存在偏差。重要性采样对此进行修正:

其中:
log pθ(x) :来自学习器的 target_logprobs(forward_backward 的前向传播)
log q(x) :来自采样器的 sampling_logprobs(在采样(rollout)过程中记录)

实现

# Compute probability ratio
prob_ratio = torch.exp(target_logprobs - sampling_logprobs)
# Compute importance-weighted loss
loss = -(prob_ratio * advantages).sum()

输入张量

Key
Shape
说明
target_tokens
(N,)
目标 token ID(来自采样器 q)
logprobs
(N,)
这些 token 的 sampling_logprobs
advantages
(N,)
优势值(正值用于强化,负值用于抑制)

输出张量

Key
Shape
说明
logprobs
(N,)
这些 token 的 target_logprobs

诊断信息

loss:sum(标量):重要性加权策略梯度损失之和 ℒIS