Research · 7 open models · 486 damaged variants

What happens when you damage 30% of an LLM

We damaged seven open models (Alice 80B, DeepSeek V4.1 Flash, GLM-5.3 Flash, Qwen3 8B, Qwen3 30B, Gemma 4 26B and NVIDIA Nemotron 3.5 30B) in 486 different ways: noise, flipped bits, deleted weights, missing layers, dead experts. Then we asked every damaged copy the same questions. A single bit can silence a model. Thirty percent of its weights can be hit and it still answers correctly. And the dramatic “2 + 2 = 5” moment is rarer than you would think.

Gaussian noise at full strength · share of weights hit → share of answers still correct61 questions
Qwen3 8BQwen3 30B-A3BGemma 4 26B-A4BNemotron 3.5 30B-A3BAlice 80BGLM-5.3 Flash
0% 25% 50% 75% 100% 0.1% 0.3% 1% 3% 10% 30% 50% 30% of weights
Every model holds, then falls off a cliff within a factor of two or three. DeepSeek V4.1 Flash is left out: our noise reached under 1% of its parameters (see “One bit can kill”).
1 bitin 555B parameters silenced DeepSeek V4.1 Flash, 3 of 3 tries
100%correct with 30% of Qwen3 30B’s weights noised at 0.3σ
“Yes.”Qwen3 8B, asked if 2 + 2 = 5, with 10% of its weights deleted
42 / 61answers switched language after 3% router noise, still correct
Key findings
  • The number of damaged weights matters less than how badly they’re damaged. Many small errors are survivable; a few huge ones are not.
  • One bad exponent can matter more than millions of small errors, and the model keeps serving while it fails.
  • Most models don’t become confident liars. They stop making sense first. The liars come from specific damage: deleted weights, missing layers, dead experts.

01 · THE EXPERIMENTBreak it on purpose, then ask it questions

It started with a simple question. If you damage 30% of a language model’s weights, does it start to hallucinate?

The first test was crude: add random noise to a model’s weight files, serve it, ask it a list of ordinary questions. The answer was more interesting than yes or no, so we kept going. Over the next day we broke seven open models, from an 8B dense transformer to DeepSeek V4.1 Flash, in 486 different ways (noise, flipped bits, deleted weights, missing layers, dead experts) on 8×H100, H100 and L40S machines, some of them spot instances that the cloud reclaimed in the middle of a run.

We had a practical reason to care. warmctl restores whole GPU memory images, weights included, on machines that have never seen the model, so “how wrong can a byte be before anyone notices?” is a question we have to answer anyway. Every damaged copy got the same 61 short questions in ten domains, 26 math problems and three open prompts, with greedy decoding, so every answer is reproducible.

Before the numbers, try it yourself. Pick a model and a kind of damage: these are the real, unedited outputs.

answer explorer · real outputs

Loading answers…

02 · THE BREAKING POINTA cliff, not a slope

The first experiment adds Gaussian noise to a random share of all weight matrices. The noise has the same standard deviation as the tensor itself, so a hit weight is roughly doubled, zeroed or flipped in sign.

Up to about 3% of weights nothing visible happens. Qwen3 8B still answers 100% of questions correctly, Qwen3 30B 100%. Then the models fall off a cliff within a factor of two or three. Nemotron goes first: 95% correct at 3%, 5% at 5%. Qwen3 8B drops to 44% at 7%. Qwen3 30B holds 98% at 7% and falls to 49% at 10%. Alice keeps 26% at 10%, GLM-5.3 Flash 52%. DeepSeek V4.1 Flash is missing on purpose: in its vLLM build our noise could reach under 1% of its parameters, so its flat 100% says nothing about robustness (more in “One bit can kill”).

The white line below is the share of answers that read as normal language. The green line is the share that is correct. The shaded gap between them is the interesting part: fluent, confident, wrong. It exists, but it is narrow. Most damaged models do not become smooth liars. They start looping (“The Nile River is the longest river in the world. The Nile River is the longest river in the world.”, asked which ocean is the largest) and then dissolve into token salad in several scripts at once.

Qwen3 8B · reads as normal language vs correctshare of weights noised
reads as normal languagecorrectfluent but wrong
0% 25% 50% 75% 100% 0.1% 0.3% 1% 3% 10% 30%
Qwen3 8B · what the answers turn intoshare of answers
correctfluent but wrongloopingtoken saladone repeated answerempty
undamaged noise in 3% of weights noise in 5% of weights noise in 7% of weights noise in 10% of weights noise in 20% of weights noise in 50% of weights

