llm-d 是如何运作的?
LLM 提示往往复杂多样,长度和结构差异很大。为了处理海量数据,LLM 通常需要大量计算资源与存储支持。
llm-d 采用模块化架构,能够满足 LLM 等复杂且规模庞大的推理模型日益增长的资源需求。
在模块化架构下,AI 工作负载的各个不同部分可以根据模型需求协同或独立运行,从而加快模型推理速度。
可以把 llm-d 想象成一场马拉松比赛:每位选手都掌控着自己的节奏。您可能会比别人更早或更晚到达终点,但每个人都会按照自己的节奏完成比赛。如果要求所有人必须同时冲过终点线,就得受制于其他选手各种各样的独特需求,比如耐力、补水休息或训练时长。这样一来,事情就会变得非常复杂。
而模块化架构能够让推理过程的各个环节按照自己的节奏运行,从而以最快的速度达成最佳结果。同时,它也使得独立修复或更新特定流程变得更加轻松。
这种独特的模型处理方式,使 llm-d 能够应对大规模 LLM 推理需求。它也让用户能够突破单服务器部署的限制,在整个企业内运用生成式 AI(Gen AI)的推理能力。
llm-d 的模块化架构由以下部分组成:
- Kubernetes:一个开源的容器编排平台,可自动执行容器化应用的部署、管理和扩展所涉及的许多手动流程。
- vLLM:一款开源推理服务器,可加速生成式 AI 应用的输出。
- 推理网关(IGW):一种 Kubernetes 网关 API 扩展,具备模型路由、服务优先级、“智能”负载均衡等功能。
这套易用的模块化架构,使 llm-d 成为实现大规模分布式 LLM 推理的理想平台。
实施 AI 技术的 4 个关键注意事项
什么是规范化路径?
规范化路径(well-lit paths)是指借助 llm-d 构建大规模分布式推理的特定“蓝图”或策略。这些路径已经过 llm-d 开源社区的验证,可复制推广。其具体定义如下:
- 智能推理调度程序: 智能推理调度能够处理精细化的词元路由决策。其词元感知路由(也称为“智能”负载均衡)功能会综合考量模型的键值(KV)缓存、延迟、模块化功能与可观测性,以通过实施评分和过滤算法来加速推理。
- 解耦预填充与解码服务: 预填充(提示处理)和解码(词元生成)服务对推理服务器有着不同的算力需求。将这两项操作解耦(分离)后,二者可独立运行与扩展。这样一来,延迟瓶颈等孤立问题便不会同时影响所有模型。
- 大规模专家并行: 混合专家模型(MoE)由多个具备不同专长的子模型组成,每个子模型都可以分别处理特定的提示。与单个密集模型依赖整个数据库来回答每个提示不同,llm-d 会识别出一个最适合回答该提示的“专家”模型。这类似于在文档中使用“查找”功能定位某个单词,而非通读全文。这种方法可加速推理,并更高效地利用 GPU。
除了规范化路径,llm-d 还采用智能推理工具来提升推理效率:
词元感知路由: 在推理过程中,词元的不同算力需求会触发其特定的路由路径。推理流量会根据词元长度、队列深度和缓存命中预测进行路由,以减少延迟并避免长时间中断。
沿用我们的马拉松类比,较慢的选手(复杂模型)可以选择一条坡度较缓的路径(智能负载均衡),以尽可能快地冲过终点线(完成推理)。
- 共享 KV 缓存与复用: 共享 KV 缓存能够识别重复的词元,从而减少解码每个键值所需的时间。
例如,一个关于“亚利桑那州首府”的提示需要解码为两个词元:“首府是哪里”和“亚利桑那州的首府”。当模型被问及另一个州的首府(如“阿拉斯加州的首府是哪里?”)时,它知道如何处理第一个词元(“首府是哪里”),因为相关计算已完成。这避免了冗余的预填充计算,并减少了回答每个提示所占用的 GPU 存储空间,从而加快了推理速度。 - 模块化部署与可观测性: 各模块化模型可独立监控、扩展和更新。模块化的灵活性打破了“黑箱”的可见性限制,让框架的每个部分都清晰呈现。这使得模型调整变得更加快捷,并能使 AI 工作负载与当前典型的 DevOps 和 GitOps 实践保持一致。
llm-d 的核心组件
llm-d 由开源社区打造,因此其功能依赖于各类组件与多方协作。核心组件包括:
- Kubernetes 原生框架:llm-d 专为在 Kubernetes 平台上运行而设计,可充分利用该平台的所有优势。 为使 llm-d 框架更易于使用,它被构建为适用于基于 Kubernetes 的分布式平台(如红帽® OpenShift®)。 这种 Kubernetes 原生方法提供了必要的策略、安全防护及可观测性层面支撑,以助力在整个企业组织内应用生成式 AI 推理。
- 分布式 LLM 推理: 分布式推理会将复杂的推理请求分配到多台服务器和边缘设备上处理。随后,各个功能并行工作以生成输出,从而实现更快、更具扩展性的 AI 赋能服务。llm-d 借助 Envoy、vLLM 和 KServe 等开源社区项目,实现分布式推理。
- 社区驱动的开源项目: 开源社区让优秀创意得以汇聚,并持续改进可供所有人使用的技术。该开源项目正是汇集了来自 Google、IBM、CoreWeave、英伟达、红帽等行业领军企业的理念与贡献。
这些组件使企业能够利用 llm-d 来扩展生成式 AI 用例,同时而无需担心延迟、复杂性或高昂成本。
llm-d 与其他 LLM 处理方式有何不同?
典型的 AI 模型提示具有固定规律:内容简短且重复性高。因此,每个提示都会获得相同的支持与资源,这种方式有时称为“轮询”负载均衡。
但 LLM 与传统工作负载不同。LLM 会执行时间较长的解码阶段,依赖前缀缓存复用,并且对算力和内存的需求各异。这也是常规 Kubernetes 负载均衡无法满足复杂 LLM 需求的原因。
除此之外,大多数企业组织在部署 LLM 时缺乏足够的可见性,因而难以有效控制其 AI 工作负载。这会导致 GPU 利用率不足、延迟较长,以及架构僵化且难以扩展。基于通用 LLM 的推理系统可能会忽略提示结构、词元数量与缓存状态,从而造成资源浪费。
以检索增强生成(RAG)提示为例,其所需的负载均衡策略,与依赖思考和推理的提示截然不同。当工作负载同时处理需要不同负载均衡策略的多种提示时,推理过程就会变慢。
不妨这样理解: 有一家面包店非常擅长做各种派,每天都有许多苹果派、蓝莓派和核桃派完美出炉。但是,当面包店接到制作牛角面包、软糖或婚礼蛋糕的订单时,烘焙师的流程就会变得低效。订单完成量下降,任务疏漏百出。此时面包店需要的是一位主厨,能够合理分配任务,同时高效处理复杂糕点和日常派类订单。这位主厨要能够统筹复杂任务调度,以最高效的方式完成派或其他品类的订单。
在 AI 技术配置中,llm-d 正是这样的“主厨”。
llm-d 提供了一个对 LLM 具有感知能力的 AI 推理平台,这意味着它能够应对 LLM 提示请求特性的高度差异化情况。该开源框架能够实现可预测的性能监控、优化成本并满足用户预期。它将 LLM 推理转化为 Kubernetes 原生架构,打造出如同微服务般易于管理的推理框架。
当用户无法轻松实现大规模推理时,产品上市时间便会延长,生成式 AI 用例也更难以在整个企业组织范围内落地推行。
llm-d 的优势
llm-d 使规模化部署解耦模型变得更加便捷,并且帮助团队以更少的资源和时间实现更宏大的 AI 目标。
- 模型质量与性能:llm-d 利用智能负载均衡等工具,加快了 LLM 推理的响应速度。llm-d 框架消除了常见的 LLM 推理障碍,如重复推理词元和黑箱干扰等问题。消除这些障碍后,模型性能和开发人员工作效率都得到了提升。
- 成本效益: 得益于模块化设计,llm-d 支持更多用户同时访问 AI 工作负载,并能更快地获取结果。这有助于工程师和开发人员充分发挥模型的潜力,并更高效地利用 GPU。随着可访问性和速度的提升,团队可以将时间和资源分配到其他方面。
- 控制力:llm-d 采用解耦式服务方式,为 LLM 推理注入全新维度的灵活性。通过分离推理的不同阶段(预填充与解码),各个组件可以独立且同时工作,从而加速推理过程。
什么是 llm-d?我们为什么需要它?
目前存在一个显著趋势:越来越多的企业组织开始将自己的大语言模型(LLM)基础架构部署在内部环境中。