In partnership with

When someone asks AI what to buy, be the answer.

Search didn't die. It moved. Your buyers ask ChatGPT, Gemini, Claude and Perplexity what to buy, and they act on the answer they get.

That answer is assembled from sources most companies have never looked at. If you're not in there, a competitor is.

ChatFeatured is the AEO platform that does the work to get you in AI answers: See exactly what AI says about you, and how you stack up against competitors on every major engine.

Ask the built-in analyst agent why AI skips you, and get the specific fixes. Publish content engineered to get cited, then watch every AI bot that crawls your site.

Vessel grew its AI visibility 2,200%+. Most customers see their first citations inside 7 days.

DeepSeek Unplugged Its Memory Module. TriviaQA Kept 29 Percent.
ResearchAudio · Directory of Listings2026 edition · arXiv 2601.07372
ALLOCATION listings 01 to 09 UNPLUG
DeepSeek Unplugged Its Memory Module. TriviaQA Kept 29 Percent.
The Engram paper behind the 196 billion parameters that sit next to DeepSeek-V4.1-Flash. Read as a directory: the facts have an address, and the address is the last three tokens.
Listing · DeepSeek-V4.1-Flash · from the model card
552B
backbone parameters, the transformer with its experts
196B
Engram conditional memory, a lookup table, read on demand
8B / 16B
activated per token, prefill and decode
Three numbers, two kinds of parameter. The paper below is the reason the second number can live in host RAM or on an SSD while the first one stays on the GPU.
What shippedlisting 01
see also: mechanism, listing 02. Stance: this is the architecture note for a model you can already call.

The paper is Conditional Memory via Scalable Lookup, from DeepSeek-AI and Peking University. Version 1 went up on January 12, 2026. Version 2, the one this issue reads, went up on July 12, 2026. The last name on the author line is Wenfeng Liang, DeepSeek's founder. Code is at github.com/deepseek-ai/Engram.

The claim: Mixture-of-Experts made computation conditional. Nothing in a Transformer made memory conditional. Every time a model recognises a fixed phrase, a name, an idiom, a code identifier, it rebuilds that phrase through attention and feed-forward layers, which the authors call simulating a lookup with compute. Engram adds the lookup. Recent tokens become an address. The address hits a table. The row comes back in constant time.

Where it landed: the DeepSeek-V4.1-Flash model card lists a 552B backbone and a separate 196B Engram memory, with 8B activated at prefill and 16B at decode. The weights on Hugging Face total about 763B. So the number you quote for this model depends on whether you count the table.

How the lookup workslisting 02
see also: a telephone directory. Surname first, then the street, then the number.

Six steps, all deterministic until the gate.

#stepwhat the paper does
1Compress the tokenizerA fixed map folds token IDs that mean the same thing: Apple, apple, a leading space, accents. The 128k DeepSeek-V3 vocabulary shrinks 23.43 percent. The biggest merge folds 163 whitespace variants into one key.
2Form the addressFor each position, take the last 2 and the last 3 compressed tokens. Those two suffix N-grams are the address. No 1-grams, the plain embedding already covers them.
3Hash it eight waysEach N-gram goes through 8 multiplicative-XOR hash heads into tables of prime size. Eight heads so one collision does not poison the row. The pieces concatenate into a 1280-dim memory vector.
4Gate it with contextThe current hidden state is the query, the retrieved row supplies key and value. A sigmoid over their normalised dot product gives one scalar in (0,1). If the row contradicts the context, the scalar goes toward zero.
5Smooth and addA depthwise causal conv (kernel 4, dilation 3, SiLU) widens the receptive field, then the result is added to the residual stream. Conv weights start at zero, so training begins from an exact identity.
6Place it twiceIn the 27B run the module sits at layers 2 and 15 of 30. Layer 2 is the sweet spot the ablation found: one round of attention is enough to make the gate meaningful, and it is still early enough to spare the bottom layers the phrase-rebuilding work.

One consequence of step 2 is worth holding onto. The address is the token sequence itself, not the hidden state. The model knows every Engram row it will need before the forward pass starts. That single property is what listing 07 is built on.

The allocation lawlisting 03
see also: the U-shape. Stance: this is the paper's cleanest result and it holds at two compute budgets.

Fix total parameters and FLOPs per token. Now decide how much of the inactive budget goes to routed experts and how much to Engram rows. The paper calls the expert share rho and sweeps it at two budgets, 2e20 and 6e20 FLOPs, keeping total-to-active at roughly 10 to 1.

rho (expert share)what the model looks likeval loss, 9.9B
100%Pure MoE. 99 experts at 9.9B, 106 at 5.7B. No table.1.7248
75 to 80%The optimum. A fifth to a quarter of the sparse budget becomes lookup rows. Same location at both budgets.1.7109
about 40%43 experts at 9.9B, 46 at 5.7B. The paper reports loss comparable to pure MoE, so more than half the experts were replaced by rows without a measurable penalty.comparable
toward 0%Memory with almost no conditional compute. Loss climbs. The authors are explicit: memory cannot replace computation here.worse

