GRPOMetric

GRPOMetric 跟踪 GRPO 训练中的策略优化诊断指标,包括 KL 散度、裁剪率、熵和对数概率统计。

使用方法

from twinkle.metric import GRPOMetric

metric = GRPOMetric(
    device_mesh=device_mesh,
    process_group=process_group,
    epsilon=0.2,          # PPO 裁剪范围
    temperature=1.0,      # 用于 logp 重缩放的采样温度
    top_k_kl=10,          # 每步记录 top-K 高 KL token
)

# 训练循环中
metric.accumulate(inputs, outputs, old_logps=old_logps, advantages=advantages)

# 日志间隔时
results = metric.calculate()

输出指标

指标说明
train/policy_confidenceexp(mean_new_logp) — 越高表示模型越自信
train/mean_new_logp当前策略下生成 token 的平均对数概率
train/mean_old_logp参考策略下的平均对数概率
train/approx_klSchulman K3 KL 估计器
train/entropy平均 token 级熵
train/clip_ratio被裁剪的 token 比例

变体

  • GSPOMetric — 序列级裁剪率(几何平均比率)
  • CISPOMetric — 无条件裁剪率(不按优势符号门控)
docs