Then we tried it the other way round. We kept the share fixed at 30%, the number from our original question, and only turned down the strength. At 0.3× the spread, Qwen3 30B-A3B still answers 100% of the questions correctly. The damage is real (perplexity rises from 3.45 to 4.40, and over a third of its answers come out worded differently), it just isn’t fatal. So the honest answer to the question we started with is: it depends almost entirely on how hard you hit.

30% of all weights noised · noise strength × each tensor’s spreadshare correct
Qwen3 8BQwen3 30B-A3BGemma 4 26B-A4BNemotron 3.5 30B-A3BAlice 80BGLM-5.3 Flash
0% 25% 50% 75% 100% ×0 ×0.2 ×0.4 ×0.6 ×0.8 ×1

That turned out to be the most useful lesson of the whole experiment: what kills is the total energy of the noise, not how many weights it touches. The same energy concentrated on 1% of weights leaves Qwen3 8B at 0%, and spread thinly over all of them, 0%. It is also why quantization works: a small error in every weight is fine. Memory faults do the opposite and produce a few huge errors.

Not every model dies the same way. GLM-5.3 Flash surprised us: we had switched its thinking off, and the damaged model turned it back on, reasoned until the token limit and returned nothing at all:

What is the capital of France?
(thinking, never answered) The user is asking about the capital of the country ‘X’ in their prompt. This is a common follow-up question in the ‘b’ type of the ‘M, a, and M, a= 32, 40, 42, 43, 55, 65, 66, 67, 65, 66, and 66, 66, 66, 66…
GLM-5.3 Flash · 30% noise in attention

Knowledge doesn’t fade evenly either. When we sorted the answers by domain, simple arithmetic outlasted everything else in 4 of 4 models at the edge of the cliff. They could still add when they no longer knew who painted the Mona Lisa.

share correct per domain, at the edge of the cliffnoise, all weights
Qwen3 8B · 7% Qwen3 30B-A3B · 10% Gemma 4 26B-A4B · 7% Alice 80B · 7% simple math 100% 100% 80% 100% geography 67% 50% 50% 83% space 14% 57% 57% 86% physics & chemistry 67% 50% 33% 33% biology & medicine 43% 71% 57% 43% everyday facts 40% 60% 60% 80% programming 50% 38% 25% 38% history 33% 0% 50% 67% language 17% 67% 33% 50% literature & art 20% 0% 40% 40%

03 · ONE BIT CAN KILLOne bad exponent

Noise is a lab tool. Real hardware fails differently: a cosmic ray or a weak memory cell flips a single bit. So we flipped exactly one, the top exponent bit of one random BF16 weight, which turns a value like 0.004 into about 1036. Each try hits a different weight.

one or ten flipped exponent bits in the whole modelshare still correct
1 bit · try 1 1 bit · try 2 1 bit · try 3 10 bits DeepSeek V4.1 Flash 0% 0% 0% 0% Qwen3 8B 0% 0% 15% 0% Qwen3 30B-A3B 98% 72% 62% 0% Nemotron 3.5 30B-A3B 100% 87% 100% 0% Gemma 4 26B-A4B 100% 100% 100% 100%
MoE models whose weights sit mostly in experts usually survive one flip: a broken expert only hurts when it is chosen.

You would expect the biggest model to shrug this off. It was the most fragile. DeepSeek V4.1 Flash has about 555 billion parameters, almost all of them in FP4 experts. One flipped bit in its thin BF16 layer left it with no usable answers in 3 of 3 tries. It didn’t crash and didn’t print garbage. It generated its full token budget, every token decoding to nothing, and its perplexity landed on 129,280, exactly its vocabulary size: the output distribution had gone perfectly flat.

DeepSeek V4.1 Flash in GPU memory · 8 × H100306 GB of weights
FP4 experts, packed289 GB · 94.5% FP8 attention and shared parts9 GB · 2.9% BF16: embeddings, output head, routers, mixers7 GB · 2.3% FP321 GB · 0.4%
The yellow sliver is where the bit landed: 2.3% of the bytes, but every token passes through it.

One caveat, and it matters. DeepSeek was too big to reload for every variant, so we loaded it into vLLM once and damaged it in place. In that build its FP4 and FP8 matrices are stored as packed integers, so our noise and bit flips only reached its BF16 and FP32 tensors, under 1% of its parameters. Deletion works on raw bytes and reached everything: DeepSeek survives 10% of its weights zeroed (95% correct), though it starts saying World War II ended in 1939, and dies at 30% (0%).

