Figure, four tiles. An LLM changed 131,072 weights in Qwen3.5-0.8B (0.016%) with no training. MATH-500 went from 7.9% to 48.1% after that edit. A stuck physics policy went from 0 to 1,024 successful episodes after a one-shot edit to 3.5% of its weights. In Breakout, a network the LLM wrote from zero weights scored 517.4 versus 25.3 for PPO after 500 million steps.
Figure, three panels. Optimizer: data and a loss go through millions of small gradient steps and produce weights nobody designed. Compiler: a formal program goes through fixed translation rules (such as Tracr) and produces weights that run that program. Weight-space programming: weights plus a goal in English go to an LLM that reads, explains and edits them, producing a targeted edit or a new network.
Figure: a model with only two weights, f(x) = w2 · tanh(w1 · x), fit to 21 points of 1.5 · tanh(x). The map shows its loss at every (w1, w2) from -3 to 3; darker is lower. There are two perfect models, at (1, 1.5) and (-1, -1.5), mirror images of each other. The selected model at (-0.40, 2.20) has loss 4.149 and its curve slopes the wrong way. Gradient descent from (2.6, -2.2), loss 9.453, reaches (1.17, 1.41) with loss 0.0015 after 150 steps.
Figure, four panels. Which game was it trained on: from the weights of 4 PPO game agents (17,253 weights each) and an unnamed grid description, the LLM named all 4 games. What does this diffusion model draw: from 3 tiny DDPMs (23,824 weights each), with no forward passes, it named all 3 shapes. Which language, which heads copy: from the middle 4 blocks of 3 character-level transformers (7.2 million weights), it named all 3 languages and found all 5 copying heads with no false positives. Which model is the sycophant: from weights alone it failed 4 of 4 attempts; allowed to inspect attention patterns, it identified the sycophant in 3 of 3 pairs.
Figure: eight arrows stand for MLP output columns, the vectors each MLP neuron adds to the model's running state. A dashed line is the "loop direction" u. Sliding to 100% removes each column's component along u, so the 8 columns no longer push along it at all, while everything else they write is unchanged. In the real edit, 64 of the 3,584 down_proj columns in layers 15 and 19 were changed, each 1,024 numbers long: 131,072 weights.
Chart: Qwen3.5-0.8B before and after the edit, by how many forward passes the LLM could use. Base: MATH-500 7.9%, GSM8K 13.8%, IFEval 21.0%, hit token limit 93.0%. With 10 forward passes: 12.3%, 25.7%, 49.0%, 87.2%. With 25: 14.1%, 25.1%, 39.9%, 86.4%. With 50: 48.1%, 67.1%, 62.3%, 33.1%.
Chart, mean score over 1,000 episodes for networks of shape 600 → 32 → 32 → 6. Breakout: PPO 100M steps 15.8, PPO 500M steps 25.3, written by the LLM in one shot 517.4. Seaquest: 5.6, 88.9, 53.1. Asterix: 25.8, 55.2, 53.2. The LLM started from zero weights with the game rules and code, but no data, gradients or rollouts.
Figure, six cards. Can't add what isn't there: on Gemma 3 270M MATH-500 moved only from 6.8% to 7.0-7.7%. Feedback matters: Qwen gained little with 10 or 25 forward passes; the big jump came at 50. Weights alone weren't enough: sycophancy detection failed 4 of 4 times from weights and worked with attention patterns. Small networks, big context: many experiments needed the whole network in context. Early and unreviewed: a blog post, an unreleased "GPT-6 Astra" model, baselines with best-of-3 to 10 seeds. But checkable: logs are public and an independent re-run of the edited Qwen scored 51.0% on MATH-500.
Figure, seven panels. 1. Train: follow the gradient downhill in many small steps (fine-tuning, RL). 2. Adapt in a subspace: move only along a few low-rank directions (LoRA). 3. Combine: add, subtract or average finished models (task arithmetic, TIES, model soups). 4. Search: try random nudges and keep what scores well, with no gradients (evolution strategies). 5. Generate: a network writes the weights from a description (Text-to-LoRA, Drag-and-Drop LLMs). 6. Edit: change a few weights to rewrite one fact or behavior (ROME, MEMIT). 7. Reason: an LLM reads the weights, explains them and edits them by hand (weight-space programming).
Figure: a full update to one 896 × 896 attention matrix has 802,816 numbers. LoRA writes it as B (896 × r) times A (r × 896). At rank r = 8 that is 14,336 numbers, 56 times fewer. Across the q and v projections of all 24 layers of Qwen2.5-0.5B, a rank-8 LoRA has 540,672 weights, 0.11% of the model's 494,032,768, about 1.08 MB in 16-bit. A slider changes r from 1 (67,584 weights) to 64 (4,325,376).
Figure: from a pre-trained base θ0, fine-tuning on math reaches θ_math and fine-tuning on code reaches θ_code. The arrows between them are task vectors, τ_math = θ_math − θ0 and τ_code = θ_code − θ0. Adding both arrows to the base, scaled by λ, gives one model aimed at both skills; subtracting τ_code moves away from code. A slider sets λ from 0 to 1.5.
Figure, four steps on three task vectors over eight weights. Task 1: 0.9, -0.1, 0.5, 0.05, -0.7, 0.2, 0, 0.6. Task 2: 0.8, 0.6, -0.4, 0.1, -0.05, -0.8, 0.3, 0.02. Task 3: -0.3, 0.7, -0.5, 0, -0.6, 0.1, 0.05, 0.7. Step 2, trim: keep each vector's 4 largest values. Step 3, elect the sign of each weight from the sum of the kept values: +, +, −, 0, −, −, 0, +. Step 4, average only kept values that agree with that sign: 0.85, 0.65, -0.45, 0, -0.65, -0.80, 0, 0.65. The plain average is 0.47, 0.40, -0.13, 0.05, -0.45, -0.17, 0.12, 0.44.
Figure: evolution strategies on the same two-weight map. Each generation, 30 noisy copies of the current model (noise scale 0.3) are scored; the model moves toward the copies that scored above average (step size 0.15). Starting from (2.6, -2.2) with loss 9.453, the loss is 3.153 after 10 generations, 0.246 after 20 and 0.029 after 30, reaching the same valley as gradient descent with zero gradients computed, then hovering around loss 0.02 to 0.03 because of the noise.
Figure: a task description such as "solve math word problems" goes into a hypernetwork of about 5 to 55 million weights, along with a layer id and module id, which outputs LoRA matrices A and B for the q and v projections of every layer of a frozen Mistral-7B-Instruct, in one forward pass. Text-to-LoRA was trained on 479 tasks. On 10 unseen benchmarks it averaged 67.7, versus 66.3 for a multi-task LoRA trained on the same data and 55.8 for the base model.
Figure: an English specification is compiled once by a 4B compiler model into an adapter, "the program", which a frozen Qwen3 0.6B interpreter then runs locally on every call. The authors report the 0.6B interpreter matches prompting Qwen3-32B, with about one fiftieth of its inference memory, at about 30 tokens per second on a MacBook M3. The compiler was trained on FuzzyBench, 10 million examples.
Figure: a 4 × 4 fast-weight matrix W starts at zero. Writing a key-value pair adds the outer product v·kᵀ to W. With 4 orthogonal keys, reading W·k returns each stored value exactly. Writing a 5th key that overlaps key 1 and key 2 (cosine 0.71 with each) makes reading key 1 return the stored value plus 0.71 times the 5th value, an error of 2.12: a 4 × 4 matrix holds only 4 clean memories.
Figure, six cards. Full fine-tuning: needs labeled data and backprop, high cost, gives a new full model. LoRA: needs labeled data and backprop, low cost, gives a small adapter file. Merging (task arithmetic, TIES): needs fine-tuned models from one base, no backprop, very low cost, gives one model with several skills. Evolution strategies: needs a reward, no backprop, high cost from many forward passes, gives a new full model. Hypernetwork (Text-to-LoRA, DnD): needs a trained generator and a description, no backprop at use time, one forward pass, gives an adapter. Model editing (ROME, MEMIT): needs the fact to change, some backprop, very low cost, gives the same model with one fact changed. Weight-space programming: needs a frontier LLM, the weights and a goal, no backprop, costs LLM tokens plus a few forward passes, gives a targeted, explained edit or a small new network.