Commit d04f7b9
authored
[rl] Add trainer entropy metric (#3848)
## Summary
Add a trainer-policy **entropy** metric to watch for entropy -> reward
collapse during RL (motivated by checking whether MoE / Qwen3-30B-A3B
runs collapse), and surface the existing train/inference **KL** signal.
## Why
Entropy collapse is the leading indicator of reward collapse in
GRPO/DAPO: the policy sharpens to near-deterministic -> within-group
reward variance -> 0 -> zero advantage -> no gradient. Entropy + KL on
the dashboard catch this early.
## What
- `compute_logprobs(..., return_entropy=True)` returns per-token entropy
alongside logprobs from a **single vocab gather + single fp32 upcast**
(no extra copy); default call is unchanged (returns logprobs).
- DAPO logs **`trainer/entropy/mean`** (mean `H(p)` over response
tokens); documents `bit_wise/logprob_diff/mean` as the k1 estimate of
`-KL(q||p)` (`-1x` verl's `ppo_kl`).
- Rename `train/*` -> `trainer/*` (`grad_norm`, `lr`, `policy_version`);
add entropy to the console keys.
## Test plan
- Unit: entropy matches `-sum(p log p)` / `log(V)` for uniform; logprobs
bit-identical with/without the flag.
- Ran locally (`rl_grpo_qwen3_1_7b` search_r1 + alphabet_sort);
`trainer/entropy/mean` logs to W&B with the expected
sharpen-then-plateau.1 parent badf21a commit d04f7b9
5 files changed
Lines changed: 41 additions & 12 deletions
File tree
- torchtitan
- components
- experiments/rl
- actors
- losses
- observability/metrics
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
372 | 372 | | |
373 | 373 | | |
374 | 374 | | |
375 | | - | |
376 | | - | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
377 | 379 | | |
378 | 380 | | |
379 | 381 | | |
380 | 382 | | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
381 | 393 | | |
382 | 394 | | |
383 | 395 | | |
| |||
406 | 418 | | |
407 | 419 | | |
408 | 420 | | |
| 421 | + | |
| 422 | + | |
409 | 423 | | |
410 | | - | |
411 | | - | |
| 424 | + | |
| 425 | + | |
412 | 426 | | |
413 | 427 | | |
414 | 428 | | |
415 | 429 | | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
416 | 437 | | |
417 | 438 | | |
418 | 439 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
439 | 439 | | |
440 | 440 | | |
441 | 441 | | |
442 | | - | |
| 442 | + | |
443 | 443 | | |
444 | 444 | | |
445 | 445 | | |
| |||
467 | 467 | | |
468 | 468 | | |
469 | 469 | | |
470 | | - | |
471 | | - | |
472 | | - | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
473 | 473 | | |
474 | 474 | | |
475 | 475 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
81 | | - | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
82 | 84 | | |
83 | 85 | | |
84 | 86 | | |
| |||
123 | 125 | | |
124 | 126 | | |
125 | 127 | | |
| 128 | + | |
| 129 | + | |
126 | 130 | | |
127 | 131 | | |
128 | 132 | | |
129 | 133 | | |
130 | 134 | | |
131 | 135 | | |
132 | 136 | | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
133 | 140 | | |
134 | 141 | | |
135 | 142 | | |
Lines changed: 3 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
67 | | - | |
68 | | - | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
69 | 70 | | |
70 | 71 | | |
71 | 72 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
460 | 460 | | |
461 | 461 | | |
462 | 462 | | |
463 | | - | |
| 463 | + | |
464 | 464 | | |
465 | 465 | | |
466 | 466 | | |
| |||
0 commit comments