Skip to content
Back to skills

Treegrpo Tree Advantage Rl

ASecurity

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.

  • 6 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 9, 2026
developmentpythongonode

Security analysis

A100/100

Scanned September 9, 2026

npx -y skills add ADu2021/skillXiv --skill treegrpo-tree-advantage-rl --agent claude-code

Installs 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 with every re-scan.

Security grade badge for Treegrpo Tree Advantage Rl
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/adu2021-treegrpo-tree-advantage-rl/badge)](https://www.skillsdirectory.com/skills/adu2021-treegrpo-tree-advantage-rl)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.