[Agent Memory / 强化学习] メンポ


0x00の概要

高度な学習に基づく既存の記憶管理手法には、記憶内容を更新して最適化する効果的な仕組みが欠けていることが多く、記憶内容の品質を保証することが困難です。

MemPO (Self-Memory Policy Optimization) 自己メモリを介してメモリを利用し、有効な情報コンテンツをメモリレベルで皿弌入力することにより、タスクを解決するためのより有効な情報をメモリに確保し、メモリ効率を向上させます。

MemPO のユニークな分点:モデルに記憶を持たせ、毎日それを書き込ませます。)、「草相纸の自己対話」の形で、記憶と思考の連鎖の一部。トレーニング可能な戦略変数になり、RL 信号を使用してこの動作を最適化します。追加のメモリ モジュールは必要ありません。

MemPOの情報は以下の通りです。

本篇ビデオGRPOの使用法。

0x01原則

1.1 現状

エージェントがメモリ メカニズムを導入する目的は、無関係な情報を削除し、重要な詳細を保持し、無関係な情報を削除することです。

元の GRPO は答えの正しさに基づいて報酬を計算し、トラック レベルの利点 (アドバンテージ) を使用します。同じ濹濜陽濹杹 トラック トラック レベルの利点トークンでも同じ報酬を共有します。これにより、記憶によって生成される報酬信号が生成され、ガイダンスが制限されます。最終的な答えの正しさが毎回対話プロセスに直接反映されるわけではないためです。 操作の質。

MemPO は一種の新しい利点計算方法を設計しました。 メモリ内の情報の内容に基づいて追加の利点値を計算し、重要な情報を保持しながらメモリが単純に保たれるようにします。

设计翻訳说:「追加の利点を計算する」= 可能outcome_adv、最後に再計算する利点。 (mem_adv)。

発行電影院:A2: compute_grpo_memory_advantage () → mem_adv = (P_mem – P_full – means) /std → のみ … 区间

叠加方式 (A3):final_adv = outcome_adv + mem_adv
                          ↑ 原有的        ↑ "附加的"(additional)

「追加」 (さらに) 強調: これは MemPO 在 GRPO 天物上天上の電影 — 電影 GRPO のみ outout_adv, MemPO 頝外加分mem_adv来最好電影 の世代の品質。

1.2 GRPO

GRPO は PPO の変更であり、その違いは有利な計算方法 (用内均值/Critic) のみです。標準)、コストとして、質問ごとに複数のトラックを生成する必要があります。その他のリンク (PPO) (PPO)。

PPO基準:

advantage = V_critic(s) - R(s)    ←     需要单独训练一个Critic网络

GRPO (グループ相対ポリシー最適化):

advantage =(reward-group_mean)/ group_std  ←   不需要Critic 
其中group = 同一个question的16条rollout轨迹

GRPO は「批判のない PPO」です——民小是了 PPO です:

  • 代理ロスカット
  • 重要度サンプリング率
  • KL 審判用ペナルティモデル
  • ヴィンテージ ミニロット ハンド机多数

ただし、この批評家ネットワークを離れ、同じグループで承認された公共の影響を以下のリンクに移します。

1.3 PPO と GRPO の比較

GRPO と PPO の主な違いは、計算方法の利点です。その他の部分(クリッピングロス、比率、KL、マルチエポックアップデート、マルチアップデート)。 その他の部分

PPO と GRPO は次のように比較されます。

[Agent Memory / 强化学习] メンポ

違いは次のとおりです。

