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_confidence | exp(mean_new_logp) — 越高表示模型越自信 |
train/mean_new_logp | 当前策略下生成 token 的平均对数概率 |
train/mean_old_logp | 参考策略下的平均对数概率 |
train/approx_kl | Schulman K3 KL 估计器 |
train/entropy | 平均 token 级熵 |
train/clip_ratio | 被裁剪的 token 比例 |
变体
GSPOMetric— 序列级裁剪率(几何平均比率)CISPOMetric— 无条件裁剪率(不按优势符号门控)