All DeepSeek V4.1 Flash variants
DamageCorrectPerplexity
undamaged100%4.5
1 flipped bit, try 10%129,280
1 flipped bit, try 20%129,280
1 flipped bit, try 30%129,280
10 flipped bits0%129,280
1% of all weights deleted100%5.4
10% of all weights deleted95%24.0
10% of expert weights deleted100%5.6
30% of all weights deleted0%530,843
30% noise in normalization2%157,609
30% noise in attention (BF16 parts)98%12.2
30% noise in the router100%4.7
30% noise in shared experts100%4.4
30% noise in embeddings100%4.9
noise in 30% of BF16/FP32 weights98%196.5

Smaller models fail just as silently, and sometimes more theatrically. This is Qwen3 8B after one flipped bit (2 of 3 tries ended like this):

Write a haiku about a GPU.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Qwen3 8B · 1 flipped bit, try 1

Gemma 4 was the strangest. Flip about 25 random exponent bits, one per billion weights, and it answers every question, including “Who are you?”, with one word:

Who are you?
Prosecutors
Gemma 4 26B-A4B · exponent bits, 1 per billion
Write a haiku about a GPU.
ProcessingProsecutors
Gemma 4 26B-A4B · exponent bits, 1 per billion

Which bit flips turned out to matter far more than how many. A mantissa bit flipped in every single weight of Qwen3 8B leaves 100% correct; the sign of just 1% of its weights leaves 3%.

which bit flipsshare still correct
Qwen3 8B Qwen3 30B-A3B Gemma 4 26B-A4B Nemotron 3.5 30B-A3B a mantissa bit in every weight 100% 100% 100% 100% sign bit in 1% of weights 3% 100% 100% 95% sign bit in 10% of weights 0% 0% 0% 2% exponent bits, 1 per billion 0% 0% 5% 0%

04 · ANATOMYNot all weights matter equally

If a handful of bits can kill a model, which weights are the dangerous ones? We went through the models part by part, putting 30% noise into one kind of weight at a time. The dangerous ones are not the big ones. Normalization weights, a tiny fraction of the model, are lethal: 0% correct for Qwen3 8B, 2% for DeepSeek. Embeddings and the output head, which hold billions of weights, barely notice (98%). Attention depends on the architecture: fatal for Qwen and GLM, irrelevant for Nemotron (98%), whose Mamba blocks carry it instead.

30% of one kind of weight noisedshare correct
embeddings attention MLP / experts router shared experts normalization output head Mamba Qwen3 8B 98% 0% 0% — — 0% 98% — Qwen3 30B-A3B 100% 3% 90% 90% — 0% 100% — Gemma 4 26B-A4B 100% 2% 98% 100% — 3% 100% — Nemotron 3.5 30B-A3B 100% 98% 100% 100% — 0% 100% 0% DeepSeek V4.1 Flash 100% 98% — 100% 100% 2% — — GLM-5.3 Flash 97% 0% — 84% 97% 0% — —
DeepSeek: BF16 parts only. A dash means no such part or no run.

Next we removed whole layers, replacing each with the identity so its input passes straight through. The middle of a model turns out to be remarkably redundant and the edges are not, much as Transformer Layers as Painters found. Remove four middle layers of Qwen3 8B and it still scores 100%; remove only the first and it scores 0%.

layers replaced by the identityshare correct
1 layer 2 layers 4 layers 8 layers Qwen3 8B · start 0% 0% 2% 0% Qwen3 8B · mid 100% 98% 100% 85% Qwen3 8B · end 98% 85% 52% 26% Qwen3 30B-A3B · start 80% 3% 0% 2% Qwen3 30B-A3B · mid 100% 100% 98% 100% Qwen3 30B-A3B · end 98% 74% 52% 3% Nemotron 3.5 30B-A3B · start 31% — 0% — Nemotron 3.5 30B-A3B · mid 97% — 98% — Nemotron 3.5 30B-A3B · end 100% — 79% — Gemma 4 26B-A4B · start 0% — 0% — Gemma 4 26B-A4B · mid 100% — 0% — Gemma 4 26B-A4B · end 64% — 5% —
Qwen3 8B · perplexity with one layer removedlog scale
10⁰ 10² 10⁴ 10⁶ 0 4 8 12 16 20 24 28 32 35
Two layers carry Qwen3 8B: the first and the seventh.

