Reviser: Writing and Editing Text with Autoregressive Cursor Actions
Organizations: Independent Researcher
Abstract
Language models write text once, left to right, and models that write in other orders, such as diffusion LMs, pay for it with many full-sequence passes. We introduce Reviser, a decoder-only Transformer that writes and edits text with cursor actions (insert, move, delete, stop) that a deterministic executor applies to a canvas. Reviser is autoregressive over its own actions, so a step costs the same as an autoregressive (AR) step. We train Reviser to continue text, including a self-correction recipe that types a wrong token and deletes it, and Reviser-Edit to revise a draft, and compare each with a same-size AR model trained on the same data, using three LLM judges on continuations cut to the same length. Reviser-Edit beats its matched AR rewriter on CoEdIT SARI (+7.2 at 100M, +4.5 at 300M; two seeds agree) with a third of the decoding steps and latency, though the AR rewriter corrects grammar better. In continuation, Reviser beats diffusion LMs of similar size (62-74% win rate) at a fraction of their compute; two of three judges prefer its AR twin, and one slightly prefers Reviser at 100M. Reviser fills gaps it left and backspaces a just-typed repeated token with probability 0.85-0.87.
Figures & tables
| Behavior | Quality | AR cut to the same length | Judges vs. AR | |||||||||
| Model | Len | Mv/tok | Del/tok | GPT-2 | Dream | MAUVE | GPT-2 | Dream | MAUVE | Skywork | Codex | Claude |
| AR 100M | 220.0 | 0 | 0 | 13.40 | 13.85 | 0.935 | – | – | – | – | – | – |
| Reviser, released | 67.8 | 0.465 | 0 | 32.33 | 25.68 | 0.811 | 17.80 | 18.85 | 0.921 | 53.9 | 0.200 | 0.158 |
| + run-and-jump | 101.1 | 0.188 | 0 | 23.19 | 19.97 | 0.931 | 16.06 | 16.91 | 0.940 | 52.3 | 0.242 | 0.175 |
| + R&J + Delete | 113.6 | 0.152 | 0.033 | 22.22 | 18.88 | 0.927 | 15.43 | 16.31 | 0.936 | 53.0 | 0.215 | 0.192 |
| + RL (3 seeds) | 142.1 | 0.140 | 0.029 | 18.38 ∗ | 15.56 ∗ | 0.931 | 14.50 | 15.38 | 0.900 | 53.3 | 0.286 | 0.268 |
| Group | Variant (change from run-and-jump) | Mv/tok | C4 PPL | Gaps filled | P( Delete ) rand./rep./clean | Claude | Codex |
|---|---|---|---|---|---|---|---|
| Reference | run-and-jump, = 0.82 | 0.205 | 26.40 | 0.401 | 0 / 0 / 0 | 0.5 | 0.5 |
| Move rate | left to right only ( = 1) | 0 | 16.26 | 0.144 | 0 / 0 / 0 | 0.740 | 0.755 |
| = 0.98 | 0.016 | 18.48 | 0.293 | 0 / 0 / 0 | 0.755 | 0.790 | |
| = 0.95 | 0.042 | 19.07 | 0.368 | 0 / 0 / 0 | 0.745 | 0.725 | |
| = 0.90 | 0.089 | 22.49 | 0.377 | 0 / 0 / 0 | 0.662 | 0.650 | |
| = 0.86 | 0.145 | 25.29 | 0.397 | 0 / 0 / 0 | 0.595 | 0.625 |
| SARI / EM | ERRANT F | JFLEG | Reference as input kept | Codex | |||||
| System | CoEdIT | EM | IteraTeR | Grammar | Fluency | GLEU | IteraTeR | CoEdIT | vs. AR |
| Copy the input | 57.9 | 0.000 | 66.7 | 0.000 | 0.000 | 40.5 | 1.00 | 1.00 | – |
| CoEdIT-large (T5, 770M) | 68.6 | 0.211 | 58.6 | 0.434 | 0.114 | 59.4 | – | – | – |
| Qwen2.5-0.5B-Instruct (0-shot) | 42.4 | 0.001 | 29.2 | 0.253 | 0.025 | 41.2 | 0.02 | 0.06 | – |
| Qwen2.5-1.5B-Instruct (0-shot) | 38.6 | 0.002 | 22.9 | 0.216 | 0.020 | 48.0 | 0.00 | 0.01 | – |
| SmolLM2-360M-Instruct (0-shot) | 45.9 | 0.004 | 44.2 | 0.282 | 0.046 | 53.7 | 0.15 | 0.36 | – |
Appendix figures & tables3 assets
Supplementary material from the paper’s appendix.
Appendix
| Obfuscation (target blank) | Restoration (blank target) |
| 1. Initial [Hi,|how are you?] 2. Delete [Hi|how are you?] 3. Delete [|how are you?] 4. [how are you?|] 5. Delete [how are you|] 6. Delete [how are|] 7. Delete [how|] 8. Delete [|] | 1. Initial [|] 2. Insert ( how ) [how|] 3. Insert ( are ) [how are|] 4. Insert ( you ) [how are you|] 5. Insert ( ? ) [how are you?|] 6. [|how are you?] 7. Insert ( Hi ) [Hi|how are you?] 8. Insert ( , ) [Hi,|how are you?] 9. Stop [Hi,|how are you?] |
| Method | Variant | ( ) | |
|---|---|---|---|
| AR (100M) | baseline | 1 | |
| Reviser | – | – | |
| SEDD | (full logits each step) | ||
| SEDD | (full logits each step) | ||
| MDLM | (ancestral; full logits each step) | ||
| MDLM | (released cached sampler) |
| Method | Variant | ( ) | |
|---|---|---|---|
| AR (Qwen2.5-32B) | baseline | 1 | |
| SDLM-32B-D4 | (no verify) | ||
| AR (Qwen2.5-7B) | baseline | 1 | |
| Dream-7B | (lin. unmask) | ||
| Dream-7B | (lin. unmask) | ||
| Dream-7B | (one token per step) |
Text Generation
Text generation studies methods for producing coherent, useful language from prompts, data, and dialogue context.
See all 410 papers