AI 模型与平台

服务器无服务器大型语言模型的未来

mm
将 Unite.AI 添加到您在 Google 上的首选来源

最近在大型语言模型(LLM)方面的进展,如GPT-4和PaLM,已经带来了自然语言任务的变革性能力。LLM正在被整合到各种应用中,例如聊天机器人、搜索引擎和编程助手。然而,服务LLM仍然具有挑战性,因为它们需要大量的GPU和内存资源。

为了克服这些挑战,通常有两种方法:

  1. 模型压缩技术

这些技术旨在减小模型的大小,同时保持准确性。常见的方法包括:

  • 剪枝 – 从模型中删除冗余或不重要的参数。这创建了一个稀疏模型,具有较少的参数。
  • 量化 – 使用较低精度的数字(如int8或bfloat16)来表示权重,而不是使用fp32或fp16。这减少了内存占用。
  • 知识蒸馏 – 训练一个较小的“学生”模型来模仿一个较大的“教师”模型。然后使用较小的模型进行推理。
  1. 选择性执行

这些技术选择性地执行模型的某些部分,而不是压缩模型:

  • 稀疏激活 – 跳过计算零激活。
  • 条件计算 – 执行某些层,条件取决于输入。

在软件架构方面,为了实现LLM的快速部署,研究人员提出了无服务器推理系统。在无服务器架构中,LLM托管在共享的GPU集群上,并根据需求动态分配。这允许高效地利用GPU,并降低了开发者的成本。著名的实现包括Amazon SageMaker、Microsoft Azure ML和开源选项,如KServe。

尽管无服务器LLM具有前景,但现有的系统表现出高延迟开销,这会降低交互式应用程序的用户体验:

  1. 昂贵的检查点下载:LLM具有大型内存占用,通常为几GB到TB大小。从远程存储下载检查点需要花费大量时间,即使使用优化的网络,也需要超过20秒。
  2. 低效的检查点加载:即使使用本地SSD存储,将检查点加载到GPU内存也需要花费数十秒的时间,这是由于张量反序列化和分配等因素造成的。这增加了显著的延迟,超过了容器启动时间。

为了解决这些问题,MIT CSAIL的研究人员提出了ServerlessLLM,一种创新系统,实现了低延迟的无服务器推理 дляLLM。ServerlessLLM通过利用多级服务器存储的丰富但未充分利用的容量和带宽来增强局部性。

LLM无服务器推理系统概述

LLM无服务器推理系统概述

ServerlessLLM的关键创新:ServerlessLLM包含几种新颖的设计,以减少无服务器环境中的LLM加载时间:

  1. 快速检查点加载
  • 加载优化的检查点格式,实现快速的顺序读取和高效的内存张量寻址。
  • 多级检查点加载管道,最大限度地利用网络、SSD、DRAM和GPU内存的带宽,使用直接I/O、固定内存传输和并行等技术。
  1. 基于直播迁移的局部推理
  • 仅传输必要的提示令牌,而不是传输整个快照。
  • 两阶段迁移,允许在异步重新计算缓存状态后无中断地执行推理。
  1. 延迟优化的服务器分配
  • 准确的模型,用于估计每个服务器的检查点加载时间和迁移时间。
  • 局部感知调度器,选择最小化预期启动延迟的服务器,使用上述模型。

这些优化使ServerlessLLM能够将LLM加载时间减少4-8倍,将端到端启动时间减少超过25倍,相比现有的系统,如PyTorch、TensorFlow和KServe。

让我们更深入地了解ServerlessLLM如何实现这些显著的性能增益。

加速检查点加载

ServerlessLLM解决的第一个主要瓶颈是从存储加载LLM检查点到GPU内存的高延迟。

为了实现快速检查点加载,ServerlessLLM引入:

  1. 加载优化的检查点格式

PyTorch等框架使用的标准检查点是为模型训练和调试而设计的。但是,对于无服务器推理,检查点是只读的,并被重复访问。

为了优化这种读取密集型使用,ServerlessLLM将检查点转换为具有两个关键属性的格式:

  • 顺序块读取:张量被分组为每个GPU的二进制文件,实现大型顺序读取。
  • 高效的张量寻址:索引将张量名称映射到内存偏移量,允许直接在内存中恢复而无需反序列化。
  1. 多级检查点加载管道

ServerlessLLM利用GPU服务器的分层架构,具有存储介质,如SSD和网络,通过PCIe、NVMe等连接到GPU。

