用途:SERE 用于加速 MoE(混合专家)模型的批量解码。MoE 中每个 token 只激活少量专家,但批量推理时不同 token 路由到不同专家,激活专家并集变大,解码阶段受显存带宽限制。SERE 在推理时动态减少激活专家数量,无需永久剪枝或重训练。
主要能力:每个 MoE 层分三步——先选出批次内 top-S 专家作为主专家;再对每个次要专家查预计算相似度,若最高相似度超过阈值 ρ 则把其 token 重路由到最相似主专家,否则标记为关键专家并保留;最后只执行主专家与保留的关键专家,减少专家前向次数。相似度矩阵在离线校准阶段用 CKA、余弦或 Frobenius 范数计算,不改模型权重。以 vLLM 插件加自定义 CUDA 内核集成,官方称最高约 2.0 倍解码加速且质量损失较小。
使用方式:需 Python 3.10+、PyTorch 2.6+、CUDA 12.4+、GCC/G++ 7.0+(C++17)、vLLM 0.8.4,并设置 export VLLM_USE_V1=0。安装:git clone https://github.com/JL-Cheng/SERE.git && cd SERE,然后 cd vllm && pip install .。校准示例:python cal_expert_similarity.py --model_type qwen2_moe --model_path Qwen/Qwen1.5-MoE-A2.7B-Chat --output_path ./output/qwen2_similarity --similarity_method cka --kernel linear --batch_size 200 --max_len 128。随后在 vLLM 的 hf_overrides 中指定架构(如 Qwen2MoeForCausalLMSERE)、select_top_k 与 threshold,或用 vllm serve 部署为 OpenAI 兼容接口。
适用场景:Qwen1.5-MoE、DeepSeek-V2-Lite、Qwen3-30B-A3B 等模型的批量服务,解码为瓶颈、需在延迟 SLA 下提升吞吐时。
限制:仅支持上述模型,其他 MoE 架构需自行适配;锁定 vLLM 0.8.4 与 v0 后端;只加速解码阶段,不加速 prefill;batch size 为 1 无收益;校准为离线静态,微调后需重新校准;阈值推理时固定,暂无自适应逐层阈值。其他事实暂未提供。