AIBrix 自动伸缩器#
概述#
AIBrix 提供了一个全面的自动伸缩框架,专为在 Kubernetes (K8s) 上部署大型语言模型 (LLM) 服务而设计。它支持多种伸缩范式,将原生的 Kubernetes 组件与专为 LLM 工作负载设计的增强功能相结合。这使用户可以灵活选择最适合其工作负载模式和成本-性能目标的自动伸缩器。
支持的自动伸缩机制#
AIBrix 目前实现了两种不同类别的自动伸缩机制,每种都适用于不同的需求
基于指标的自动伸缩
该系列依赖运行时指标(如 CPU/GPU 利用率、并发请求或令牌吞吐量)来做出伸缩决策。它对观察到的系统负载变化立即作出反应。
HPA (Horizontal Pod Autoscaler) 标准的 Kubernetes HPA 根据 CPU、内存或自定义指标伸缩 Pod 副本。最适合具有稳定利用率模式的通用工作负载。
KPA (Knative Pod Autoscaler) 使用双窗口方法(稳定 + 恐慌)来实现在流量突然激增时快速扩容。AIBrix 通过内部获取指标而不是仅仅依赖 Prometheus 抓取来增强此功能。
APA (Advanced Pod Autoscaler) AIBrix 自己的伸缩器,专为 LLM 工作负载设计。增加了波动容忍度以减少振荡,并正在发展以结合基于分析的伸缩。
基于优化器的自动伸缩
这是一种根本不同的方法,它不依赖于在线指标阈值。相反,它利用离线分析数据和优化求解器来主动确定最优资源分配。它包括 (1) LLM 请求监控和 (2) GPU 优化器。下图显示了整体架构。首先,LLM 请求监控组件负责监控过去的推理请求及其请求模式。其次,GPU 优化器组件负责根据请求模式计算最佳 GPU 数量建议,并将建议发送到 K8s KPA。
此方法特别适用于
具有已知模式的计划性或潮汐式工作负载。
需要最佳成本-性能平衡的异构 GPU 设置。
受益于在负载实际到来之前规划资源的 SLO 驱动环境。
类型
描述
最适合
HPA
标准的 Kubernetes HPA 根据 CPU/内存/自定义指标伸缩 Pod。
具有稳定利用率的通用工作负载。
KPA
Knative 风格的伸缩器,具有稳定和恐慌窗口
突发性、不可预测的流量模式。
APA
AIBrix 针对 LLM 的原生伸缩器,具有容忍缓冲区以最大程度地减少抖动。
需要稳定性、细粒度优化的 LLM 工作负载。
基于优化器
使用离线分析 + 求解器进行伸缩规划,不依赖实时指标阈值。
计划性工作负载、多 GPU 成本/SLO 优化、主动伸缩需求。
示例场景#
HPA:纯粹基于 CPU 利用率伸缩演示部署。
KPA:通过激进的恐慌伸缩处理基于
vllm的 Llama2-7b 模型短期峰值。APA:应用波动容忍度以减少对延迟敏感的 LLM 服务的伸缩振荡。
基于优化器:使用离线分析结果加上优化模型,在大型计划活动之前主动伸缩 GPU,同时最大限度地降低成本并保障 SLO。
伸缩方法#
这些自动伸缩机制大致涵盖两种方法
反应式自动伸缩 观察当前系统指标并立即通过增加或减少资源来作出反应。这包括所有基于指标的方法:HPA、KPA、APA。
主动式自动伸缩 根据预测或离线得出的优化计划做出决策,提前伸缩而不是等待指标超过阈值。这体现在 AIBrix 基于优化器的方法中,该方法使用工作负载配置文件、成本模型和求解器来规划最佳伸缩操作。
指标#
AIBrix 自动伸缩框架与服务层紧密集成,直接消费由 vllm 等引擎暴露的指标。
示例包括
请求计数 (request_count)token_in_count/token_out_count引擎延迟毫秒 (engine_latency_ms)KV 缓存大小 (kv_cache_size)引擎 GPU 利用率 (engine_gpu_utilization)
有关完整详细信息,请参阅 vLLM 指标文档。
扩展或选择自动伸缩器#
AIBrix 允许您在部署规范中声明性地选择所需的自动伸缩器类型。这使得您可以轻松尝试不同的策略或在基础设施发展时集成新的自动伸缩插件。
未来的改进包括
添加基于整数线性规划 (ILP) 的调度,以实现更高级的优化器驱动规划。
将主动(基于优化器)和反应(基于指标)机制结合到混合自动伸缩器中,以实现最大的鲁棒性和效率。
下一步#
注意
如果您需要,我们还可以添加
一个比较 HPA、KPA、APA 和基于优化器的方法的优缺点矩阵。
一个 APA 伸缩循环的序列图与优化器驱动工作流的示意图。
每种自动伸缩器类型的 YAML 规范示例。
请告诉我们哪种最有帮助!