「37 层压缩省 99%」到底省多少:按 config 逐层算一遍

成本账 · 6 步 / 约 3 分钟(纯算术,无需下载)未标注整理于 2026-11-07 有效期 180d

ERNIE 5.5 Flash Base 官方 config 里 compress_ratios 长度 44,37 个是 128、7 个是 -2(不压缩)。按 43 层逐层加:每 token 4198.50 个数,1M 上下文 KV 4.10 GiB,比全不压缩省 83.05% —— 而 128 倍压缩的理论极限是 99.2%。差的这 16 个百分点全在那一层除法上:4032 ÷ 4198.5 = 96.03%,你的 KV 有 96% 堆在那 7 层不压缩的层里。

ERNIE压缩KV缓存上下文显存MoEconfig选型本地部署长上下文

这条适用于

版本指纹

ERNIE 5.5 Flash Base config.json(2026-11-05 发布版)

具体做法

【官方 config 原文取值】num_hidden_layers 43 / hidden_size 4096 / num_attention_heads 64 / num_key_value_heads 1 / head_dim 512 / kv_lora_rank 512 / qk_rope_head_dim 64 / n_routed_experts 512 / num_experts_per_tok 10 / n_shared_experts 1 / moe_intermediate_size 2048 / vocab_size 201216 / max_position_embeddings 1048576 / first_k_dense_replace 1 / num_nextn_predict_layers 1 / architectures Ernie5_5_MoeForCausalLM / experimental_attention_variant dsv4_hybrid。

compress_ratios:长度 44,其中 37 个值为 128、7 个值为 -2。

【逐层计算】每 token 每层 KV 维度 = 512 + 64 = 576 个数。
37 个压缩层贡献 = 37 × 576 ÷ 128 = 166.50
7 个全 token 层贡献 = 7 × 576 = 4032
合计 = 4198.50 个数/token

【各上下文下的 KV(FP8)】8K 0.03 GiB / 128K 0.51 / 256K 1.03 / 512K 2.05 / 1M 4.10 GiB。若 43 层全部不压缩,1M 是 24.19 GiB。省 83.05%。

【为什么不是理论上的 99.2%】128 倍压缩的理论极限 = 1 - 1/128 = 99.2%。实际 83.05%。差额的来源是一个除法:4032 ÷ 4198.5 = 96.03%。1M 上下文的 KV 里,96% 全堆在那 7 层不压缩的层上,37 层压缩的功劳只占剩下 4%。

【这笔账怎么用】长上下文不是显存的大头。1M 上下文 FP8 只吃 4.10 GiB,一张 32G 卡光放 KV 能放七个 1M 会话。真正吃显存的是权重本身 —— 这个模型 FP8 权重 288.46GB。看到「1M 上下文」这个卖点,先算权重,再算 KV。

失效边界
全部为按官方 config.json 与仓库真实字节数的算术推导,ERNIE 5.5 Flash Base 权重未下载、模型未运行,本方案不含任何该模型的实测速度或实测显存占用。compress_ratios 长度 44 与层数 43 差一个:前 43 个对应层,第 44 个(值 -2)用途未确认,可能对应 num_nextn_predict_layers = 1 的 MTP 层;若它也参与 KV,1M 下要多 576 个数/token(约 +0.56 GiB),结论不变。官方「37 层 HCA + 6 层 MLA」与 config 的 37 + 7 亦差一层,本方案以 config 原值为准,媒体口径记为待核。多卡切分的通信开销未在这个模型上实测。
← MoE 大模型能不能跑:容量和速度是两笔账,别混成一句「太大了」4B 模型显存别只算权重:权重决定装不装得下,KV 决定能挂几路 →

← 返回全部排错方案