模型权重的下载/加载:如何快速分发和加载体积庞大的模型文件,降低冷启动延迟。 GPU 弹性伸缩指标的非线性:大模型对 GPU 的利用率并非线性关系,传统的指标收集与弹性策略常常滞后或不精准。 长尾模型或精调模型流量低:针对这些流量低但又需要及时响应的模型,如何做到有效的资源利用和成本控制。 多机推理的角色编排:在分布式推理场景下,如何更高效地在多个节点之间分配和调度任务。 GPU 卡型异构:不同型号、不同性能的 GPU 共同部署时,如何协同工作并优化利用率。 单服务跨 Region:多数据中心与跨区域部署的需求增大了同步管理模型与推理任务的难度,同时对容灾与可用性提出了更高要求。
设计理念
系统架构
Serverless 与弹性伸缩
只在必要处做 request head/body 的修改,尽量避免重复实现类似 OpenAI 的 API; 同时支持对请求进行缓存感知的调度,包括 kv cache least used、least of prompt、prefix-cache aware 等策略,以进一步缩短长尾 TTFT(Time to First Token) 等性能指标。
冷启动与模型加载优化
高密度模型部署
单容器混合部署:目前基本模型(Base Model)和精调模型(LoRA)常被打包在同一容器,虽然能减少部署节点,但也打破了容器隔离以及不可变性的原则,某些场景会因过载触发部署失败。 Adaptive LoRA batch、dynamic merge 等高级功能还在持续研发当中,旨在进一步提高同一 GPU 上运行多个模型或微调版本的效率。 定制化内存分配器(memory allocator):在固定 GPU 资源中快速换入换出不同基础模型,利用引擎原生的 CUDA 虚拟内存(visual memory)管理能力,使多模型部署具备更好的鲁棒性与伸缩性。
分布式编排和多机推理
vLLM 自带分布式 runtime:默认支持 Ray 与多进程架构,为分布式推理奠定良好基础。 KubeRay 场景经验积累:AIBrix 项目的核心成员曾主导 KubeRay 的开源工作,对如何在 Kubernetes 与 Ray 之间实现高效整合有着丰富的实践。目前,KubeRay 是行业通用的 Ray on Kubernetes 编排方案,被广泛应用于包括字节跳动在内的多家企业生产环境。 云原生的多角色编排:在一个 CRD 中灵活编排不同容器或角色(如 TP/PP 等)并非易事,而多机调度策略也可能因具体业务场景(例如 P&D、Splitwise 论文提出的 Router/CLS、Mixed Pool 或 vLLM xPyD 等)而改变。通过“混合编排(Hybrid Orchestration)”理念,让 Ray 负责应用内部的角色管理,Kubernetes 则专注于升级、伸缩等通用工作,双方分工明确且更具灵活性。
KV Cache 组件管理
内存层次优化:在 prefix cache 等场景中, 如果低端 GPU 型号模型加载已经占用大部分 HBM 显存,留给 KV Cache 的空间十分有限;此时可借助空闲的 CPU DRAM 做“二级”缓存,能实现一定程度上的容量扩展。需要注意的是,从绝对性能角度,这种方案不可避免地会带来从 CPU DRAM 到 GPU HBM 间数据交换的额外开销,但在容量与性能间取得平衡对于某些业务仍然十分必要。 灵活的淘汰策略:AIBrix 还在基于 vLLM v1 的全新架构做进一步调整,向上游社区贡献更多 KV Cache 淘汰策略的实现,敬请期待后续更新。
异构计算与成本优化
故障诊断与模拟工具
故障检测:目前针对不同厂商的卡型能够完成自动化故障检测, 帮助用户在影响负载之前识别性能问题。 故障模拟:该工具可以模拟 GPU 的性能下降或硬件故障,方便开发者测试和构建高容错能力的 AI 系统。一旦故障发生,系统能平滑恢复,降低对整体服务的影响。 硬件支持:目前已支持 NVIDIA GPU 等主流 AI 芯片,后续也将持续扩展兼容更多类型的加速器。
Autocsaling On VKE
节点池支持包年包月、按量付费、弹性预约、Spot 等多种实例交付方式,满足不同场景下的成本与可用性需求