The gap at the optimum is 0.0139 in validation loss. Small in absolute terms, but it costs nothing in FLOPs, and pure MoE sits on the wrong side of it. A second experiment holds a 3B backbone fixed and grows the table from 258 thousand slots to 10 million (about 13B added parameters). Loss falls as a straight line in log space across the whole range. The table is a scaling knob that costs no compute.

The 27B runlisting 04
see also: Table 1 of the paper. Same tokens, same data sequence, same 3.8B active, same 26.7B total.

MoE-27B has 2 shared plus 72 routed experts, top-6. Engram-27B cuts routed experts to 55 and spends the freed 5.7B on the table, so rho lands at 74.3 percent, inside the band from listing 03. Both train on 262B tokens. Engram-40B keeps the same backbone and grows the table to 18.5B.

benchmarkMoE-27BEngram-27BdeltaEngram-40B
Validation loss1.6341.622-0.0121.610
MMLU, 5-shot57.460.4+3.060.6
CMMLU, 5-shot57.961.9+4.063.4
BBH, 3-shot50.955.9+5.057.5
ARC-Challenge, 25-shot70.173.8+3.776.4
CCPM (Chinese classical poetry), 0-shot79.687.1+7.587.7
PopQA (long-tail facts), 15-shot19.219.4+0.221.2
HumanEval, 0-shot37.840.8+3.038.4
MBPP, 3-shot46.648.2+1.646.2
MATH, 4-shot28.330.7+2.430.6

Two things the table says that the abstract does not. The largest single gain is on Chinese classical poetry matching, 7.5 points, which is the purest memorised-phrase task in the suite, and the smallest is PopQA, 0.2 points, the long-tail fact benchmark where a lookup table should shine. A 3-gram over compressed tokens is a phrase memory, not a fact store. Second, the 40B model with three times the table loses to the 27B on HumanEval, MBPP and MATH (red cells), and on C3, which is not shown. The authors call it under-training and note the loss gap was still widening at the end of the run. Hold that explanation loosely until someone trains it longer.

The unplug testlisting 05
see also: Section 6.3 and Figure 6. Stance: this is the result the rest of the issue hangs on.

The authors zeroed the module's output at inference, backbone untouched, and re-ran the benchmarks. They warn the test is noisy because the network never trained without its table, so they report the two ends of the spectrum.

task familyshare of score retained with Engram offexample
Factual knowledge
29 to 44 percent
TriviaQA 29%
Reading comprehension
81 to 93 percent
C3 93%

Read the two rows together. Cut the wire to the table and the model forgets most of what it knew, but still reads a passage put in front of it almost as well as before. The facts moved into the rows. The reasoning stayed in the backbone. That is a cleaner division of labour than anything an MoE router gives you, because a router's experts are not legible as "the knowledge" and "the logic".

Two interpretability probes point the same way. LogitLens shows the Engram model's early layers produce distributions closer to its final answer than the baseline's do. CKA alignment on named entities shows representations at layer 5 of Engram-27B line up with roughly layer 12 of MoE-27B. The authors' reading: the table does the first seven layers of phrase assembly, so the network behaves as if it were deeper. The paper's own example is the entity "Diana, Princess of Wales", which a standard model resolves one layer at a time from Wales, to a title, to the person, by layer 6.

Long context, controlledlisting 06
see also: Table 2. Stance: the control is unusually honest, the headline row is the weaker of two.

Both 27B models got the same YaRN extension to 32k, 5,000 steps, 30B tokens. The twist is which Engram checkpoint goes in. The 46k-step checkpoint has the same pre-training loss (1.63) as the finished MoE at 50k, so any gap after extension belongs to the architecture, not to a stronger starting model.

RULER at 32kMoE-27B (50k)Engram (46k, iso-loss)Engram (50k)
Multi-query NIAH84.297.097.0
Variable tracking77.087.289.0
Frequent words extraction73.098.699.3
Single NIAH100.097.699.3
Common words extraction4.54.35.9

The authors' explanation is that local dependencies go to the table, so attention has capacity left for global context. The table supports that on multi-query retrieval and variable tracking. It also shows two things the abstract skips: the baseline wins single-needle retrieval at 100.0 against 97.6, and common words extraction is a wreck for every model in the table, under 6 percent across the board. An early-stopped Engram at 41k steps, 82 percent of the baseline's compute, still matches the baseline's long-text perplexity and beats it on RULER.

The table leaves the GPUlisting 07
see also: Section 6.4, Table 4. Stance: measured on dense backbones, with a note on what that leaves out.

