pith:CZ346JSL
$f$-Trajectory Balance: A Loss Family for Tuning GFlowNets, Generative Models, and LLMs with Off- and On-Policy Data
A family of losses lets generative models match any f-divergence on-policy while keeping the same global minimizer off-policy.
arxiv:2605.15417 v1 · 2026-05-14 · cs.LG · cs.AI
Add to your LaTeX paper
\usepackage{pith}
\pithnumber{CZ346JSLYI4GRFJN5WL7J3VUT7}
Prints a linked badge after your title and injects PDF metadata. Compiles on arXiv. Learn more · Embed verified badge
Record completeness
Claims
This construction can be extended to the whole family of f-divergences, leading to a family of losses whose on-policy gradients are that of the corresponding f-divergence, but retain the same global minimizer off-policy. Specifically, the on-policy gradients lead to a one to one correspondence between translation invariant loss functions on the target and model log probabilities, and f-divergences.
The paper assumes that the surrogate losses remain valid and share the same global minimizer when evaluated off-policy, which rests on the translation-invariance property of the loss functions on log probabilities; if this invariance does not hold for the chosen f-divergence or if the correspondence is not one-to-one, the off-policy guarantee fails.
The work defines a family of surrogate losses for generative models and LLMs whose on-policy gradients match those of any f-divergence while sharing the same off-policy minimizer as the original MSE loss.
References
Formal links
Receipt and verification
| First computed | 2026-05-20T00:00:57.505206Z |
|---|---|
| Builder | pith-number-builder-2026-05-17-v1 |
| Signature | Pith Ed25519
(pith-v1-2026-05) · public key |
| Schema | pith-number/v1.0 |
Canonical hash
1677cf264bc23868952ded97f4eeb49feb0af8ad34fe8caf3495e4d0b799a852
Aliases
· · · · ·Agent API
Verify this Pith Number yourself
curl -sH 'Accept: application/ld+json' https://pith.science/pith/CZ346JSLYI4GRFJN5WL7J3VUT7 \
| jq -c '.canonical_record' \
| python3 -c "import sys,json,hashlib; b=json.dumps(json.loads(sys.stdin.read()), sort_keys=True, separators=(',',':'), ensure_ascii=False).encode(); print(hashlib.sha256(b).hexdigest())"
# expect: 1677cf264bc23868952ded97f4eeb49feb0af8ad34fe8caf3495e4d0b799a852
Canonical record JSON
{
"metadata": {
"abstract_canon_sha256": "4078c284f01852446425428635bb59b3cb2f88ba3d6ac510c0ffc3b13bfa024b",
"cross_cats_sorted": [
"cs.AI"
],
"license": "http://creativecommons.org/licenses/by/4.0/",
"primary_cat": "cs.LG",
"submitted_at": "2026-05-14T21:02:07Z",
"title_canon_sha256": "a4ee575b2dcc713ff1fa49a4956eb5aa306519dc23e85057571a540450c0f516"
},
"schema_version": "1.0",
"source": {
"id": "2605.15417",
"kind": "arxiv",
"version": 1
}
}