AI 平台/部署

降低模型部署成本,同时通过 GPU 显存交换保持性能

大规模部署大语言模型(LLM)面临双重挑战:一方面需保障高需求时段的快速响应能力,另一方面又要有效控制 GPU 成本。组织通常面临两难选择:是为应对峰值需求而配置额外的 GPU 资源,还是在流量高峰期间承担无法满足服务级别协议的风险,必须在二者之间做出权衡。

  1. 使用 GPU 部署多个副本以处理 最坏情况下的流量场景,为花费大部分时间处于空闲状态的硬件付费。
  2. 从零开始大幅扩展,让用户饱受延迟峰值之苦。

这两种方法都存在不足:第一种会耗费您的预算,第二种则可能令用户感到失望。

NVIDIA Run:ai GPU 显存交换(也称为模型热插拔)是一项创新技术,旨在突破 GPU 显存限制,提升自动扩展效率,从而显著提高推理工作负载的 GPU 利用率。

为何选择模型热插拔?

热插拔为模型服务引入了一种更加动态的资源管理方式。它允许多个模型共享同一块 GPU,即使这些模型的显存需求总和超过了 GPU 的可用容量。其工作原理如下:

  1. 动态内存卸载:在特定时间框架内未收到请求的模型不再占用 GPU 显存。不使用时,系统会将其交换到 CPU 显存。
  2. 快速激活:在收到请求后,系统会立即将模型交换回 GPU 显存,同时尽可能降低延迟。
  3. 模型副本越多,硬件越少:这使得多个模型能够共享同一硬件,从而在不影响响应速度的情况下显著减少始终开启的机器数量。此外,由于服务器 (即 CPU 进程) 即使在 GPU 部分被交换时仍然处于活动状态,因此在服务器已初始化时,副本可以快速重新启用。

借助热插拔技术,组织能够高效应对不可预测的工作负载,同时避免因过度配置带来的高昂成本。

GPU 显存交换基准测试:性能验证

为了演示 GPU 显存交换的性能,我们模拟了真实世界中大语言模型部署的场景。

测试中的模型

硬件与软件环境

  • GPU: NVIDIA L40S (48 GB) 通过 PCIe 4.0 x8 连接,限制为最大理论吞吐量的一半
  • 实例类型: AWS g6e.4 xlarge
  • 调度程序: NVIDIA Run:ai 调度程序 (v2.19)
  • 推理引擎: 具有默认配置的 vLLM 版本 0.6.4
  • 服务器镜像预加载到节点中,模型权重缓存在 EBS 存储中,从而在所有场景中消除网络流量开销。

指标

  • 第一个 token 所需时间 (TTFT): 从第一次请求到达服务器时开始测量,到模型生成第一个 token 为止。我们使用了 vLLM 的官方基准测试脚本,通过禁用预热阶段来模拟生产环境。

输入条件

  • 提示长度:128 个 token 和 2048 个 token,模型停止在 EOS token 处。

比较三种部署场景的延迟和效率

我们评估了三种不同的情况:

  1. 零扩展:测量 TTFT 从头开始加载模型。
  2. 单个 GPU 上模型之间的 GPU 显存交换:评估模型从 CPU 显存交换回 GPU 显存时的 TTFT。
  3. 基准 (暖模型) :当模型已驻留在 GPU 显存中时,建立基准 TTFT。

1. 零延迟扩展

从零开始扩展包括初始化 Pod、将模型加载到 GPU 以及处理首个请求。由于初始化开销较大,该方法的 TTFT 显著高于其他方法。

模型 输入长度 (Token) TTFT (s)
Llama 3.1 8B Instruct 128 159.49
2,048 159.77
Mistral-7B 128 145.90
2,048 146.90
Falcon-11B 128 207.07
2,048 208.13
表 1。使用 Llama 3.1 8B Instruct、Mistral-7B 和 Falcon-11B 扩展零结果。

对于较小的模型,首字生成时间持续超过140秒,而对于稍大的模型,则超过200秒。这种延迟(最长达208秒)在实时应用中通常难以接受,凸显了在生产环境中从零开始扩展的效率低下问题。

