@techNmak: 运行大型MoE模型最聪明的方式并不是增加更多GPU,而是不再把每个专家都视为值得占用GPU资源……
摘要
KTransformers 是一个优化大型混合专家模型推理和微调的框架,它通过将活跃的专家动态放置在 GPU 上,其余专家保留在 CPU 内存中,使得像 DeepSeek-V3 这样的大型模型能够在有限的消费级 GPU 内存上运行。
运行大型MoE模型最聪明的方式并不是增加更多GPU,而是不再把每个专家都视为值得占用GPU资源。
大型混合专家模型包含数百个被称为专家的专用前馈网络。
但模型并不会对每个词元都用上所有专家。
在KTransformers所展示的架构中,路由器每次只从256个专家中激活8个。
因此,将整个专家池都存放在昂贵的GPU显存中意义不大。
KTransformers根据硬件真正擅长的任务来分配工作:
→ 注意力层和共享组件留在GPU上
→ 庞大的路由专家池放在CPU内存中
→ 常用专家可放置在GPU上
→ 较冷的专家继续在CPU上运行
→ AMX和AVX指令集加速INT4/INT8 CPU推理
→ NUMA感知调度减少内存访问开销
CPU不再被视为慢速的溢出容器,而是成为推理引擎的活跃组成部分。
GPU处理算术密集型操作以及那些最受益于快速显存的专家。
CPU提供承载模型长尾专家所需的容量。KTransformers专为异构CPU-GPU推理而设计,支持大型MoE模型的动态专家放置。
这一区别至关重要。
稠密模型几乎每一次词元都需要大部分权重,而混合专家模型只需要一个小的工作集。
所以真正的优化问题不再是:
如何将整个模型塞进GPU?
而是:
模型的哪些部分目前值得占据GPU显存?
KTransformers还与SGLang集成用于服务部署,与LLaMA-Factory集成用于在有限GPU显存下微调大型MoE模型。其已知配置包括:在四块RTX 4090上总计约80GB显存微调DeepSeek-V3/R1,以及在一块RTX 4090上运行Qwen3-30B-A3B。
该项目现已获得17K+ GitHub星标,支持的模型包括GLM-5.2、MiniMax-M3、DeepSeek-V4-Flash和Kimi-K2.5。
更宏观的理念:
GPU显存不应成为整个模型的住所,而应是模型当前工作集的居所。
GitHub:https://github.com/kvcache-ai/ktransformers…
查看缓存全文
缓存时间: 2026/07/12 23:01
一个用于体验前沿LLM推理/微调优化的灵活框架
相似文章
Transformer 中的专家混合模型 (MoEs)
Hugging Face 的博客文章,介绍 Transformer 中的专家混合模型 (MoEs) 架构,涵盖从密集模型到稀疏模型的转变、权重加载优化、专家并行计算以及基于 MoE 的语言模型训练技术。
多层级MoE缓存
讨论MoE模型的多层级缓存策略,通过将频繁激活的专家保留在GPU上来提升推理速度,参考了PowerInfer和llama.cpp分支等现有实现。
@googledevs: 扩展前沿的混合专家(MoE)模型需要的不仅仅是试错调优。探索Qwen 3.5-397B是如何…
Google Cloud 详细介绍了他们如何在 Ironwood TPU 上使用模块化、模型无关的工程手册优化 Qwen 3.5-397B MoE,实现了 3.1 倍的解码性能和 4.7 倍的预填充性能提升。
除了更快之外,MoE 模型的意义何在?
讨论混合专家(MoE)模型在速度之外相对于密集模型的优势,考虑内存限制和扩展限制。
使用 NVIDIA NeMo AutoModel 加速 Transformer 微调
NVIDIA NeMo AutoModel 利用 HuggingFace Transformers v5,在微调 Mixture-of-Experts 模型时,无需修改代码(只需一个导入),即可实现 3.4 至 3.7 倍的训练吞吐量提升和 29% 至 32% 的 GPU 内存减少。