大模型分离架构学习记录

发布于:2024-09-19 ⋅ 阅读:(15) ⋅ 点赞:(0)

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台机器上执行,旨在

  1. 将更好性能的GPU分配到compute_bound的prefill阶段;将其他机器分配到memory_bound的decode阶段,提高吞吐

  2. 可以根据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、文章参考


网站公告

今日签到

点亮在社区的每一天
去签到