VLLM推理框架中的sleep_mode如何实现
vllm sleep_model 简介
前文torch_memory_saver 高性能 CUDA 内存管理工具实现,介绍了 sglang 中利用了该库将保存 kv_cache 和权重的显存释放出来。
在 VLLM 中也有同样的功能实现,在 VLLM 中的直接应用是“sleep mode”。将模型权重从显存(或者 NPU 内存中)卸载,并丢弃其中的 KV 缓存。
前文torch_memory_saver 高性能 CUDA 内存管理工具实现,介绍了 sglang 中利用了该库将保存 kv_cache 和权重的显存释放出来。
在 VLLM 中也有同样的功能实现,在 VLLM 中的直接应用是“sleep mode”。将模型权重从显存(或者 NPU 内存中)卸载,并丢弃其中的 KV 缓存。
我们知道通过反射可以在运行时获取类名、类型等一些信息,然而c++语言本身没有提供类似java这种反射机制。在阅读iguana开源库时,看到了一种EnumRefection的实现,分享给大家。
iguana 是C++17 实现的header only、跨平台、高性能易用的序列化库,包括xml/json/yaml 的序列化和反序列化。
在这个例子中,我们将创建一个可执行程序 A,它使用动态链接库 C,而 C 本身又依赖于另一个动态链接库 D。
库 C 和 D 都链接了库 E,其中库 E 包含一个使用 extern 声明和实现的 const std::string 全局变量。
你在编译开发一个项目时,有遇到过指定了链接库,但是运行时,却报错:未定义某个符号吗?undefined xxx。
在开发中遇到的xxx报错,是经过mangle了的,不方便看,可以采用c++filt工具查看原始符号,命令: c++filt xxx 。
(本小节译自deepseek-r1-and-fp8-mixed-precision-training)
深度探索(DeepSeek)发布了其推理模型深度探索-R1(DeepSeek-R1),震惊了世界。与 OpenAI 的 o1 和Google Gemini的Flash Thinking类似,R1 模型旨在通过在响应提示之前生成一条“思维链”来提高回复质量。R1 引起的兴奋源于它在包括数学、编码以及英语和中文语言理解等几个行业标准基准测试中与 o1 达到同等水平,同时它也是开源的,并且可以通过深度探索 API 以极低的成本获得。
这篇文章探讨了 DeepSeek 模型中与专家混合 (MoE) 相关的另一个关键架构突破:辅助无损负载均衡策略。在本文中,我们将深入探讨 DeepSeek 如何解决 MoE 的隐藏瓶颈——负载均衡——同时消除梯度干扰并保留因果关系,为基于专家的模型的效率设定新标准。
首先介绍专家混合 (Mixture-of-Experts,MoE) 的基础知识,解释为什么负载平衡很重要,并回顾以前的工作,包括辅助损失方法(auxiliary loss methods)和专家选择(Expert Choice)。
CUTLASS库中的尾声融合(Epilogue Fusion)和尾声访问树(Epilogue Visitor Trees)
GEMM 在 NVIDIA GPU 上的高性能实现分为两个阶段:mainloop和epilogue。
mainloop:负责实际 GEMM 计算的部分
epilogue:其中进行了后处理(例如,元素激活、缩放)和数据存储
这篇文章中,我们将研究 CUTLASS 的尾声融合(epilogue fusion)方案。EVT在论文Epilogue Visitor Tree (EVT)中。
今天我们一起来阅读一篇文章deepseek-v3-explained-2-deepseekmoe,文章通过巧妙的例子生动讲解了DeepSeekMoE机制的原理。DeepSeekMoE是DeepSeek模型中的另一个关键架构创新。
将解释 Mixture-of-Experts (MoE) 的工作原理,是什么让它在 LLM 中如此受欢迎以及它面临的挑战。我们还将讨论专家专业化与知识共享之间的权衡,以及 DeepSeekMoE 如何设计以取得更好的权衡。为了使这些概念更直观,文章通过餐厅做菜选择厨师的例子,来类比分解它们,通过厨师在厨房中的角色来说明 MoE 中的每个元素。
DeepSeek-V3:多头潜在注意力(MLA)
MLA是DeepSeek-V2 和 DeepSeek-V3 背后的关键架构创新,可实现更快的推理。
DeepSeek-V3 的主要架构创新,包括 MLA(多头潜在注意力)、DeepSeekMoE、辅助无损负载均衡(auxiliary-loss-free load balancing)和多标记预测训练(multi-token prediction training)。
本文讲解的MLA技术,在 DeepSeek-V2 的开发中被提出,后来也被用于 DeepSeek-V3 中。