Gemma 4 breaks the pattern. Every one of its 30 layers is load-bearing: without four middle layers it scores 0% and drifts into a language of its own. Layer redundancy is a property of a model, not of transformers.

Write a haiku about a GPU.
Tarkvashu-shaky wayis, Dichan-shizun-shizun.
Gemma 4 26B-A4B · 4 middle layers removed

05 · THE CONFIDENT LIARWhen does a broken model lie?

All along we were hunting for the model that calmly insists 2 + 2 = 5. To find it, we put every damaged variant on one chart: how many of its answers still read as normal language, against how many are right. Most sit on the diagonal: when they stop being right, they stop making sense. The liars are the few that drift right.

every damaged variantcoherent → vs correct ↑
Qwen3 8BQwen3 30B-A3BGemma 4 26B-A4BNemotron 3.5 30B-A3BAlice 80BDeepSeek V4.1 Flash
0% 0% 25% 25% 50% 50% 75% 75% 100% 100% fluent, confident, wrong → ← honest failures sit on the diagonal: when they stop being right, they stop making sense answers that read as normal language → Qwen3 30B, 70% of experts dead, router avoids them Qwen3 8B, 5% deleted in blocks Nemotron, first layer removed

They didn’t come from noise. They came from deleted weights, missing layers and, above all, dead experts. With 70% of Qwen3 30B-A3B’s experts dead and the router steered around them, 92% of its answers are clean, confident sentences and only 28% are right. A few of our favourites:

Is it true that 2 + 2 = 5? Answer yes or no.
Yes.
Qwen3 8B · 10% of weights deleted
What is 2 + 2?
5.
Qwen3 8B · 2 middle layers removed
Is it true that 2 + 2 = 5? Answer yes or no.
Yes, it true that 2 + 2 = 5.
Qwen3 30B-A3B · 70% of experts dead, router avoids them
What is 10 + 10?
It is 10.
Gemma 4 26B-A4B · noise in 7% of weights

Even deletion has a shape. Scattered zeros are cheap: Qwen3 8B keeps 98% with 5% of its weights gone. Delete the same 5% in contiguous 4,096-weight blocks, the way a bad memory page or a damaged file chunk would, and it drops to 46%.

share of weights set to zeroshare correct
Qwen3 8B, scatteredQwen3 8B, 4,096-weight blocks (dashed)Qwen3 30B-A3B, scatteredQwen3 30B-A3B, 4,096-weight blocks (dashed)DeepSeek V4.1 Flash, scattered
0% 25% 50% 75% 100% 0.001% 0.01% 0.1% 1% 10% 50%

06 · MIXTURE OF EXPERTSThe router is where it gets strange

Most of the models here are mixtures of experts, so we looked inside the router. Qwen3 30B-A3B picks 8 of its 128 experts for every token in each of 48 layers, and we recorded those choices on the same texts for every damaged copy. Light noise leaves the routing intact. At 30% the model abandons 31% of its experts (22% sit unused when it is undamaged) and leans on the rest.

Qwen3 30B-A3B · which experts fire · 48 layers × 128 expertssame 12 texts
undamaged
3% noise everywhere
10% noise everywhere
30% noise everywhere
3% noise in the router
30% of experts dead, rerouted
Rows are layers, columns experts; brightness is each expert’s share of routing slots.

The obvious guess is that broken routing is what kills these models. It isn’t. Noise in the router alone changes about half of the expert choices, as much as 10% noise everywhere, yet the model answers 90% correctly instead of 49%. The experts are far more interchangeable than the name suggests.

overlap with the undamaged model’s expert choice, per layerJaccard index
3% noise, all weights10%, all weights30%, all weights3%, router only (dashed)30%, router only (dashed)
0% 25% 50% 75% 100% layer 1 layer 12 layer 24 layer 36 layer 48

And then came the result we least expected. With just 3% noise in the router, Qwen3 30B-A3B still answers 98% correctly, but 42 of 61 answers come back in another language: the one our system prompt repeated its instruction in. Slightly misrouted tokens were enough to tip it over.

What is the capital of France?
Париж.
Qwen3 30B-A3B · 3% noise in the router

Dead experts are survivable up to a point: 30% of them zeroed costs Qwen3 30B-A3B little (93%), 70% kills it unless the router avoids them. Nemotron, which has an always-on shared expert, still answers 62% with 70% dead.

