category
本节介绍了GenAI网关的参考架构,适用于需要在自己的场所访问Azure OpenAI(AOAI)资源和自定义LLM部署的企业。有许多可能的方法可以使用各种Azure服务的组合来设计GenAI网关。本节演示使用Azure API管理(APIM)服务作为主要组件,为GenAI网关解决方案构建必要的功能。
使用Azure API管理的参考体系结构
Azure API管理(APIM)着陆区加速器提供了一个全面的解决方案,可以使用Azure API管理部署GenAI网关,并提供围绕安全和卓越运营的最佳实践。使用APIM的GenAI网关是该加速器中实现的参考场景之一。
基于云的GenAI网关
该设计展示了如何使用APIM创建GenAI网关。它与云中的AOAI服务以及部署并作为REST端点可用的任何本地自定义LLM顺利集成。该架构整合了专为批量用例设计的元素,旨在优化此处描述的PTU利用率。
使用APIM的基于云的GenAI
图1:使用APIM的基于云的GenAI
APIM产品和订阅功能可以在企业中实现各种生成AI场景。不同的产品可以提供以下不同的功能:
- 创建内容。
- 制作嵌入物。
- 搜索。
订阅允许不同的团队访问这些功能。
关键考虑因素
使用这种方法需要记住的一件重要事情是,网关组件位于云端。在云端意味着Azure网络必须在应用任何网关策略之前处理每个请求。当其他服务在本地运行时,此处理可能会影响总延迟。除此之外,如果本地部署了LLM模型,那么必须有正确的网络设置来启用从网关到本地网络的入站连接。
使用APIM自托管网关的本地GenAI网关
许多企业希望使用现有的内部功能,同时也有网络限制,允许从Azure到其内部网络的入站连接。
Azure API管理(APIM)自托管网关可用于创建与AOAI服务和本地应用程序无缝集成的GenAI网关。自托管APIM网关是一个关键组件,将AOAI服务与企业内部网络连接起来。
本地自托管APIM网关
图2:本地自托管APIM网关
使用APIM自托管网关,来自企业内部网络的请求将留在网络中,除非它们到达AOAI资源。这种方法实现了网络内网关的所有功能,并消除了从云端进行入站连接的需要。
网关可以使用任何现有的内部部署队列来调度请求,并与企业范围的监控系统连接。此队列将使网关日志和指标能够与现有的消费者应用程序日志和指标相结合。
关键考虑因素
通过这种方法,组织负责部署和维护自托管网关。这种维护意味着水平扩展网关组件以处理负载,并保持其弹性以处理请求激增。如果指标和日志被发送到自定义指标存储,每个组织都必须构建自己的监控和警报解决方案,以支持以下操作:
- 请求的动态调度
- 制作退款报告。
关键单个能力的参考设计
下面的选择描述了本文档中讨论的使用Azure API管理(APIM)服务作为基础技术的关键GenAI网关功能的参考设计。
1.可扩展性
APIM的高级层提供了在多个Azure区域扩展单个APIM实例的能力。
1.1支持高消费者并发性
配备单个Premium Tier APIM服务实例以执行以下操作:
- 支持多区域。
- 支持多Azure AOAI帐户配置。
- 促进跨不同地区的高效交通路线。
- 确保支持高消费者并发性。
下图说明了这种设置,其中APIM有效地将流量路由到部署在不同区域的多个AOAI实例。此功能通过使用资源的地理分布来提高服务的性能和可用性。
更多关于多个地区的信息。
场景:使用预置吞吐量单位(PTU)和按需付费(PAYG)端点管理峰值
此图显示了溢出策略的实施。该策略最初涉及将流量路由到启用PTU的部署。在达到PTU限制的情况下,溢出将被重定向到启用TPM(每分钟令牌数)的Azure OpenAI(AOAI)端点。此重定向可确保处理所有请求。
更多信息缩放(单区域)。
用PAYG管理PTU峰值
图2:使用PAYG管理PTU的峰值
1.2跨多个AOAI实例的负载平衡
当您希望为API实现多个后端并跨这些后端实现负载平衡请求时,API管理支持后端池。。
另一种负载平衡策略可以通过在APIM中编写自定义策略来实现。请参阅使用自定义APIM策略实现此类策略。
2.性能效率
APIM策略可用于基于RPM和TPM的速率限制。
2.1消费者配额管理
可以根据订阅ID为不同的用例设置不同的速率限制值。在下面的策略片段中,速率限制是基于RPM和TPM完成的。当超过这些限制中的任何一个时,预计会出现节流。
2.1.1基于TPM消耗的速率限制
Azure OpenAI令牌限制策略允许基于每分钟令牌(TPM)消耗量实施限制。
2.1.2检索以提高服务可用性
在某些情况下,如果特定部署超过了TPM,AOAI会以429秒的响应做出回应。为了减轻AOAI配额限制,检索成为确保服务可用性的重要工具。请求限制发生在几秒钟或几分钟的窗口内。可以在网关层实现具有指数回退的重试策略。这一策略将确保为消费者提供服务。
有关AOAI的示例APIM策略,请参阅此链接
3.安全性和数据完整性
托管身份用于保护PII。
3.1身份验证
带有AOAI的APIM提供了多种身份验证选项,包括以下内容:
- API密钥。
- 管理身份。
- 服务负责人。
托管身份方法可用于在APIM和托管身份支持的后端Azure服务之间进行身份验证
托管身份可以被赋予正确的访问权限,如“如何配置OpenAI”中所述,AOAI实例的“Azure AI服务用户”。然后,APIM向后端(即AOAI)透明地进行身份验证。
3.2个人身份信息和数据屏蔽
此图描述了如何使用GenAI网关启用PII检测和数据屏蔽。在收到数据请求后,信息会被传输到Azure函数进行PII检测。此功能能够使用Azure AI语言中的类似服务(PII)检测、Microsoft Presidio等预打包解决方案或自定义机器学习模型来识别PII数据。然后利用检测到的信息来屏蔽请求。被屏蔽的数据被转发到Azure APIM,然后Azure APIM将其发送到AOAI。
PII和数据屏蔽
图3:PII和数据屏蔽
3.3数据主权
此图描述了如何使用GenAI网关将数据限制在客户特定的区域。在这里,我们有两个区域,每个区域都承载着支持AI的应用程序,APIM和AOAI。使用流量管理器将流量路由到特定区域的APIM和OpenAI。APIM有助于将请求路由到特定于区域的Azure OpenAI实例。
若要了解有关APIM多区域部署的更多信息,请参阅将Azure API管理部署到多个Azure区域。
通过多个APIM实现数据主权
图4:通过多个APIM实现数据主权
通过多实例APIM实现数据主权
图5:通过多实例APIM实现数据主权
4.卓越运营
4.1监测和可观察性
Azure监视器集成
通过使用APIM与Azure Monitor的本机集成,可以将请求、响应(有效载荷)和APIM指标记录到Azure Monitor中。此外,Azure Monitor可用于收集和记录来自其他Azure服务(如AOAI)的指标,使其成为监控和可观察性的默认选择。
使用Azure Monitor进行监控
图6:使用Azure Monitor进行监控
配置时,Azure Monitor提供了一种生成见解的低代码/无代码方式,这种方法可能存在以下局限性:
- Azure监控器可能会引入30秒至15分钟的延迟,对于需要此信息进行实时监控和决策过程的消费者来说,这是一个重要的考虑因素。
- 使用Azure Monitor捕获请求/响应负载需要在APIM中配置所需的采样率。高采样率对APIM的吞吐量有潜在影响,并增加了消费者的延迟。
- 在处理请求或响应中的大型有效载荷时,由于APIM施加了日志大小限制,因此可能不会记录完整的数据。Azure Monitor将日志大小限制为32KB(9182字节)。如果所有记录的标头和有效载荷的组合大小超过此限制,则可能无法记录某些日志。
通过自定义事件进行监控
使用自定义事件进行监控
图7:使用自定义事件进行监控
在这种方法中,来自Azure API管理(APIM)的请求、响应和其他数据可以作为自定义事件记录到像事件中心这样的消息系统中。来自事件中心的事件流可以被其他服务使用,以近乎实时的方式执行各种操作,如数据聚合、生成警报或执行其他操作。
虽然这种方法提供了更接近实时的体验,但它需要编写自定义聚合服务。
5.成本优化
5.1跟踪消费
Emit令牌度量策略允许用户通过向Application Insights发出总令牌、提示令牌和完成令牌作为自定义度量来跟踪AOAI服务的令牌消耗。该指标可以聚合以生成消费者内部退款报告,并支持流式和非流式AOAI响应。
- 登录 发表评论
- 13 次浏览
最新内容
- 4 hours ago
- 6 hours 57 minutes ago
- 7 hours ago
- 2 days 22 hours ago
- 3 days 6 hours ago
- 3 days 6 hours ago
- 3 days 6 hours ago
- 3 days 7 hours ago
- 1 week ago
- 1 week ago