一念 LLM分布式推理优化实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 演讲人:袁镱
2.
3. 大语言模型推理框架 大语言模型推理的基本逻辑 硬件厂商:算子研发上有天然优势,充 分利用自家硬件 TensorRT-LLM,MindIE 非硬件厂商:调度和显存管理是研发重点 vLLM,SGLang,一念LLM 模型厂商:模型定制算子 DeepSeek DeepSeek-R1爆火为推理框架带来的挑战 理想:假定算子MFU60%,16卡H20的吞吐可以到30K+ tokens/s(输入:1812,输出:978 tokens) 现实:2025年2月,vLLM,SGLang基本都在2K tokens/s,优化空间巨大 2025年8月,vLLM,SGLang大约7K tokens/s,TensorRT-LLM 11.2K tokens/s,一念LLM 14.6K tokens/s,任重道远
4. 一念LLM的研发基础逻辑 判断1:模型推理占据业务逻辑的比重会越来越大。 引发“业务快速响应;系统稳定高效”的需求 手写模型 方案:调度与定制能力自研,深度优化调度与 显存管理 高效调度 判断2:开源模型算子优化上,硬件厂商和模型 开发者会深度优化相关算子 方案:开源算子高效引入,支持多种硬件 优化显存 提高吞吐 算子择优 降低耗时 多硬件支持 DeepSeek R1:KvCache可用显存多130%,吞吐高30%(14.6K vs 11.2K)
5. 大语言模型推理优化中的硬件限制 Prefilling Tokens Decoding Tokens Sequence Tokens 1. 计算能力随推理token数增长 会逐步增长,并达到硬件上 限。再增加只会增加耗时。 2. decode效率低,可以通过 增大batch size和投机解码来 增大并行推理token数 3. Sequence token数越大,KvCache显存需求越大。会限制batch size增大。 优化手段之一:在有限的显存条件下,增大推理token数来让各个阶段达到计算能力极限。 但是一个阶段达到硬件极限了,就尽量不要再加,避免耗时增加
6. DeepSeek与推理优化方向 MoE 特点:256个路由专家,1个共享专家 问题:专家负载不均,算子稀疏 方案:增加并行token数(DP/EP),共享专家多副本 MLA 2025 DeepSeek-V3 Technical Report 特点:压缩KvCache 问题:额外Proj操作,多卡间CompressedKvCache重复 方案:权重吸收,全DP
7. 假定一台机器 4 张卡 全TP MLA和MoE的batch size相同 计算:MoE计算稀疏 通讯:MoE通讯多 显存:KvCache重复 DP + TP(MoE) MLA和MoE的batch size不同 计算:MoE token增多 通讯:MLA通讯少,MoE不变 显存:KvCache重复减少,权重 /buffer增大 DP + EP MLA和MoE的batch size差距进一步拉大 计算:MoE token继续增多,计算稠密 通讯:MoE通讯减少 显存:状态数据减少,共享专家会导致增大 显存瓶颈导致一般在DP+大EP方案下才有收益
8. DP + 大EP剩余的问题: 1. Prefill+Decode过程混合,性能相互影 响 2. Decode阶段权重吸收导致额外的权重 显存消耗 3. 两阶段对MoE的最佳Batchsize不同 (请求的推理tokens数相差巨大) PD分离: 优点:计算过程单纯,计算同构性好; 节省显存; 缺点:KvCache同步导致机器间通讯性 高性能大机需求 能要求高; 硬件厂商与云厂商的最爱 大并行请求量来打满硬件
9. 这是在往小型机方向走么? 互联网的服务不应该是海量和柔性的么?成本怎么降下来? 为什么会这样? 1. 所有请求同步执行 2. 每层至少两次数据同步 一次推理操作需要 61*2 = 122次跨机 同步
10. 优点:只进行2次跨机数据同步 问题:单Batch执行,导致硬件资源空闲 挑战:1. 自回归推理过程保障 2. 后期其他并行策略和显存优化策略 的兼容 1. 共享显存管理的多 Batch流水线并行调度 2. 多Batch负载均衡 不是什么新技术,这才是流水线并行本该有的样子 只是大模型推理有状态(时序和KvCache)让调度变难 Token吞吐:5K 9K
11. MLA特性: KvCache在卡间重复冗余 DP: 1. 减少KvCache冗余 2. 并发更多请求 3. 减少卡间通讯 冗余度 DP 1 DP 4 DP 8 7 1 0 全DP(一张卡一份DP): 优点: 1. KvCache无冗余 2. DP内无同步 3. 容易实现高吞吐 挑战: 1. 权重的显存需求上涨, 侵蚀KvCache显存 2. DP之间负载均衡需求大 方案: 1. 显存管理精细化,buffer复用 (之前就省出了130%) 2. DP/MultiBatch PP混合调度 Token吞吐:9K 14.6K
12. 进行中:EP,PD分离 为什么先做了PP? 在H20上EP,PD分离更容易触碰到算力天花板 在H800上必须要做才能获得性能优势 进行中: Q1. 调度策略与业务 场景如何适配? A1: 吞吐优先,响应优先 柔性KvCache匹配 Q2. 是不是每层都要 用相同的精度? A2: 权重/KvCache分层量化 Q3. Batch之间流程是否 可以并行? A3: Multi-Stream并行 Q4. 多模态模型还有哪 些可优化点? A4: 持续优化中 Q5. 国产卡支持情况? A5: 部分模型支持昇腾,持续 更新中
13. 一念LLM,取“一念三千”之意,寓意“一念之间,用大模型生成世间万象”。 一念LLM开源地址 GitHub: https://github.com/Tencent/KsanaLLM
14.
15.

首页 - Wiki
Copyright © 2011-2025 iteam. Current version is 2.146.0. UTC+08:00, 2025-10-20 18:45
浙ICP备14020137号-1 $访客地图$