┌──────────────────┬─────────────────────────────┬─────────────────────────────┐
│                  │ 标准 PPO                     │ GRPO                        │
├──────────────────┼─────────────────────────────┼─────────────────────────────┤
│ 轨迹数/question   │ 通常1条                     │ 16条(group size)            │
├──────────────────┼─────────────────────────────┼─────────────────────────────┤
│ Critic 网络       │ ✅ 需要(~7B)               │ ❌ 不需要                    │
├──────────────────┼─────────────────────────────┼─────────────────────────────┤
│ Advantage 来源    │ GAE: reward-V(s)            │ (score-mean)/std            │
├──────────────────┼─────────────────────────────┼─────────────────────────────┤
│ 额外训练步骤      │ Critic loss                  │ 无                           │
├──────────────────┼─────────────────────────────┼─────────────────────────────┤
│ 显存占用          │ actor+ref+critic             │ actor+ref                  │
├──────────────────┼─────────────────────────────┼─────────────────────────────┤
│ Advantage 精度    │ token-level(但有             │ trajectory-level          │
│                  │ estimation error)            │ (无estimation error)     │
├──────────────────┼─────────────────────────────┼─────────────────────────────┤
│ 适合场景          │ dense reward                 │ sparse/outcome reward       │
└──────────────────┴─────────────────────────────┴─────────────────────────────┘

1.4 MemPO が GRPO+Critical ではない理由

MemPO が重要ではない理由は次の 4 つです。

クリティカルトレーニング

標準 PPO: V(s_t) は、将来の累積収益を予測する、つまり「将来の能吹“答胯吹”」を予測するために、シーケンス内の各トークン位置に必要です。

ただし、MemPO のシーケンス構造は次のとおりです。[Round1_tokens | Round2_tokens | …| Round5_tokens]これらの数のトークンは、最終的には (レアな報酬) になる可能性があります。

したがって、Critic は次のような課題に直面します。

  • 電影极长 → 大容量のバリューネットワークが必要
  • 報酬极稀疏→ V(s) はほぼ 0、意味のあるものになるまで学習するのは難しい
  • 多轮工作電影→電影電影画像、ノイズ値の推定が大きい

結果に基づく GRPO 维生電影 稀疏十业

GRPO は、同組の全線値ベースラインを使用して、適切な軌道レベルの散布報酬と比較しました。

  • GRPOの仮定:報酬は軌跡レベルのベンチマーク→完全一致EMチェックの{0, 1}スコア。
  • V(s_t) を学ぶ必要はありません: 基本 = 同じ問題 16 条院迹の均値 = (スコア – 平均) / 標準 → 零リセット電影、零金设计外老エラー。

電影電影节约

PPO+批評家:

  • 同じサイズの追加アクター 1 人 クリティカル ネットワーク (7B パラメーター)
  • 批評家にはさらなる前方向+反方向が必要
  • 月存翻倍:actor(7B)+ref(7B)+critic(7B)=21B パラメータ

GRPO:

  • Actor(7B)+ref(7B)=14B パラメータのみ
  • 省下載计计计更多上出版(16条/質問)を開始します。

記憶報酬の特徴

メモリ報酬は自己完結型(P_mem-P_full)であり、重要な推定は必要ありません。

mem_reward=P_mem-P_full     这本身就是一个"自带baseline"的信号

Criticを使用する場合は、それも必要です 区间電影電影頭値→ただしの「好坏」は未来次第で答えられない(极電影世界)→評論家はこの価値を正確に見積もることはほぼ不可能

GRPO プログラム: 直接横断追跡归一化mem_reward、シンプルで効果的

小结

MemPO シナリオの GRPO は、より現実的な選択肢です。1 つの固有の報酬、長いシーケンス、および相互作用。これら 3 つの特徴により、重要なトレーニングが非常に困難になりますが、GRPO は「同組相対ランキング」を通じて問題値の推定を回避することに成功しました。

MemPOの最も特徴的な場所:在标標準時GRPO、使用フラグメントは、報酬を認識するための微粒子の位置を考慮して設計されているため、勾配信号をトラックだけでなく「メモリ書き込み」動作に正確に適用できます。

次に注意深く分析していきます。

0x02 メンポ GRPO

2.1段階

