Gateway with Inference Extension概述

本文介绍Gateway with Inference Extension组件的主要特性、实现原理和功能优势。

能力介绍

Gateway with Inference Extension组件是基于Kubernetes社区Gateway API及其Inference Extension规范实现的增强型组件,支持Kubernetes四层/七层路由服务,并提供面向生成式AI推理场景的一系列增强能力。它能够简化生成式AI推理服务的管理流程,并优化在多个推理服务工作负载之间的负载均衡性能。

组件特性

  • 优化的模型推理服务负载均衡

  • 基于模型感知的路由:基于OpenAI API规范中定义的模型名称对推理请求进行路由。您可以通过名称对同一基础模型的不同LoRA模型进行流量灰度操作。

  • 配置模型的关键性:通过指定不同模型的关键性等级,将请求不同模型的请求进行不同等级的优先处理。

资源说明

Gateway with Inference Extension通过基于Gateway API扩展的InferencePoolInferenceModel自定义资源来声明和管理生成AI推理服务:

  • InferencePool:代表一组共享相同计算配置、加速器类型、基础模型和模型服务器的Pod。在逻辑上对AI模型服务资源进行分组和管理。单个InferencePool对象可以包含跨越多个ACK节点上的多个Pod,提供可扩展性和高可用性。

  • InferenceModel:从InferencePool中指定模型服务器Pod提供服务的模型的名称。InferenceModel资源还定义了模型的服务属性,如模型的关键性等级(Criticality),被分类为Critical的工作负载将优先处理。

以下为InferencePool、InferenceModel自定义资源与Gateway API资源之间的关联关系。

image

下图说明了Gateway with Inference Extension组件InferencePool、InferenceModel资源定义对推理请求的处理流程。

image

推理拓展负载均衡功能优势

传统HTTP路由

对于传统的HTTP请求,经典负载均衡算法可以将请求均匀地发送给不同的工作负载。然而,对于LLM推理服务来说,每个请求给后端带来的负载是难以预测的。在推理过程中,请求处理包括以下两个阶段:

  • 预填充阶段:对输入进行编码。

  • 解码阶段:分为若干步骤,每个步骤都会对先前的输入进行解码,并输出新的Token(LLM数据处理的基本单位,可粗略对应LLM推理输出的每个单词)。

由于无法事先确定每个请求会输出多少Token,如果将请求均匀发送到不同工作负载,将导致每个工作负载的实际工作量不一致,造成负载不均衡。

推理服务路由

通过推理服务器多个维度的指标来评估推理服务器的内部状态,并根据内部状态对多个推理服务器工作负载进行负载均衡。主要包括以下指标:

  • 请求队列长度(vllm: num_requests_waiting:代表模型服务器正在排队等待处理的请求数量。排队的请求数量越少,新请求被及时处理的可能性越大。

  • GPU Cache利用率(vllm: gpu_cache_usage_perc:代表模型服务器用于缓存推理中间结果的KV Cache利用率百分比。利用率越低,代表GPU还有充足的空间将资源分配给新来的请求。

相对于传统的负载均衡算法,此方式可以更好地保证多个推理服务工作负载的GPU负载一致性,显著降低LLM推理请求第一个Token的响应时延(TTFT),并提升LLM推理请求的吞吐量。