2. GPU 显存交换 – 最佳效率

在此测试中,模型于 CPU 内存中启动,并根据请求动态交换至 GPU 内存。测试包含两组模型:第一组为 Llama 3.1 8B 与 Mistral-7B,第二组为 Llama 3.1 8B 与 Falcon-11B,其处理序列为:

  1. 系统会向一个模型发送请求,提示其将请求加载到 GPU 显存中。系统会动态地将此模型从 CPU 交换到 GPU 显存,并记录 TTFT。
  2. 在此模型完成任务并自动交换回 CPU 内存后,系统会向第二个模型发送请求。同样,它被加载到 GPU 显存中,并记录其 TTFT。

注意:在 GPU 显存交换过程中,TTFT 受限于 PCI 带宽,以及模型在 CPU 与 GPU 显存之间交换所需的时间。

模型 输入长度 (Token) TTFT (s)
Mistral-7B 128 2.4
2048 2.57
Llama 3.1 8B Instruct 128 2.9
2048 3
表 2。Mistral-7b 和 Llama 3.1 8B Instruct 的 GPU 显存交换结果
模型 输入长度 (Token) TTFT (s)
Falcon-11B 128 2.93
2,048 3.13
Llama-3.1 8B Instruct 128 2.9
2,048 3.13
表 3:Falcon-11b 和 Llama 3.1 8B Instruct 的 GPU 显存交换结果

这两个批次(Llama 3.1 8B Instruct 与 Mistral-7b 搭配,以及 Llama 3.1 8B Instruct 与 Falcon-11b 搭配)均能在不同模型和输入规模下生成一致的结果。由于显存占用较高,Falcon-11b 的首令牌生成时间(TTFT)相较 Mistral-7b 略长,符合预期。然而,这一差异小于 0.5 秒,影响微小,仍在实际应用场景可接受的性能范围内。

这些结果的生成仅需 2 到 3 秒(取决于输入序列的长度),相比从零开始扩展,效率提升了 50 至 66 倍,具体提升幅度因模型类型和输入长度而异。

3. 基准性能 – 温暖的模型,高昂的成本

为建立基准,我们测量了已完全加载至 GPU 显存中的模型的 TTFT。从延迟角度看,这代表了理想情况下的性能表现。

模型 输入长度 (Token) TTFT (s)
Llama-3.1-8B-Instruct 128 0.038
2,048 0.21
Mistral-7B 128 0.036
2,048 0.17
Falcon-11B 128 0.05
2,048 0.25
表 4。使用 Llama 3.1 8B Instruct、Mistral-7B 和 Falcon-11B 作为基准

暖模型能够提供近乎即时的响应,但要求 GPU 始终完全专用于该模型。在需求较低的时段,GPU 仍无法得到充分利用,因此在同时运行多个模型或副本时,会造成显著的成本增加。

无损成本效益

:A bar graph showing Scale from Zero and GPU Memory Swap cost efficiency comparison to TTFT(s).
图 1。使用 GPU 显存交换与 GPU 显存交换,优化成本和性能在 Falcon-11B 和 Llama 3.1 中从零开始扩展。8B Instruct 和 Mistral-7B

GPU 显存交换在性能与成本之间实现了良好平衡,将 TTFT 缩短至几秒钟。该方法使组织能够将工作负载整合到更少的 GPU 上,同时满足严格的服务水平协议,保障系统的高效与可靠。相比始终运行的保温模型,这种方法仅需在延迟上做出轻微权衡,即可带来显著的成本节约。

尽管 NVIDIA Run:ai 的模型流式传输技术可将零场景下的首次响应时间(TTFT)缩短数十秒,但通过 GPU 显存交换技术,能够进一步将 TTFT 降至 10 秒以内,更适用于对响应时效有较高要求的应用场景。

借助 GPU 显存交换技术,您可以显著提升 GPU 利用效率,降低资源闲置带来的成本,同时保障用户期待的响应速度。 立即联系我们,实时体验 GPU 显存交换功能,并深入了解 NVIDIA Run:ai 如何助力重塑您的 AI 基础设施。

 

标签