该系统包含一个多阶段管道,以最大限度地利用所有层的带宽:

  • 使用固定内存分配内存块,以实现快速的GPU传输。
  • 使用直接I/O,实现高效的SSD读取,而无需缓存开销。
  • 多个线程并行读取不同的存储块。
  • 阶段间协调通过异步任务队列进行。

这些共同使得即使是最快的层,如NVMe RAID,也能够饱和带宽容量。实验表明,ServerlessLLM比PyTorch/TensorFlow快6-8倍,减少了大型LLM的启动时间,从超过一分钟到不到10秒。

基于直播迁移的局部LLM推理

随着加载的加速,ServerlessLLM面临新的挑战——如何利用预加载的检查点实现局部性,而不会中断忙服务器上的正在进行的推理?

ServerlessLLM引入了一种新颖的技术——LLM推理的直播迁移。这种技术允许无缝地将执行转移到具有本地检查点的服务器。

直播LLM迁移的关键启用器:

  1. 令牌基于迁移

ServerlessLLM仅迁移最小的提示令牌,而不是整个快照。这比快照传输少了几个数量级的数据。

  1. 两阶段迁移

目标服务器异步预计算缓存状态,然后源服务器传输最终令牌并释放资源。这防止了推理停顿。

实验表明,基于令牌的迁移将迁移时间从数十秒减少到不到一秒,即使对于长序列也是如此。直播迁移对于实现局部驱动的分配至关重要,以防止排队延迟。

延迟优化的模型调度

为了最小化端到端延迟,ServerlessLLM增强了调度器,以优化服务器选择,考虑局部性。这涉及:

  1. 细粒度加载时间估计器

模型预测每个服务器的加载时间,使用网络、SSD缓存和内存的指标,如队列延迟、模型大小和测量带宽。

  1. 准确的迁移时间预测器

调度器估计每个服务器的迁移时间,使用提示和输出令牌的数量。它异步跟踪推理进度,以避免开销。

  1. 局部感知分配

对于每个推理请求,调度器评估每个服务器的预计加载和迁移时间。它选择最小化预期启动延迟的服务器。

调度器还维护服务器任务队列,并利用强一致性存储实现容错。这些创新共同减少了调度开销,同时最大限度地提高了局部性优势。

评估ServerlessLLM性能

全面实验评估了ServerlessLLM的端到端有效性,使用现实世界的模型,如OPT-175B和类似Azure跟踪的工作负载。

关键结果:

  • 微基准测试:ServerlessLLM比PyTorch/TensorFlow加速检查点加载3.6-8.2倍。它完全饱和了存储带宽,即使对于最先进的NVMe RAID也是如此。
  • 调度:ServerlessLLM将分配延迟减少了4-12倍,相比随机调度,突出了局部感知的好处。直播迁移防止了排队延迟。
  • 端到端服务:对于大型模型,如OPT-30B,ServerlessLLM将99百分位延迟提高了28-200倍,相比KServe和Ray Serve等系统。它还提高了资源效率。

这些显著的收益表明ServerlessLLM能够克服现有无服务器实现中的瓶颈,并解锁LLM的力量,用于交互式服务。

ServerlessLLM中引入的优化,例如多级加载、直播迁移和延迟驱动调度,可以帮助指导未来的无服务器架构设计。该系统减少加载和启动时间的能力解锁了大型语言模型的可扩展部署,用于实际应用。

展望:正在进行的挑战

虽然ServerlessLLM代表了一个重大飞跃,但它只是优化无服务器推理的大型语言模型的第一步。仍然存在几个开放问题,包括:

  • 预测实时模型需求,以指导预配和预加载
  • 智能地将检查点放置在服务器上,以最大化缓存命中
  • 高效地扩展调度算法,以处理更大的集群
  • 确保模型和开发人员之间的资源分配公平性
  • 将直播迁移等创新推广到其他无服务器工作负载

解决这些问题可以帮助建立在无服务器LLM的承诺之上,并使其功能更加易于访问。除了系统级优化外,减少大型模型的严重碳足迹和潜在危害仍然是一个紧迫的优先事项。

ServerlessLLM证明了下一代无服务器架构中存在巨大的创新空间,用于AI工作负载。随着LLM的规模和受欢迎程度不断增长,能够解锁其可扩展性的解决方案(如ServerlessLLM)将变得更加重要。系统和机器学习研究的融合可以引入新的AI模型服务、共享和扩展的范式,确保安全和可持续的发展。

我已经沉浸在了令人着迷的机器学习和深度学习世界中五年了。我的热情和专业知识让我为超过50个不同的软件工程项目做出了贡献,特别关注AI/ML。我的持续的好奇心也让我对自然语言处理产生了兴趣,这是一个我渴望进一步探索的领域。