Because the address is known before the forward pass, the rows can be fetched while the first block computes. The authors put a 100B-parameter Engram table in host DRAM, inserted it at block 2 of a dense model, and ran a nano-vLLM harness on an NVIDIA H800 with 512 sequences of 100 to 1,024 tokens.

configurationtokens per secondcost of the table
Dense-4B, no table9,031.62base
Dense-4B plus 100B Engram in host memory8,858.281.9 percent
Dense-8B, no table6,315.52base
Dense-8B plus 100B Engram in host memory6,140.022.8 percent

A hundred billion parameters that never touch HBM, at a throughput cost under three percent. Traffic per step scales with rows activated, not table size, so the table can keep growing. The design section goes further: N-gram hits are Zipfian, so hot rows can sit in HBM, warm rows in DRAM, the long tail on NVMe. The benchmark above did none of that and sent every row over PCIe.

Two caveats. The test backbones are dense, chosen to avoid expert-parallel traffic, so a production MoE serving stack competes for the same PCIe and interconnect. And the latency window is one block wide because the table sits at layer 2, exactly where the modelling ablation wants it. The hardware wants it deep, the loss wants it shallow, and the paper picks shallow.

What shipped follows the design, not the benchmark. Unsloth's V4.1-Flash guide runs the 196B table from SSD and says the production model addresses N-grams of up to four tokens, one more than the paper's three. The community GGUF builds pass a flag that pins the Engram weight tensor to CPU RAM and loads it lazily. The paper's memory hierarchy is already a command-line option.

Corrections and gapslisting 08
see also: everything above. Stance: what I checked and could not make line up.
aThe abstract and introduction report MMLU +3.4. Table 1 reads 57.4 to 60.4, which is +3.0, and Section 4.2 says +3.0. The abstract figure does not match the paper's own table.
bThe 262B-token runs are small by production standards. V4.1-Flash's gains from its 196B table are not published as an ablation anywhere I could find, so the 27B deltas are the evidence, and they do not transfer automatically to a 552B backbone trained on tens of trillions of tokens.
cThe gating visualisation in Section 6.5 picks the most interpretable of 8 gate scalars per token (4 branches times 2 layers). The paper says so in a footnote: not every branch encodes an interpretable pattern. The heatmap is a curated view.
dPrior work exists and the paper says so: hash embeddings (2017), OverEncoding, SCONE, N-Grammer, and ByteDance's UltraMem line. The novelty claimed is the iso-parameter, iso-FLOPs comparison plus mid-network placement for prefetching, not the idea of a hashed N-gram table.
eThe four-token N-gram and SSD offload for V4.1-Flash come from Unsloth's and NVIDIA's model documentation, not from DeepSeek's own card text, which I could not fetch directly. Treat those two details as secondary-source.
What it changes for youlisting 09
see also: your next model card. Stance: three practical readings, the third labelled as mine.

Parameter counts now need two columns. A 748B number for V4.1-Flash and a 552B number are both defensible. When you compare models, ask which column the table is in, and whether active parameters are quoted at prefill or decode. The paper's own metric for this is P sparse, the parameters you carry but do not compute, and Engram rows are the cheapest P sparse there is.

Local and edge serving math changes. Memory-class parameters do not need HBM. A model with a quarter of its weights in an N-gram table can run on a card that holds the backbone, with the table on the host or on disk, at a cost the paper measures in low single digits. Unsloth is already shipping that recipe for V4.1-Flash. Watch for the same split in the next open releases from other labs.

Knowledge might become addressable. This one is my inference, not the paper's claim. Facts collapsed to 29 percent when the table was unplugged, and every row has a deterministic address computed from tokens alone. That is the precondition for editing a model's knowledge by rewriting rows instead of fine-tuning weights, the thing ROME and MEMIT tried to do to feed-forward layers. The paper cites that literature and stops there. If anyone demonstrates row-level editing on an Engram model, that will be a bigger story than the benchmark table.

Sources checked
arXiv 2601.07372, abstract page, v1 Jan 12 2026, v2 Jul 12 2026
Full HTML of v2, Tables 1 to 6, Sections 3, 5, 6, Appendices A and C
deepseek-ai/Engram on GitHub
deepseek-ai/DeepSeek-V4.1-Flash on Hugging Face
NVIDIA NVFP4 card, 552B backbone, 8B prefill, 16B decode, 196B Engram
NVIDIA NeMo AutoModel notes on V4.1-Flash, sharded Engram memory
Unsloth, run V4.1-Flash locally, Engram on SSD, four-token N-grams
mHC: Manifold-Constrained Hyper-Connections, the multi-branch backbone Engram is fused into
Every number above was read from the paper's v2 HTML or the linked model documentation. Deltas were recomputed from Table 1. Where a figure comes from a third party, the listing says so.
ResearchAudio.ioend of listings