Skip to content
Back to skills

Diffcot Diffusion Chain Of Thought

ASecurity

Recast chain-of-thought reasoning as iterative denoising using diffusion principles to overcome exposure bias in autoregressive reasoning. DiffCoT enables retrospective refinement of intermediate steps while maintaining temporal consistency through causal noise scheduling.

  • 6 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 9, 2026
developmentpythongoperformance

Security analysis

A100/100

Scanned September 9, 2026

npx -y skills add ADu2021/skillXiv --skill diffcot-diffusion-chain-of-thought --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Diffcot Diffusion Chain Of Thought?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Diffcot Diffusion Chain Of Thought
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/adu2021-diffcot-diffusion-chain-of-thought/badge)](https://www.skillsdirectory.com/skills/adu2021-diffcot-diffusion-chain-of-thought)

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: diffcot-diffusion-chain-of-thought
title: "DiffCoT: Diffusion-styled Chain-of-Thought Reasoning in LLMs"
version: 0.0.2
engine: skillxiv-v0.0.2-claude-opus-4.6
license: MIT
url: "https://arxiv.org/abs/2601.03559"
keywords: [Reasoning, Chain-of-Thought, Diffusion Models, Multi-Step Reasoning]
description: "Recast chain-of-thought reasoning as iterative denoising using diffusion principles to overcome exposure bias in autoregressive reasoning. DiffCoT enables retrospective refinement of intermediate steps while maintaining temporal consistency through causal noise scheduling."
---

## When to Use This Skill
- Multi-step mathematical reasoning (MATH, GSM8K benchmarks)
- Tasks where intermediate steps frequently contain errors
- Scenarios benefiting from iterative refinement of reasoning
- Models experiencing exposure bias in step-by-step generation
- Reasoning tasks with variable step counts

## When NOT to Use This Skill
- Single-step inference (no iterative benefit)
- Real-time low-latency systems (multiple passes slower)
- Tasks without clear intermediate reasoning steps
- Domains where step ordering is fixed and cannot be refined

## Problem Summary
Chain-of-thought reasoning in language models suffers from a fundamental vulnerability: early mistakes propagate irreversibly through autoregressive decoding. When step N depends on step N-1, and step N-1 is incorrect, cascading errors accumulate. Additionally, exposure bias—training on gold steps but decoding with model-generated ones—creates distribution mismatch that compounds across steps.

## Solution: Diffusion-Based Iterative Step Refinement

Rather than generate steps linearly in single pass, use sliding-window approach to both generate AND retrospectively refine intermediate steps, maintaining temporal consistency through causal noise scheduling.

```python
class DiffCoT:
    def __init__(self, model, num_refine_steps=3):
        self.model = model
        self.num_refine_steps = num_refine_steps

    def forward_with_denoising(self, question):
        """Generate reasoning steps with iterative refinement"""

        # Phase 1: Initial step generation
        steps = []
        cumulative_text = question

        while not_done():
            # Generate next step
            next_step = self.model.generate_step(cumulative_text)
            steps.append(next_step)
            cumulative_text += next_step

        # Phase 2: Iterative refinement via diffusion
        for refine_iteration in range(self.num_refine_steps):
            # Apply sliding-window retrospective refinement
            for window_idx in range(len(steps) - 1):
                # Create context: previous steps + current window + future steps
                prev_context = "".join(steps[:window_idx])
                window_step = steps[window_idx]
                next_context = "".join(steps[window_idx + 1:])

                # Noisy variant of current step (diffusion noise)
                noise_schedule = compute_noise_schedule(
                    refine_iteration, self.num_refine_steps
                )
                noisy_step = apply_noise(window_step, noise_schedule)

                # Denoising refinement: regenerate with neighboring context
                refined_step = self.model.refine_step(
                    prev_context, noisy_step, next_context
                )

                # Update if refinement improves coherence
                coherence_score = compute_coherence(
                    prev_context + refined_step + next_context
                )
                if coherence_score > original_coherence:
                    steps[window_idx] = refined_step

        return steps, final_answer

    def compute_noise_schedule(self, iteration, total_iterations):
        """Causal noise scheduling for temporal consistency"""
        # Later iterations have less noise (refinement signal strengthens)
        noise_level = 1.0 - (iteration / total_iterations)
        return {
            "magnitude": noise_level * 0.1,
            "positions": "random",  # Noise applied to random positions within step
            "type": "character-level"  # Perturbations at character level
        }
```

## Key Implementation Details

**Sliding-Window Refinement:**
- Process each intermediate step with context from neighbors
- Earlier steps inform later refinement
- Later steps provide constraint on earlier revision

**Causal Noise Schedule:**
- Early refinement iterations: Higher noise (exploration)
- Late refinement iterations: Lower noise (convergence)
- Maintains trajectory consistency through noise reduction

**Training Details:**
- Supervised training on step-by-step reasoningdata
- Loss combines initial generation loss + refinement loss
- Importance weighting on refinement steps

**Evaluation Configuration:**
- Benchmarks: MATH, GSM8K, MathQA (multi-step math)
- Model sizes: 7B to 70B parameters
- Step budget: 3-5 iterations typical

## Performance Results

**Multi-Step Reasoning Benchmarks:**
- Consistent improvements across three benchmarks
- Particularly strong on complex problems requiring 5+ steps
- Error correction capability reduces cascading failures

**Comparison to Baselines:**
- vs. Standard CoT: Better accuracy on hard problems
- vs. Self-Refinement: Faster convergence, fewer iterations
- vs. Multi-Sampling: Lower computational cost

**Ablations:**
- Num refinement iterations: 3-5 optimal
- Noise magnitude: 0.08-0.12 effective range
- Window size: Full-step refinement > partial tokens

## Advantages Over Baselines

- **vs. Linear CoT**: Iterative refinement overcomes early errors
- **vs. Sampling-Based**: Deterministic refinement, no search overhead
- **vs. Ensemble Methods**: Single model, no ensemble cost
- **vs. Distillation**: Works with existing models, no retraining required

## Implementation Strategy

1. **Prepare Reasoning Datasets**: Annotate step-by-step solutions
2. **Initialize Model**: Standard LLM (GPT, Qwen, Llama)
3. **Configure Refinement**: Set noise schedule and iterations
4. **Training**: Fine-tune on math reasoning with refinement loss
5. **Inference**: Run generation + refinement loop
6. **Evaluation**: Benchmark on target reasoning tasks

## Practical Considerations

- Refinement adds 2-3× latency vs. single-pass CoT
- Most effective on problems with multi-step reasoning
- Diminishing returns after 3-5 refinement iterations
- Works with any base LLM architecture

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…