GRPO アルゴリズム = アドバンテージ計算方法 + PPO 最適化フレームワークなので、具体的には 2 つのリンクに分けることができます。

その1:GRPOアドバンテージ計算(無勾配)

B4-algo: outcome_adv =(score - mean) / std     ← 纯数值运算
A2: mem_adv = (r_t-mean) / std                 ← 纯数值运算
A3: final_adv = outcome_adv + mem_adv          ← 纯加法
所有 advantage 都是detached 常数,不参与计算图

その2:PPO(有勾配)のアップデート

for epoch in ppo_epochs:
    for mini_batch in shuffie(batch):
        new_log_prob = actor.forward(mini_batch)
                               ↑梯度计算
                               
        ratio = exp(new_log_prob - old_log_prob) 
        loss = -mean(final_adv x clip(ratio)) + KL_penalty
        
        loss.backward()   ← 反向传播 
        optimizer.step()  ← 模型优化

概要:GRPOは「各トークンを奨励するか抑制するか、その強度が大きいこと」(有利値)を決定するだけで、「モデルパラメータをどのように最適化するか」は完全にPPO事一一一性度計算、卡向名含名名合倁曜播、樜播、樜是PPOリンクである。

2.2モデル

MemPOには以下のいくつかのモデルがあります

アクター (戦略モデル):

  • LLM(如Qwen2.5-7B)勉強中
  • 各 PPO ステップはパラメータを更新します
  • 設定:actor_rollout_ref.model.path→SFTモデルから初期化
  • ロールアウトの生成に使用されるだけでなく、PPO 更新時の以前の計算にも使用されます

ref_model(参照モデル):

  • アクター構造は LLM と完全に同一ですが、パラメーターは異なります。
  • トレーニング開始時のアクターのスナップショット (つまり、SFT モデル自体)
  • 操作:弾度散度激是KL(π_actor || π_ref)
  • アクター偏离の初期戦略を阻止する 太远(PPO的安全領域実官方)

コードでの表現:

run_train.sh 中:
    actor_rollout_ref.model.path="NewBeeKing/MemPo_Qwen2.5-SFT"
    
    actor   ← 加载这个模型,训练中不断更新
    ref     ← 加载同一个模型,训练中冻结
    rollout ← 用actor的权重做推理(通过SGLang服务)

三者在役中の PPO 損失:

ratio = exp(new_log_prob_actor - old_log_prob_actor)
               ↑当前参数              ↑本轮开始时的快照
KL_penalty = ratio_to_ref -log(ratio_to_ref)-1
		     where ratio_to_ref = exp(log_prob_actor -log_prob_ref)
                                                          ↑永远不更新
loss =-adv x clip(ratio)+ KL_coef x KL_penalty 

簡単に言えば:

  • 俳優 = 「学生,书了学习电视」
  • ref_model = “老师基線”, 安全学生不可偏离太远
  • old_log_prob = “上一考试评语”、重要度サンプリング比の計算に使用されます

2.3 利点

結果アドバンテージとメモリアドバンテージ どちらも GRPO スタイルのアドバンテージ計算方法を改良したものですが、安全上星です。

給付結果 ——— GRPO標準フロー:

  • B4-アルゴ: compute_grpo_outcome_advantage()
  • 周波数学: 同一の質問の 16 条雷迹
  • 归一化:adv = (スコア – group_mean) / group_std
  • → これが GRPO の核心です – 批評家ではなく、組織内での相対的なランキングです

メモリの優位性 ——— GRPO スタイルただし维度以作:

  • A2: compute_grpo_memory_advantage()
  • グループ化: 同じ質問を使用轮迹 × 个个轮次 (~48 个值)
  • 归一化:adv = (mem_reward – pool_mean) / pool_std
  • →借鉴了 GRPO の「结内归一化」思想
  • → ただし池化の範囲が広い

最後の 2 つ:

  • Final_adv = result_adv + mem_adv → 送入下ダウンロード PPO 損失

