Downloads · 30 days
5
4% of all-time downloads
tchauffi/sudoku-dit-extreme-1k
sudoku-dit-extreme-1k is a other model from tchauffi. Use it for the other task on the model card, and read the license before you ship it in a product. It is set up for pytorch. The card lists the license as apache-2.0.
A 1.28 M-parameter Diffusion Transformer trained on only 1,000 Sudoku-Extreme puzzles — the same small-data regime HRM and TRM report on. It solves Sudoku as a masked discrete diffusion denoiser: fill the cells you ar…
Downloads · 30 days
5
4% of all-time downloads
All-time downloads
128
Public
Parameters
1.3M
5.6 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors5.1 MB · 92%
From the Hugging Face model README
A 1.28 M-parameter Diffusion Transformer trained on only 1,000 Sudoku-Extreme puzzles — the same small-data regime HRM and TRM report on. It solves Sudoku as a masked discrete diffusion denoiser: fill the cells you are most confident about, re-read the board, repeat.

This model solving a 51-blank board over 24 reveal steps. Given clues stay grey; filled cells are tinted by the model's step-0 confidence (blue = unsure -> green = sure).
hidden=128, heads=4,
blocks=4; per-cell token + 2-D positional + 3x3-box embeddings, plus a timestep.tchauffi/sudoku-dit,
same architecture trained on a 3.8 M-board stream of ordinary Sudoku.A board is 81 tokens, row-major: 0 = empty / [MASK], 1..9 = digits. The solver
clamps the given clues and only fills the blanks.
import torch
from nonet.hub import load_solver # pip install git+https://github.com/tchauffi/nonet
solver = load_solver("tchauffi/sudoku-dit-extreme-1k") # the config records the cosine-high schedule
puzzle = "402609001000000000700002084000080500030005007004060930008021406005000000147030000"
x = torch.tensor([[int(c) for c in puzzle]]) # (1, 81), 53 blanks
solution = solver.solve(x, conf_threshold=0.999) # adaptive reveal
"".join(map(str, solution[0].tolist()))
# 482659371613874295759312684971483562836295147524167938398721456265948713147536829
This is also the default model for load_solver() with no arguments.
Held-out Sudoku-Extreme test puzzles, adaptive decoder (tau = 0.999). Because every
solution is exactly checkable, a wrong answer can simply be retried: attempt 1 is the
greedy decode, later attempts resample at temperature 1 (randomness enters only at the
forced below-tau reveals). k is the attempt budget.
attempts k | overall | rating <= 2 | rating 3-9 | rating 10+ |
|---|---|---|---|---|
| 1 (greedy) | 22.7 % | 75.2 % | 11.1 % | 3.9 % |
| 8 | 33.1 % | 86.1 % | 21.5 % | 14.1 % |
| 32 | 49.7 % | 95.6 % | 42.1 % | 32.8 % |
| 64 | 60.4 % | 97.6 % | 53.8 % | 46.8 % |
For reference, HRM reports 55.0 % on this benchmark at 27 M parameters (~21x larger). The comparison is not compute-matched: our 60.4 % spends 64 decode attempts per puzzle, and the curve is still unsaturated at k = 64. The honest reading is that a tiny diffusion denoiser plus a verifier covers this regime, not that it is cheaper per puzzle.
sapientinc/sudoku-extreme,
plus the Sudoku symmetry group sampled per example per batch (digit relabeling, transpose,
band/row and stack/column permutations) — validity-preserving, the same family HRM/TRM use.Augmentation is load-bearing. The identical run on the raw 1,000 boards without symmetry augmentation memorizes them and collapses to 0.1 % test-valid. With augmentation the effective board count is large enough to generalize.