AI 网关集成

type
status
date
slug
summary
tags
category
icon
password
网址
本指南说明如何将 KServe 与 Envoy AI 网关集成。KServe 可以在同一集群内或跨不同集群与 AI 网关集成。在本示例中,我们将演示如何在同一集群内将 KServe 与 Envoy AI 网关集成。

AI 网关概述

Envoy AI 网关的创建是为了解决应用程序连接到生成式 AI 服务的复杂性问题,它利用了 Envoy 的灵活性和 Kubernetes 原生功能。它提供了一种安全、可扩展且高效的方式来管理 LLM/AI 流量,具备后端速率限制和策略控制功能。AI 网关的主要特性包括:
  • 请求路由:将 API 请求定向到适当的生成式 AI 服务。
  • 身份验证和授权:实现 API 密钥验证以确保通信安全。
  • 后端安全策略:为后端服务引入细粒度访问控制,使用每秒令牌数 (TPS) 策略控制 LLM/AI 后端使用,防止过度使用。
  • 多上游提供商 LLM/AI 服务支持:能够以一个 LLM 提供商的格式接收请求,并将其路由到不同的上游提供商,确保与其预期格式的兼容性。这是通过内置的转换功能实现的,可以相应地调整请求和响应。
  • AWS 请求签名:支持外部处理,以实现与 AWS 托管的 LLM/AI 服务的安全通信。
更多信息,请参阅 Envoy AI 网关文档

前提条件

  • 已安装 kubectl 命令行工具

创建命名空间

为推理服务创建一个命名空间。

创建推理服务

创建一个包含 Hugging Face 令牌的密钥。
hf-secret.yaml
kserve-test 命名空间中创建一个禁用 OpenAI 路由前缀的推理服务。以下示例使用 Hugging Face 的 'llama3.2-1B' 模型创建推理服务。

创建后端安全策略

您可以为推理服务配置后端安全策略以进行身份验证和授权。例如,您可以创建一个后端安全策略,使用 API 密钥确保与推理服务的安全通信。
为了简单起见,我们将在本示例中忽略身份验证和授权。

创建后端 TLS 策略

如果推理服务使用 TLS,您可以创建后端 TLS 策略来配置推理服务的 TLS 设置。
在本示例中,我们将忽略 TLS 设置。

创建 AI 服务后端

为之前创建的推理服务创建一个 AI 服务后端。如果您已配置后端安全策略,可以取消注释 backendSecurityPolicyRef 字段来使用它。

创建引用授权

由于推理服务在 kserve-test 命名空间中,而 AI 服务后端在 default 命名空间中,我们需要创建一个 ReferenceGrant 来允许 AIServiceBackend 引用推理服务。

为 AI 网关创建网关

创建一个 AI 网关的网关,用于将流量路由到不同的 LLM 提供商。

创建带有 LLM 请求成本的 AI 网关路由

创建一个 AIGatewayRoute,并使用之前创建的 AIServiceBackend 将 KServe 配置为模型 llama3-1b 的 LLM 服务提供商。AI 网关自动跟踪每个请求的令牌使用情况。我们将配置 AIGatewayRoute 来跟踪输入令牌、输出令牌和总令牌使用情况。
来自 Envoy AI 网关的流量将根据 x-ai-eg-model 标头值路由到推理服务。AI 网关通过读取载荷请求中的模型名称自动设置此标头。

配置速率限制

AI 网关使用 Envoy 网关的全局速率限制 API 来配置速率限制。速率限制应使用用户和模型标识符的组合来适当控制模型级别的成本。我们将使用 BackendTrafficPolicy 为模型 llama3-1b 配置每个用户每小时 1000 个总令牌的速率限制。
警告
配置速率限制时:
  1. 始终将请求成本数字设置为 0,以确保只有令牌使用量计入限制。
  1. 根据不同模型的成本和能力设置适当的限制。
  1. 确保在速率限制规则中同时使用用户和模型标识符。

配置 $GATEWAY_URL

首先,检查您的网关是否已分配外部 IP 地址:
您将看到类似这样的输出:
根据 EXTERNAL-IP 状态选择以下选项之一:
使用外部 IP使用端口转发
如果 EXTERNAL-IP 显示实际 IP 地址(不是 <pending>),您可以直接访问网关:
首先,保存外部 IP 并设置网关 URL:

测试网关

验证 URL 是否可用:
提示
如果您打开新终端,需要重新设置 GATEWAY_URL 变量。为了正确控制成本和速率限制,请求必须包含:- x-user-id:标识发出请求的用户
使用我们设置的 GATEWAY_URL,以用户 user123 的身份向 AI 网关发送测试请求:
预期输出
响应应类似于以下内容:
一旦达到令牌限制,您将收到带有 Too Many Requests 消息的 429 错误响应。例如:

后续步骤

现在您已经测试了基本设置,您可以:
上一篇
Istio Service Mesh
下一篇
使用替代网络层部署推理服务(InferenceService)
Loading...
文章列表
Kserve中文文档
快速开始
管理指南
用户指南
开发指南
机器学习概念
大模型周报