厳密に言うと:

  • 結果として得られる利点 = GRPO 基準

  • メモリアドバンテージ = GRPO 発行の归一化(GRPO 承認中発行ではなく、MemPO の新規交換)

  • 電気効果 = PPO カットオフ代理損失 (GRPO は有利な設計方法であり、最適化は依然として PPO です)

2.4 転送

この点はロールアウトにも関係します。

正視聴の一歩前進は可能です

MemPO 原版 GRPO 多了1次追加パスフォワード(标準②),但该次同時批量电視了full_traj和
mem_traj、実際には標準old_log_probの1.5~2倍であり、MemPOの最も重要なトレーニング追加コストです。

───────────────────────────────────────────────────
① 生成阶段 (generate_sequences)
    SGLang 自回归解码,共 n=16 条轨迹
    → 本质也是 forward,但 KV cache 优化,计一次

───────────────────────────────────────────────────
②★ MemPO 专属: compute_log_prob(full_traj + mem_traj)
    agent_loop.py 
    concat = [全部 full_traj, 全部 mem_traj]
    → 一次调用,但序列数量 = 2 × B × (T-1) × n
    B=batch_size, T=轮次, n=16

───────────────────────────────────────────────────
③ compute_log_prob (old_log_prob)
    ray_trainer.py 
    → actor 计算轨迹的旧 logp (供 PPO ratio 使用)

───────────────────────────────────────────────────
④ compute_ref_log_prob (KL 约束)
    ray_trainer.py 
    → ref model 计算 logp (供 KL 惩罚使用)

───────────────────────────────────────────────────
⑤ actor update (多 epoch 反向传播)
	默认 ppo_epochs=1, 每次需要当前 logp

特徴

特徴 詳細
英訳「二度二度」? 否、1 回余分なパスをフォワード、不電影新しいジェットン
実際の動作 既往の回答案 Z、2 つの異なる入力コンテキストを使用して logp を計算します
回数を数える 一歩前進、二種類の入力拼成一ロット
電卓タイムマシン 完了後のリリース、計算された利点
目的 குக்க்கு」正解を予測する能力

比較する

与原版 VerL の比較

世代段階 オリジナル版 VerL GRPO メンポ
生成された ①生成する ①生成する
思い出のご褒美 ✗なし ✓②フル+メモリ双路ログ
古いログ ③old_log_prob ③old_log_prob
ログ参照 ④ref_log_prob ④ref_log_prob
アップデート ⑤アクターアップデート ⑤アクターアップデート
全体 4回前 5回前

各 search_results は単一の検索結果であり、複数の検索セットではありません。

2.5 損失

アウトカム_adv と mem_adv は共に PPO のアドバンテージ シグナルであり、トレーニング中のダウンロード PPO 損失です。

final_adv = outcome_adv + mem_adv    ← 叠加后作为 PPO 的 advantage

PPO loss = -mean( final_adv × clip(ratio, 1-ε, 1+ε) × response_mask ) + KL_coef × KL(π || π_ref)

一つの交電影計画ではなく、一つの順方向 → 一つの損失 → 一つの逆方向总乐を使用します。

異なるジェットンには異なる利点があります。

position:    [R1 tokens] [R2 tokens] [think tokens] [R3] [answer]
final_adv:   [  +0.8  ]    [ +0.8 + 1.2 ]      [  +0.8  ]      [+0.8 - 0.5 ]   [ +0.8 ]
              ↑ 仅 outcome  ↑ outcome + mem (正)  ↑ 仅 outcome     ↑ outcome + mem (负)

入力

損失の入力は次のようになります。

new_log_prob [bsz, seq_len]   ←  当前actor前向得到
old_log_prob [bsz, seq_len]   ←  rollout时的快照(detached)
ref_log_prob [bsz, seq_len]   ←  refmodel(冻结)
final_adv    [bsz, seq_len]   ←  outcome_adv + mem_adv
response_mask [bsz, seq_len]  ←  1 = response token,0 = prompt token

