Achieve 2.4× faster RL training for diffusion models by restructuring denoising as tree search with shared computation. TreeGRPO computes fine-grained step advantages instead of trajectory-level rewards—crucial for efficient diffusion model optimization.
Scanned 9/9/2026
Install to Claude Code
npx -y skills add ADu2021/skillXiv --skill treegrpo-tree-advantage-rl --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Treegrpo Tree Advantage Rl?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/adu2021-treegrpo-tree-advantage-rl)More formats (shields.io, HTML) on the badges page.
---
name: treegrpo-tree-advantage-rl
title: "TreeGRPO: Tree-Advantage GRPO for Online RL Post-Training of Diffusion Models"
version: 0.0.2
engine: skillxiv-v0.0.2-claude-opus-4.6
license: MIT
url: https://arxiv.org/abs/2512.08153
keywords: [reinforcement learning, diffusion models, tree search, advantage estimation, post-training]
description: "Achieve 2.4× faster RL training for diffusion models by restructuring denoising as tree search with shared computation. TreeGRPO computes fine-grained step advantages instead of trajectory-level rewards—crucial for efficient diffusion model optimization."
---
## Overview
TreeGRPO recasts diffusion model denoising as a tree search problem where multiple candidate trajectories share common prefixes, enabling amortized computation and fine-grained credit assignment through step-specific advantages.
## When to Use
- Diffusion model post-training with RL
- Scenarios requiring sample efficiency
- Need for 2.4× speedup in training
- Fine-grained credit assignment important
- Flow-based and diffusion-based models
## When NOT to Use
- Models already achieving good results
- Scenarios with limited compute for tree expansion
- Applications where trajectory-level rewards suffice
## Core Technique
Tree-structured trajectory generation with advantage backpropagation:
```python
# Tree-structured RL for diffusion models
class TreeGRPO:
def __init__(self, diffusion_model):
self.model = diffusion_model
self.tree = ReasoingTree()
def build_trajectory_tree(self, initial_noise, reward_fn, num_children=4):
"""Build tree where branches share computation."""
root = TreeNode(initial_noise)
# BFS tree expansion
queue = [root]
for node in queue:
if node.depth >= max_depth:
continue
# Generate multiple children trajectories
for child_idx in range(num_children):
# Each child is denoising step from parent
child_noise = self.model.denoise(
node.noise,
step=node.depth
)
child = TreeNode(
child_noise,
parent=node,
depth=node.depth + 1
)
# Compute reward at leaf
if child.depth == max_depth:
child.reward = reward_fn(child.noise)
node.children.append(child)
queue.append(child)
return root
def compute_step_advantages(self, tree):
"""Backward pass: compute advantages at each step."""
# DFS traversal
self.dfs_advantage_computation(tree.root, None)
def dfs_advantage_computation(self, node, parent_value):
"""Recursively compute node advantages."""
if node.is_leaf:
node.value = node.reward
else:
# Average child values
child_values = [
self.dfs_advantage_computation(child, None)
for child in node.children
]
node.value = torch.mean(torch.tensor(child_values))
# Advantage: value relative to parent
if parent_value is not None:
node.advantage = node.value - parent_value
else:
node.advantage = node.value
return node.value
```
## Key Results
- 2.4× faster training vs baseline
- Improved sample efficiency
- Fine-grained credit assignment
- Works on diffusion and flow models
## References
- Original paper: https://arxiv.org/abs/2512.08153
- Focus: Efficient RL for diffusion models
- Domain: Generative model post-training
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!