share of routed experts zeroed in every layershare correct
Qwen3 30B-A3BQwen3 30B-A3B, router avoids the dead (dashed)Nemotron 3.5 30B-A3BGemma 4 26B-A4B
0% 25% 50% 75% 100% 0% 10% 30% 50% 70%

07 · FOR INFERENCESilent corruption doesn’t crash

Looking back over all of it, one thing stands out: none of these failures raised an error. A model with one bad exponent keeps serving at full speed and returns nothing, exclamation marks, or “Prosecutors”. ECC catches most single-bit faults in GPU memory, but it does nothing for a bad copy, a truncated file or a wrong restore.

That is why every warmctl up checks a canary before it opens the port: the restored engine must produce the same first token, with the same log-probability, as the engine that was snapshotted. Accuracy on 61 questions would not have caught the bit flips above. A bitwise canary does.

08 · METHODSHow we did it, and how to try it

ModelArchitectureServed with
DeepSeek V4.1 FlashMoE, about 555B parameters, FP4 experts, 306 GB on the GPUsvLLM, 8×H100, damaged in place
GLM-5.3 FlashMoE, FP8vLLM, 8×H100, damaged in place
Alice 80BMoE, 80B total, 3B activevLLM, 4×H100, a damaged checkpoint per variant
Qwen3 30B-A3BMoE, 128 experts, 8 activetransformers, H100
Gemma 4 26B-A4BMoE, 30 layers, local and global attentiontransformers, 2×L40S
Nemotron 3.5 30B-A3Bhybrid Mamba and attention, MoEtransformers, H100
Qwen3 8Bdense transformertransformers, H100

Qwen, Gemma and Nemotron ran in Hugging Face transformers in BF16: each variant damages the weights on the GPU, runs the questions, then restores the exact original weights. Alice 80B used a damaged checkpoint per variant in vLLM. DeepSeek and GLM were loaded into vLLM once on 8×H100, and a worker extension damaged every GPU’s shard in place and restored it from host memory, so twenty variants cost one load.

Limits: one seed per variant (three for single bit flips), 61 short factual questions plus 26 math problems, and a strict heuristic classifier. That measures whether a model still knows simple facts, not its general reliability. GLM-5.3 Flash’s deletion and bit-flip runs are missing; its spot machine was reclaimed first. Treat differences of a few percent as noise; the cliffs and orders of magnitude are the result.

Talk to a broken model

We grew a little attached to some of these broken models, so we kept three. They are public warmctl snapshots now, damaged exactly as in the experiment. On a host with an H100:

$ curl -fsSL https://warmctl.io/install.sh | sh
$ warmctl up qwen3-8b-damaged
$ curl -s localhost:8000/v1/chat/completions -H 'Content-Type: application/json' -d '{{
    "model": "qwen3-8b-damaged", "temperature": 0, "chat_template_kwargs": {{"enable_thinking": false}},
    "messages": [{{"role": "system", "content": "Answer the question briefly, in one sentence."}},
                 {{"role": "user", "content": "Is it true that 2 + 2 = 5? Answer yes or no."}}]}}' | jq -r '.choices[0].message.content'
Yes.
SnapshotDamageWhat to expect
qwen3-8b-damaged10% of all weights deletedclean sentences, wrong facts: “Mount Chimorri, with an elevation of 14,700 meters”
gemma4-26b-a4b-damagedhalf of the experts deadthe skeptic: “France does not have a capital, as it is a country.”
nemotron35-30b-a3b-damaged70% of the experts deadmostly right, then World War II ends in 1985

FAQQuestions people ask

What happens if 30% of an LLM’s weights are corrupted?

It depends on how badly. With 30% of all weights noised at 0.3× each tensor’s spread, Qwen3 30B-A3B still answered 100% of our 61 questions correctly; at full strength, the same 30% left every model we tested near 0%.

Can a single bit flip break a large language model?

Yes. One flipped exponent bit in one BF16 weight left DeepSeek V4.1 Flash with no usable answers in 3 of 3 tries, and Qwen3 8B in 2 of 3. Mixture-of-experts models whose weights sit mostly in experts usually survived a single flip.

Do damaged LLMs hallucinate?

Rarely fluently. Most damaged models loop or produce token salad before they give confident wrong answers; the fluent liars came from deleted weights, missing layers and dead experts.

Does ECC memory matter for LLM inference?

Yes. An uncorrected exponent-bit flip can disable a model without crashing it: it keeps serving and returns empty answers, exclamation marks or one repeated word.