計算

次の式を計算します。

PPO loss = -mean( final_adv × clip(ratio, 1-ε, 1+ε) × response_mask ) + KL_coef × KL(π || π_ref)

PPO は REINFORCE の電子版:

  • 重要度のサンプリング比:ratio=π_new/π_old、古いデータの複数の更新を許可します
  • クリップ制約を追加:比率偏离太大を防止します
  • ペナルティ参加KL:偏离参照戦略太远を防ぐ
  • 電子上PPO損失中国final_adv×比率はREINFORCE先端度インポート加重版です。
# Importance Sampling Ratio
ratio = exp(new_log_prob - old_log_prob)

# Clipped Surrogate
surr1 = ratio × final_adv
surr2 = clip(ratio,1-e,1+e) × final_adv
policy_loss = -mean( min(surr1, surr2) × response_mask )

# KL Penalty (low-variance estimator)
ratio_ref = exp(new_log_prob - ref_log_prob) 
kl = ratio_ref-log(ratio_ref)-1
kl_loss = KL_coef × mean(kl × response_mask)

# Total
total_loss = policy_loss + kl_loss 

最後の total_loss はメトリック (スカラー) ですが、中間のステップには张量演算が含まれており、total_loss はメトリックです。中くらいの年齢比率。[bsz,seq_len]量は、mean() 操作を通じて、ベンチマークからすべてのモデル パラメーターに Benchmark.total_loss.backward() を圧縮します。ベンチマークの唯一の量は new_log_prob (現在のアクターによって計算されます) です。

次に、いくつかの具体的な詳細を見てみましょう。

報告

PPO 損失中率は重要なサンプリング比です、名前クリップ防止单步更多:

  • 比率 > 1:現在の戦略より生成時間、さらにこれらのトークンを選択します
  • 比率 < 1:現在の戦略より生成時間、より不向きにこれらのトークンを選択します
  • 比率 = 1: 変化なし
サンプリングの重要性

重要度のサンプリング π_old)採用の手机が来ます(新電視) π_new)次の期待:

E_π_new[f(x)] = E_π_old[f(x) × π_new(x) / π_old(x)]

ロールアウトは古い戦略で生成されるため、PPO が必要ですが、新しい戦略に更新できます。ratio=π_new/π_oldそれは重要です
クリップ制限比率の範囲は、重量が大きすぎると高方位の差につながるのを防ぐためです。

张量形状

各ステップの形状は次のとおりです。

  new_log_prob     [bsz, seq_len]    ← 张量(每个token一个log概率)
  old_log_prob     [bsz, seq_len]    ← 张量
  ratio            [bsz, seq_len]    ← 张量(逐token计算)
  final_adv        [bsz, seq_len]    ← 张量(逐token不同值)
  surr1            [bsz, seq_len]    ← 张量
  surr2            [bsz, seq_len]    ← 张量
  min(surr1,surr2) [bsz, seq_len]    ← 张量
  response_mask    [bsz, seq_len]    ← 张量(0/1)
  
  policy_loss = -mean(min(...) × mask)  ← 标量 ✓  (对所有元素求平均)
  kl_loss = KL_coef × mean(...)         ← 标量 ✓
  total_loss = policy_loss + kl_loss    ← 标量 ✓

total_loss.backward() ← 从这个标量反传梯度到所有参数

キー: means() 操作[bsz,seq_len]的张量压缩为标量,然后.backward()从该标量计算梯度。

MemPO的特殊之处

Loss公式本身没有修改,特殊性全在final_adv的构造上:

标准 GRPO:
    final_adv[i, :] = result_adv_i ← 全电影上明值 MemPO: Final_adv[i, :] = 結果_adv_i + mem_adv[i, :]
                                        ↑のみ  区间非零

