机器学习笔记(17.5): HACPO
可能更好的阅读体验 Jeefy's Blog: HACPO
其实就是将 GRPO & GSPO 的 GSPO 扩展到 MAS 训练。核心类似。
\[\begin{aligned}
A_{t, i}^{(k)} &= \frac{R\left(y_{t, i}^{(k)}\right) - \mu_t^{(k)}}{\sigma_{t, joint}} \\
\mu_t^{(k)} &= \frac 1 {nG} \sum_{j}^n \sum_{i = 1}^G \omega_t^{(k, j)} R\left(y_{t, i}^{(j)}\right) \\
\omega_t^{(k, j)} &= \frac {\hat P_t^{(k)}} {\hat P_t^{(j)}} \\
\hat P_t^{(k)} &= \frac 1 K \sum_{\tau = t - K + 1}^t P_\tau^{(k)} \\
P_{\tau}^{(k)} &= \frac 1 G \sum_{i = 1}^G R\left(y_{\tau, i}^{(j)}\right) \\
\tilde A_{t, i}^{(k)} &= \omega_t^{k, j} A_{t, i}^{(j)} ~~~(y_{t, i}^{(k)}\in D_t^{(j)}) [k 使用 j 产生的 sample 训练的优势] \\
s_{t, i}^{(k, j)} &= \left( \frac {\pi_{\theta_t}^{(k)} \left( y_{t, i}^{(j)} \right)}{\pi_{\theta_{old}}^{(k)} \left( y_{t, i}^{(j)} \right)} \right)^{\frac 1 {|y_{t, i}^{(j)}|}} \\
\tilde s_{t, i}^{(k, j)} &= s_{t, i}^{(k, j)} \cdot \left({\rm sg} \left[s_{t, i}^{(k, j)}\right] \right)^\alpha ~~~~~~k \ne j \\
{\rm sg}[x] &= x \\
\frac {\partial} {\partial x} {\rm sg}[x] &= 0 \\
\end{aligned}
\]
- \(A\) 优势估计
- \(\mu\) 优势 baseline
- \(\omega\) 能力比率
- \(\hat P\) 平滑准确度
- \(P_\tau\) 采样平均准确度
- \(\tilde A\) 迁移优势
- \(s\) 序列级迁移重要性采样因子
- \(sg\) 梯度阶段函数,也就是正向传播正常计算,反向传播视为常数。
在异构设置中,智能体间的策略差异可能比同策略更新大得多,使得直接使用该比率过于激进。为了缓解这个问题,对重要性采样比率引入了非梯度指数重加权。这种设计使智能体 k偏向于从那些输出分布与其自身更一致的其他智能体学习,同时减少大的跨智能体分布偏移的影响。
考虑到异构情况下,当 \(s\) 很大的时候,可能有另一个 Agent 来主导当前 Agent 的梯度更新,这意味着当前 Agent 会更像另一个 Agent。这可能引入非常严重的分布偏差。所以这里采用的非对称的 clip:
\[s_{t, i}^{(k, j)} \in [1 - \delta, 1], k \ne j
\]
同时,考虑到异构的情况下,初始时的差异可能很大,所以这里采用了一个线性放缩的 clip:
\[clip(s_{t, i}^{(k, j)}) = clip\left(s_{t, i}^{(k, j)}, 1 - \delta + num_t \cdot \delta_{step}, 1.0\right)
\]
- baseline 的无偏估计
\[{\mathbb E}\left[ \mu_t^{(k)} \right] = {\mathbb E}_{y \sim \pi_{\theta_k}(\cdot | q_t)}[R(y)]
\]
- \(A\) 的无偏估计

浙公网安备 33010602011771号