1、大模型相关名词
- TOE(TCP Offload Engine)是指TCP卸载引擎。它是一种网络技术,通过将TCP/IP协议栈的一部分处理任务从主机的CPU卸载到网卡; 也就是RDMA
- NVLink :在单台服务器内 8 块 GPU 卡通过 NVLink 连接。不同服务器之间的 GPU 卡通过 RDMA 网络连接。
- SLO(Service Level Objective) 服务水平目标
- TTFT(Time To First Token) prefill首token耗时
- TPOT(Time Per Output Token) decode 每token耗时
- TBT (Time Between Tokens) 两个 token 生成间的延迟
- DP 数据并行
- TP 张量并行
- PP 流水线并行
- MFU(Model FLOPs Utilization):即模型算力利用率
- VRAM (video Ram) : 显存
2、大模型分离架构背景
大模型分离架构是指将预填充(prefill)及解码(decode)逻辑拆分到2台机器上执行,旨在
-
将更好性能的GPU分配到compute_bound的prefill阶段;将其他机器分配到memory_bound的decode阶段,提高吞吐
- 可以根据prefill及decode的特点,在batchsize及并行策略上进行独立优化
3、分离架构性能实验论文
3.1 DistServe实验数据
(分离式架构可以在同等TTFT和TPOT下提升吞吐)
参考文章:https://aijishu.com/a/1060000000472929
decode场景可以提高batch size (input token数)(右); 但是prefill阶段batch size很容易打到上限(左)
-
3.2 batch执行方式分析 参考
4、分离架构优化点
- 充分利用GPU机器上的CPU、DRAM、SSD资源实现KVCache
- 分离后更有利于prefill和decode的独立优化
- batch size (prefill和decode的上限不同,后者更高)
- 并行策略优化(DP,TP,PP)
- prefill阶段:在qps较小时,更适合用tp;在qps较大时,更适合用pp
- decode阶段:对于decode阶段,随着gpu数量的增加,如果采用pp的方式,能产生更高的吞吐量;如果用tp,则能产生更低的延迟
- 长prompt效果更加明显
- 优化理论依据(什么场景下,既能省耗时又能提高吞吐)
- 对于每 X byte 的 KVCache,其生成所需的算力正比于 X*hd 再乘以一个较大的常数,这里 hd 对应模型的 hidden dimension。因此只要每卡算力比如 A100 的 220TFLOPS 和每卡通讯带宽比如 CX7 的 100Gbps 的比值小于 hd 乘以这个常数,那么从远端传输 KVCache 相比原地重算不仅仅减少了计算量还减少了 TTFT。 参考
- 分为算力和耗时两个层面
- 算力指生成KVCache的算力一定小于直接从缓存读取KVCache的算力
- 耗时指生成KVCache的耗时 需要大于 直接从缓存读取KVCache的耗时
5、模型推理提效的其他方式 参考
- vLLM 提出了 Paged Attention 算法,将 attention 算法产生的连续的 key value 向量按照 block 进行组织和管理,以减少显存碎片。vLLM 还借鉴操作系统当中的虚拟内存和分页思想优化 Transformer 模型推理中产生的 KeyValue Cache,大大提高了显存当中 KV Cache 的利用效率。但 vLLM 是基于单机层面上设计,只能将 GPU 中的 block swap 到单机的内存当中。
- SplitWise(微软)、DistServe 和 TetriInfer 将 prefill 和 decode 分离到不同的 GPU 组中以避免干扰,但它们的静态并行性和分区策略并不灵活,无法处理动态工作负载。
- Infinite-LLM 针对 long context 场景提出分布式 DistAttention,将 KV Cache 分割成 rblock,一个 node 可以借用别的 node 上的空闲显存。但它没有做 prefill/decode 分离,并且仍然需要周期性的 KV Cache 迁移来维持局部性,并且没有考虑不同请求之间或不同阶段之间的弹性资源需求。
6、文章参考
- 大模型合并及分离架构对比 https://juejin.cn/post/7408775736796872738
- cpu_bound memory_bound及gpu计算方式讲解 https://mp.weixin.qq.com/s?__biz=Mzg2NjcwNjcxNQ==&mid=2247485453&idx=1&sn=beb642f06f3501bd235a8f42973e39fb&chksm=ce47fc79f930756f991d93f69cad36409e3dcb58e517f41f583d29609b360e9b46f6777a42b4&scene=21&poc_token=HNlC4GajIEkUH4b-GWWVXmEgS4TiLmElCs4-jRUa
- 大模型优化方式讲解:DP、TP、PPhttps://zhuanlan.zhihu.com/p/618865052