効果:同一路線分、ジェットトンの利点を発揮:

token类型            advantage 值            梯度效果
─────────────────────────────────────────────────────────
...      outcome + mem_adv_t      双重驱动(可正可负)
内容          outcome                  仅结果驱动
query       outcome                  仅结果驱动
内容         outcome                  仅结果驱动
prompt tokens       masked out (=0)          无梯度

これはMemPOの全新代点が損失レベルにある——裹を通じての具現化です トークンは追加のメモリ品質を受け取ります
Signal は、他のトークンの学習に影響を与えることなく、メモリ抽象化能力の正確な最適化を実現します。

なぜ 2 つの独立した損失と最適化が必要ないのでしょうか?

MemPO の設計、電気効果上の 1 つの PPO アルゴリズム + 1 つの複合的な利点:

  • GRPO (グループ相対ポリシー最適化) は、outcome_adv の計算を担当します。
  • メモリーリワード
  • 优通加和後送入最作 PPO カットオフ代理損失

2 つの目的に対して個別のトレーニングはなく、分単位での最適化もありません。これが電気効果の頂点です。

この設計には 3 つの理由があります。

健全性の対立問題

2 つの独立した損失の場合:

loss_outcome = -outcome_adv × log π(token) 
loss_memory = -mem_adv × log π(mem_token)

例:

loss_outcome 想让token概率 ↓ (因为整条轨迹答错了)
loss_memory  想让token概率 ↑ (因为摘要写得好)

梢度争い:2敗トークンは反対方向になる可能性があります → 2 つの異なる方向が反対方向 → トレーニングが安定しない、衝撃打。

加算スキーム直接解: (-0.8) + (+1.2) = +0.4、明確で明確な方向を生成します。

PPO のクリップ メカニズムにも同じ利点が必要です

Clip PPOの意味:限界每步更多过度

2 つの損失を個別に分割すると、各損失の幅を更新できるようになり、実際の更新は 2ε→超廇廇になります。

简介後 只一度クリップ:final_adv = result + mem → 一回クリップ → 总更多在ε内

電影极简+効率的な計算

統一計画:1次前方向、1次逆方向、1次パラメータ更新 → 极简+高効率計算実装 → 2つの1ossの重み係数調整不要

final_adv = outcome_adv + mem_adv  ←   1行加法

独立したスキーム:→ 2 回前方向、2 回逆方向、2 回パラメータ更新 (または電気的強度紺种) → 重みも調整する必要がある → 実際に重み係数 ≈ mem_adv の相対幅を調整する (同一の性質)

概要: 本質的に、マルチターゲットの最適化と同等の価格で利点を享受できますが、より安定し、より効率的で、PPO と自然に互換性があり、PPO のクリップと組み合わせることができます。

2.6スケール

どの計算に勾配があり、どの計算に勾配がないのか、トレーニング プロセス全体を見てみましょう。

✗ 段差なし(分離/凍結):

✗ 无梯度(detached/frozen):
  - Rollout 生成 token                     → SGLang 推理,不保留计算图
  - A1 compute_log_prob (mem_reward)      → detached,仅算数值
  - B2 compute_score (outcome_reward)     → 纯字符串匹配,无张量
  - B4-algo outcome_adv                   → 纯数值运算
  - A2 mem_adv                            → 纯数值运算
  - A3 final_adv = outcome + mem          → 常数张量
  - old_log_prob                          → detached 快照
  - ref_log_prob                          → 冻结模型

☑ 勾配あり(独自のソース):

☑ 有梯度(唯一来源):
  PPO Update 中:
  new_log_prob = actor.forward(response_ids)    ← 当前 actor 前向
                 ↑ 这是唯一参与计算图的量

  ratio = exp(new_log_prob - old_log_prob)      ← 梯度流经 new_log_prob
  loss = -mean(final_adv × clip(ratio) × mask)  ← 标量
		 + KL_coef x f(new_log_prob, ref_log_prob)
		 
  loss.backward() 
  ↓ 梯度方向:
  loss → ratio → new_log_prob → actor 参数 (weights, biases, embeddings) 
  optimizer.step() →更新actor 所有参数

