什么是分布式推理?
分布式推理通过将推理任务分配给一组互联设备,从而使 AI 模型更高效地处理工作负载。这相当于软件领域的“众人拾柴火焰高”。
分布式推理所支持的系统架构,能够将请求分配到由物理服务器和云服务器组成的计算硬件资源池中执行。随后,每台推理服务器并行处理其分配到的部分任务,以生成输出结果。这最终可形成一个具备高弹性且可观测的系统,能够持续稳定地交付可扩展的 AI 驱动型服务。
用一场晚宴来理解
假设您要举办一场十人晚宴,并打算为每个人提供四道菜:开胃菜、沙拉、主菜和甜品。但是,您只有两小时的准备时间。仅凭一己之力几乎不可能实现这一目标,要么最终成果(菜品质量)会大打折扣,要么烹饪速度会极其缓慢。
为了解决这个问题,您请来几位朋友帮忙,并根据他们各自的专长分配菜品。例如,不常下厨的朋友负责沙拉,厨艺学校毕业的朋友则负责处理复杂的主菜。通过发挥每个人的专长并使他们同时完成各自的任务,晚餐得以准时上桌,而且美味绝伦。
在这个晚宴类比中,朋友们协作的行为即分布式推理,每道菜相当于一个请求,每位朋友则代表不同类型的推理服务器。
通过分布式推理提高速度、扩大规模并节省成本
随着 AI 模型日益精密,其规模也在不断扩大。例如,大语言模型(LLM)可能包含数千亿个参数。这些参数决定了 LLM 对语言的理解能力,模型拥有的参数越多,它能够执行的任务就越复杂,准确率也就越高。
一些 AI 模型(比如拥有 6,710 亿个参数的 DeepSeek)过于庞大,无法在单个图形处理单元(GPU)上部署。这些模型需要通过分布式推理等技术手段干预才能正常运行。
随着模型中参数数量的增加,对硬件资源的需求也随之上升。
要存储这些巨型模型并执行推理计算,需要具备大量的内存和强大的处理能力。为了应对这一挑战,您有以下几种选择:
- 通过向服务器添加更多 GPU,让您现有机器的算力变得更强。 GPU 数量越多,算力就越强,对吧?但是,GPU 成本高昂。此外,您还面临着创建单点故障的风险,如果某个实例(推理应用的副本)出现故障,整个系统都可能会受到影响。
- 通过模型量化,为您的模型“瘦身”。 这种优化技术可简化模型的参数。它通过降低参数的数值精度来缩减模型的整体规模。我们推荐将模型量化作为优化大型模型处理流程的首选策略,因为它的实施复杂度低于分布式推理。
- 分布式推理让工作负载可分配到各个硬件协同运行,从而提升现有硬件的利用效率。这种方法可带来优越的速度、可靠性和可扩展性,满足企业级所需。分布式推理可作为模型量化之外的补充策略。
什么是推理服务器?
推理服务器是帮助 AI 模型基于以往训练得出新结论的基础软件。它将输入请求(如搜索查询或提示词)发送到机器学习模型进行处理,并返回输出结果。
推理是指根据证据得出结论的过程。设想一下:您看到朋友家的客厅灯亮着,但并未看到朋友本人。您可能会推断家中有人,但没有确凿的证据来证明这一点。
语言模型只是一个软件,它也没有关于字词含义的确凿证据,因此它以训练数据为依据来推断。经过一系列基于数据的计算后,模型会生成一个结论。
实施 AI 技术的 4 个关键注意事项
分布式推理是怎么工作的?
分布式推理通过为 AI 模型提供一个就像“大脑”一样的智能协调器,让工作负载管理更高效。当收到新请求时,分布式推理会协助分析请求并将其路由至硬件系统中最适合处理该作业的部分(还记得前面晚宴类比吗?)。
模型较大、用户过多或延迟问题都会影响性能。根据问题产生的原因,分布式推理可采用多种策略:
- 分割模型。 如果模型规模过大,无法由单个 GPU 处理,分布式推理会运用模型并行技术将模型拆分至多个 GPU。
- 分割数据。 为了同时处理大量用户,分布式推理会运用数据并行和智能负载均衡技术,将输入数据分配至多台服务器。这可以有效管理并发请求。
- 分解推理过程。 为了优化整个工作流,它采用流程分解技术。这种方法将生成推理响应的两个计算阶段(预填充和解码)分离开来,并在单独的环境中运行它们。
智能推理调度
分布式推理需要一个控制平面或调度程序,以便能够理解如何协调和传输信息,从而完成任务。智能调度是在分布式推理系统中持续运行的过程,旨在帮助完成协调工作。
我们可以把智能调度视为项目经理。它不会简单地将请求发送到下一台服务器,而是会考虑以下问题:
- 哪些服务器已缓存与您的请求相关的信息。
- 哪些服务器具备处理您请求的能力。
- 哪些服务器最适合完成您请求的任务。
智能调度通过软件算法实现,并在推理过程中实时运行,以优化数据流。
预填充与解码阶段分离
生成查询响应需要经历两个阶段:预填充和解码。通过将用户查询分解为这些阶段,分布式系统能够将每个阶段分配给最合适的硬件,从而提高效率。
预填充(或预填充 KV 缓存)指模型处理用户提示词时第一步密集计算阶段。我们可将此阶段理解为模型“读取”查询内容并形成“理解”的过程。
解码是紧随其后的内存密集型步骤,模型会逐个词元生成完整响应。在此阶段中,模型会访问 KV 缓存,以收集它认为与查询相关的存储信息。
将预填充阶段与解码阶段分离开来,有助于系统更高效地调度资源。要将所有部分整合到一起,这就需要使用所谓的 KV 缓存。
什么是 KV 缓存?
KV 是键值的简称。键值是 LLM 为单词或短语赋予含义的一种方式。假设您要处理餐厅菜单上某个菜品的键值:一份炸薯条(键)的定价为 3.99 美元(值)。当收银员针对炸薯条结账时,与该“键”对应计算出的“值”为 3.99 美元。LLM 处理 KV 的方式与此类似,它们会将每个键(或词元)所对应的值保存到缓存中。
缓存是指一种短期内存存储。以您的个人电脑为例:当它运行缓慢时,您可能会清除缓存,让电脑运行更快、更顺畅。
借助 KV 缓存,模型会记住它生成的前一个单词,为下一个单词创建上下文,从而最终加快处理速度。如果没有 KV 缓存,模型就必须逐词重新处理您的查询。
基于 vLLM 的分布式推理
vLLM 的主要任务是优化 KV 缓存的效率。
vLLM 是帮助 GPU 实现任务分配与并行协作的软件“大脑”。它通过一系列指令,促使 KV 缓存连续批处理用户响应,从而提升效率。
基于 vLLM 的模型并行
如果您的模型规模过大,超出 GPU 处理能力,您可以采用张量并行、管道并行、混合专家(MoE)或三者组合方案:
张量并行:一组 GPU 通过将一项大型任务拆分为多个相同的小任务来协同处理。在这一场景下,vLLM 充当协调器,编排必要的持续通信,以确保系统各部分保持同步。
管道并行: 与工厂的装配线类似,管道并行将一项任务分解为多个连续的阶段。处理过程会从一个阶段移到下个阶段,直至任务完成。管道并行性支持将多台服务器串联起来运行单个模型,避免因模型规模过大而无法加载至内存存储的情况。在这一场景中,vLLM 负责管理这条假设的装配线,分析各个步骤,并确保任务在每个阶段完成后,能从一台服务器转移至下一台服务器。
混合专家(MoE): 在这一场景下,“专家”是模型中经过专门训练以处理特定类型输入的模块。在该架构中,一个称为门控网络的组件会将任务路由至模型中最擅长的模块,以获得更快、更准确的结果。vLLM 内置的门控网络通过实时读取每个请求并激活能处理该请求的模型模块,从而完成任务调度和优化。
基于 vLLM 的数据并行
如果您需要同时为大量用户提供服务,可采用数据并行技术。数据并行是指拆分输入数据(工作负载请求),而不是拆分模型。
数据并行是一种计算技术,可将大量任务分散到一组服务器上进行处理。它的工作原理是在每块 GPU 上放置一份模型副本,然后将任务分配到多台服务器并行执行,从而高效处理大量请求。
假设某 AI 应用有 1,000 名用户同时向您的 LLM 发起查询。通过数据并行,您可以在 10 台服务器上分别部署该模型的副本,并让每台服务器处理 100 个请求。把工作负载拆分为较小的批次后,您的应用就能以最小的延迟处理更多的请求。
vLLM 可作为性能增强器融入该体系,构建更快速高效的处理环境。
什么是 llm-d?
llm-d 是一个面向分布式大语言模型的开源框架。开源框架是指由公开可用的预编写代码和工具组成的集合,开发人员可自由使用、修改和分发。
llm-d 为大规模分布式推理制定了清晰可循的标准蓝图。该框架提供了布局、通信技术和培训手册,为企业组织构建分布式架构提供了分步指南。
通过用集成的标准化路径取代分散的手动流程,企业能更快地部署和扩展,从而缩短从试验阶段到生产阶段的时间。
安装基于 Helm 图表,既沿用了团队熟悉的部署方式,又保留了高度灵活的自定义空间;快速入门命令行界面(CLI)支持简易部署,涵盖依赖项、前提条件和可观测性功能。
llm-d 旨在扩展 vLLM 并与之无缝协同,可在任何 Kubernetes 集群上运行,包括红帽® OpenShift®。
与分布式推理相关的挑战
借助分布式推理,AI 系统的处理速度能够变得更快,规模也会更大,但完成这些任务所涉及的协调工作却非常复杂。以下是需要注意的一些挑战:
延迟和带宽
分布式推理将模型和请求处理分发到不同位置的多台服务器和设备上。这意味着在向用户提供输出之前,信息和数据需要经过长途传输。如果服务器之间的网络连接速度缓慢或发生拥塞,整个过程就会像堵车一样缓慢。
资源分配效率低下
在分配推理任务时,保持各个服务器之间负载均衡至关重要,避免出现部分服务器超负荷运转,而其他服务器闲置的情况。
故障恢复
就像戏剧会安排替补演员一样,制定备用方案也非常重要。在分布式系统中,连接可能会中断,服务器可能会出现故障,数据中心可能会离线。要确保当系统的某部分发生故障时,其他部分能够立即接管相应的工作负载。
调试和故障排除的复杂性
在分布式推理中,互联服务器的工作效率与速度要高于互不关联的服务器。但缺点在于,这种互联特性使得问题根源追溯变得更加困难,就好比试图诊断头痛的病因,症状显而易见,诱因却错综复杂。
同步协调的开销
假设您正在参加一场 300 人的视频会议。为实时保持音画同步,系统必须超负荷运转。如果某一个人出现画面卡顿或声音延迟,整个同步协调就会面临巨大压力,需要强大的基础架构作为支撑。
模型管理和部署
准备好更新您的模型了吗?采用分布式推理时,模型的滚动更新需要专家制定策略并精心编排,这一过程可能既复杂又耗时。
成本管理
分布式系统的成本架构比单台计算机更加复杂。使用模式、不同位置间的数据传输及扩展需求都会使成本产生波动。建立基于指标的方法,对于实现理想性能、弹性及有效成本管理至关重要。
安全防护
将服务器分别部署到多个位置,这意味着要采取措施保护多个位置的安全。您需要加密通信、管理访问控制并防范攻击,这一切都要求具备专业知识。
分布式推理的优势
分布式推理通过突破单个硬件的规模与速度限制,大幅降低延迟(延误时间)并增加带宽(容量),使 LLM 能够适配更广泛的应用场景,帮助企业在现有基础架构上支撑多样化的业务需求。
一致且可预测的性能
传统的 AI 推理往往如同内部运作不可见的“黑箱”,可能会导致响应时间不可预测和糟糕的用户体验。借助分布式推理,智能调度机制可以对传入请求进行分析并将其路由至最佳硬件。这能够提供更可靠且稳定的用户体验。
成本管理
成本既可能是分布式推理面临的挑战,也可能会成为一项优势。随着模型规模不断扩大,对 GPU 等昂贵硬件加速器的需求也随之增长。如果管理得当,分布式推理能够最大限度地提高硬件利用率,从而有效降低成本。
增强可观测性
随着生成式 AI 模型从试点迈向生产阶段,监控 AI 服务的运行状况、性能和成本已成为一项新的挑战。分布式推理提供了一个高度可观测的系统,让您能够主动监控 AI 工作负载,包括词元处理以及延迟和吞吐量。这种可见性有助于您识别瓶颈并对问题进行故障排除,从而确保性能可预测,并实现成本精准管控。
隐私法规
《一般数据保护条例》(GDPR)和《加州消费者隐私法案》(CCPA)等数据隐私法规,对收集和传输个人数据实施了严格的规定。分布式推理通过在本地处理数据,仅将非敏感的数据发送至中央服务器,从而确保符合这些法规要求。这样可以将个人数据保留在特定的地理管辖范围内,并支持数据主权。
数据本地性
分布式推理将推理过程(计算)发送到多个服务器,但数据保留在本地。通过在数据创建地处理数据,而不是将其发送到远端服务器,应用可以更快地运行。
红帽能如何提供帮助?
红帽 AI 是一个使用开源技术的产品平台,旨在应对大规模企业 AI 的挑战。而分布式推理正是我们技术体系中的关键工具。
红帽 OpenShift AI 是红帽 AI 的重要组成部分,可通过企业级版本的 vLLM 实现分布式服务,帮助管理推理成本。为了降低运维复杂性,它提供了高级工具来实现部署自动化,并支持自助访问模型、工具和资源。
所有红帽 AI 产品都致力于提供高度的灵活性与一致性,助您在任意硬件平台及混合云环境中大规模构建、部署和运行 AI 模型。
什么是 AI 推理?
AI 推理是指 AI 模型依据数据提供答案的过程。这是机器学习技术复杂流程中的最后一步。