KuaFu: Compressing Long User Behavior into Understanding at Billion Scale
Jiahao Hui, Lin Zhu, Yishen Hu, Jingdong Shu, Zetai Jiang, Xining Ran, Ben Tan, Yeshou Cai, Gong Chen, Haijie Gu, Jie Jiang
cs.IR, cs.CL, cs.LG
2026-09-25
Tencent compresses each behavior into 2-4 tokens; profiles match or beat uncompressed models, per-GPU QPM rises 37–350%, and GMV rose 1.37% over ten months.
Interest summarization already reads a few hundred events per user, more than a thousand in the tail, which serializes to tens of thousands of prompt tokens. Tencent Ads recomputes profiles for a billion users every week, about 100K QPM in aggregate, so a fixed GPU budget becomes a hard per-GPU throughput floor. Truncation and coarse compression produce four hallucination types: invented interests, dropped signals, wrong dates, and broken logic. Those errors do not fire an alarm at the compressor. They show up as fog on CTR and GMV. One online A/B takes a week; root-causing takes a month.
The industrial default is to slice a task-specific subsequence and train a dedicated model. Clean, but each task sequence is still long, and a cache cannot be reused across tasks.
The compression unit is one behavior item, not the whole history. A Qwen3-4B encoder appends m memory tokens to the item text, then a two-axis projector cuts token count from m to k (e.g. 8→2) and width from d to d' (e.g. 2560→128), plus a pooled residual. The cache is keyed by item, about 0.5 KB each, reused across users and tasks. A new event is encoded once and appended. The alternative, two 2560-d fp16 vectors at 10 KB, does not fit at inventory scale.
Four stages, easy to hard, all aimed at fidelity:
Training spans 42 task types. Public comparisons switch the backbone to Llama-3.2-1B and retrain ICAE, SAC, 500xCompressor, and EPL under an aligned protocol. LLMLingua-2 is 5× hard compression, listed as a reference only.
On five production metrics, multi-task KuaFu on compressed input versus uncompressed single-task online models:
| Task | online | KuaFu |
| Content interest F1 | 85.9 | 86.5 |
| E-commerce interest F1 | 95.7 | 96.1 |
| Industry accuracy | 81.0 | 82.1 |
| Occupation accuracy | 86.7 | 87.6 |
| Life-stage accuracy | 76.0 | 78.0 |
Among aligned soft compressors the best overall is EPL at 42.4; KuaFu is 63.0. On MRQA, 15× in-domain EM is 50.8, in the same band as SAC at 5× (46.95). The abstract's peak OOD margin is +17.7 EM. RecBench zero-shot mean is 0.617, against 0.570 for the same-weight Qwen3-4B and 0.598 for Qwen3-8B.
Hallucination RL: fabrication 33.5 → 4.5 (−29 pp), fully-correct 56.0 → 90.0. Misses and non-answers tick up, which is the intended "punish invention more than omission" trade.
The curriculum is not an accelerator. Mixed lengths 1–1200 stall at loss 2.27 even at 980K samples; five buckets reach 0.20 / 0.28 / 0.16 / 0.02 / 0.034 at similar token count.
The online A/B holds GPU and storage fixed: control is one year of behavior, monthly refresh; treatment is two years, weekly. After a four-week ramp, a 5% holdout over ten months shows +1.37% GMV (95% CI 0.71–2.03). Throughput: life-stage QPM/GPU 592→810 (41→30 GPUs), e-commerce 250→800 (90→28), content 40→180 (150→33), 190 GPUs saved.
Item-level, cacheable compression grows with inventory instead of users × tasks. Matching uncompressed quality after compression means a lot of the long sequence was repetition and noise. If an LLM is going to understand users, the bottleneck is often the input, not another decoder.
The GMV test changed horizon and refresh cadence at once. Compression, "seeing further," and "updating sooner" are entangled; 1.37% is not a pure compression effect.
Compression ratio is frozen per family (10× interest, 15× profile); sparse sequences are not adaptive yet. Very long items lose detail at low width. There is no systematic data or parameter scaling study. Production logs cannot be released. In-house scores come from an LLM judge. Hallucination eval is 1,000 items. Intermediate metrics shrink the loop from month-end GMV to daily checks; that is an engineering gain, not a public benchmark.