したがって:

全体の MemPO 勾配は ∂loss/∂θ_actor(PPO 中 new_log_prob 对アクター パラメーター) であり、new_log_prob を通じて、これはモデル パラメーターに対する 1 つの計算マップ ノードです。

すべての利点、報酬、ref/old log_prob

2.7KL行き

直觉の意味

KL 制約は、「跑偏」一可以是最新不可偏离起点太远を目的としたモデルを防止することです。

直視比

学生(俳優)を想像してみてください在刷题提分:

  • 時限官方:可成動情定「作弚」混很(例:時限時限時高答案)→分性旆数旅旇胼上時限時限高答案)
  • KL制約:「改善はできないが、後和画アニメーションの自己(ref)可太大」 → 汎化能力を維持しながら徐々に改善
数学

KL(π_actor || π_ref)「距離」の 2 つの分布を測定します。

  • = 0:俳優と参照完全一(没学体法件世界)
  • Big: アクターとリファレンスの大きな違い (過剰な最適化/リワードハッキングの可能性)

途方に暮れて:

total_loss = policy_loss + KL_coef x KL

policy_loss想让模型"往高reward方向走" → 拉离ref 

KL_penalty想让模型"别离ref太远" → 拉回ref

両者は相反する → モデルは「アップグレード」と「安定化」の間でバランスをとります。

MemPOの実際の機能

KL ペナルティ制限アクターは偏っていない参照モデル (SFT 起点) が太すぎます。

KL ペナルティがない場合に考えられる問題:

  • 時間的に内容を書き出す最上位の電子機器(高mem_rewardただし無免电影情報/報酬ハッキング)
  • モデル对のすべての質問
  • 出力ダイバーシティ崩壊 (16 トラックすべてが壊れている)
  • 不安定なトレーニング

ペナルティ KL 保証:→ 多様性を維持するためのモデルの出力分布 → 每步更多图度问题,设计安全→ 報酬ハッキング

気がついた

k3 推定を使用した名前の決定 kl_loss_type = low_var_kl (Schulman 2020):

# 普通KL(k1,有偏梯度): 
kl ≈ log π_ref - log π_new

# Low-variance KL estimator
# 代码中用的不是直接的 KL,而是 low-variance 近似:
    # low_var_kl(k3,无偏梯度):
    kl = ratio_ref - log(ratio_ref) - 1
    where ratio_ref = exp(new_log_prob - ref_log_prob) = π_actor / π_ref

    当 ratio_ref = 1 (完全一样): kl = 1 - 0 - 1 = 0 ✅
    当 ratio_ref > 1 (actor概率更高): kl > 0
    当 ratio_ref < 1 (actor概率更低): kl > 0
    → 任何偏离都被惩罚,是一个"弹簧力"把 actor 拉回 ref

k3 はなぜですか? k3 比 k1 方差がより低く、トレーニングがより安定しており、特に複数のエージェントのシナリオ (長いトラック、方差がもともと就大) に適しています。

いくつかの推定ツールは次のように比較します。

推定者 正式 自然
k1 \(\log\pi_\theta -\log\pi_{\text{ref}}\) 無偢、方差大、可者
k2 \(\frac{1}{2}(\log\pi_\theta\log\pi_{\text{ref}})^2\) 有偢、恒正
k3 \(r -1 -\log r\) (\(r=\pi_{\text{ref}}/\pi_\theta\)) 無偏 + 恒正 + 下方差(シュルマン)
low_var_kl 同k3、再実行クランプ(-10, 10)値保護 同k3 + 防爆

トランスの封面

0xFFリファレンス



Source link

By 政権

Leave a Reply

Your email address will not be published. Required fields are marked *