随着 AI 技术快速发展,业务对 AI 能力的渴求日益增长。当 AI 服务面对处理大规模请求和高并发流量时,AI 网关从中扮演着至关重要的角色。AI 服务通常涉及大量的计算任务和设备资源占用,此时需要一个 AI 网关负责协调这些请求来确保系统的稳定性与高效性。因此,与传统微服务架构类似,我们将相关 API 管理的功能(如流量控制、用户鉴权、配额计费、负载均衡、API 路由等)集中放置在 AI 网关层,可以降低系统整体复杂度并提升可维护性。 本文要分享的是B站在大模型时代基于多模型AI的网关架构设计和实践总结,希望能带给你启发。
AI 网关是一个用于统一接入和调度大语言模型(LLM)服务的系统,支持多供应商、多模型、负载均衡调度的管理。同时具备统一鉴权、Token 配额管理、安全审计与可观测能力,确保 API 调用的安全性和稳定性。负载均衡模块,能够根据提供商多线路、多模型 和 API Key 进行灵活路由,并适用于多模型接入、多租户等复杂场景。
4、整体架构设计
AI 网关的整体架构和传统 API 网关及其类似,在数据面和控制面上有几乎相同的设计。
实际上 AI 网关就是衍生于之前微服务团队的 API Gateway,我们在 API Gateway 的基础上做了一些针对 AI 业务接口的特性优化,如无缓冲区的请求代理,支持域名、服务发现等混合调度,AI 超长响应时间请求的优雅退出等功能。
在此基础上我们使用于 API Gateway 相类似的数据面、控制面分离的架构,控制面会将变更后的网关配置准实时下发至数据面节点。数据面节点识别配置有更新后在运行时会动态切换代理引擎至新的代理逻辑下,并保证老的代理逻辑会处理完当下被分配的请求。
在数据面中,我们对请求过滤器有两种模式的抽象:请求过滤器和模型过滤器。请求过滤器作用于用户的原始请求,这类过滤器往往被设计用于处理鉴权、限流等逻辑。而模型过滤器作用于请求被转发至该模型时,常用于模型 API 的兼容逻辑。比如模型发展中目前对深度思考 的标签处理,推理引擎自定义参数的兼容修正等。
除此之外控制面也会提供 OpenAPI 供 AI 模型供给团队上架模型,新增 API Key 等日常运营能力。模型提供方可以在上架模型时支持为模型配置相应的 RPM、TPM 上限,并根据模型的推理引擎选择相应的兼容策略。也可以通过 OpenAPI 为单个 API Key 授权相应模型等功能。
5、鉴权认证
在鉴权机制中,采用目前主流 OpenAI SDK 兼容的 API Key 认证方案。
Authorization: Bearer
在 API Key 的认证基础上还提供细粒度的权限控制功能,允许为每个 API Key 配置可访问的模型范围,以及对不同模型的设置不同的配额。
另外支持灵活的 API Key 有效期配置,用户可根据需求设置 API Key 的 过期时间 或 不过期。
在这里可以按照为每个用户分配不同模型的 Token 配额,或指定单位时间的请求数限制,以确保 AI 服务的高效运行并防止超出预算。
同时我们还支持月维度的 Token 配额,业务按自然月进行预算申请,超过预算时请求将被限制。对于接入 AI 能力而言,每个业务都需要提前申请预算额度,避免带来难以负担的成本。
7、多模型访问
目前版本仅支持基于 OpenAI API 的协议转发。以目前推理引擎发展和在线 AI 云服务而言,兼容 OpenAI API 协议已经成为业界共识,在此基础上我们只需要实现根据用户需求的模型名,择优选择一个相应模型的上游 API 提供商(公司自建 IDC或公有云),并替换成相应服务商的 API Key 和 Upstream 域名就可以进行负载均衡。
对于公司 IDC 自建的模型服务而言,我们继续沿用基于 discovery 等服务发现技术来发现推理引擎节点,直接将请求包装调度至这些自建模型。
8、模型负载均衡
LLM API 的负载均衡和传统实时 API 的模式有很大的不同。 传统 API 开发中:一次请求往往被设计成会极大概率地命中一块结果缓存,且缓存 Key 的计算都比较简单,因此很多负载均衡都简单基于请求相应时间、连接数等等。 在 LLM 推理场景下:每个推理请求都会带来网关本身难以评估的计算时间和设备资源占用,此时基于 RPS、TTFB、连接数等负载均衡策略将不再适用。 在 AI 网关的默认负载均衡策略中:我们主要基于单模型服务节点处理 Token 的吞吐和时延能力,在黑盒模式下评估节点的饱和度。除此之外,推理引擎自身和显卡其实也暴露了许多和执行队列相关的指标,综合这些指标同样预计能获得比传统负载均衡更有效的体验。 另外:基于 Prefix Cache 的节点选择同样会是一个相当有效的调度策略,但 Prefix Cache 的计算能力往往需要外部服务来进行,因此 AI 网关同样支持接入外置的负载均衡算法,通过前置的 RPC 来让外置服务选择最合适的模型节点。
9、多租户隔离
业务主要通过 域名 + API Key 进行访问大模型推理,可以通过域名进行管理对接的接口路由,进行配置转发到指定 Model Provider 服务。如果需要进行多业务隔离,只需要通过不同的域名访问并配置不同的转发目标。
10、可观测能力