category
企业经常面临有效管理Azure OpenAI资源的挑战,以在不影响高优先级任务性能的情况下处理不同的工作负载。该解决方案满足了对动态系统的需求,该系统可以最大限度地实现以下功能:
- Azure开放人工智能配置吞吐量单位(PTU)的利用率
- 关键请求的最佳性能
业务问题
Azure OpenAI PTU为处理AI工作负载提供了专用容量。PTU按预留容量计费,而不管实际使用情况如何。为了使PTU的价值最大化,确保容量得到有效利用至关重要。然而,人工智能资源的工作量可能会有很大差异,有些请求比其他请求更为关键。挑战在于有效管理PTU的使用,同时确保高优先级请求得到及时处理。因此,即使工作负载请求差异很大,有些请求比其他请求更关键(高优先级),也必须确保有效利用该容量。
解决方案概述
Azure API管理(APIM)可以与GenAI网关集成,以基于优先级路由请求。将请求分类为高优先级可确保立即处理。低优先级请求被排队以调节吞吐量,队列消费者只有在PTU容量足够的情况下才会处理这些请求。如果容量减少,队列消费者会减慢速度,从而降低低优先级请求的速率。当达到临界阈值时,队列使用者停止处理低优先级请求。
GenAI网关解决方案支持两种监控PTU利用率的方法:
- 使用Azure Monitor跟踪PTU利用率,相应地调整低优先级请求的吞吐量。
- 从APIM触发自定义事件,允许几乎实时地评估和更新PTU消耗。
价值主张
GenAI网关解决方案具有以下优势:
- 高效使用Azure OpenAI PTU
- 优先处理高优先级请求
- 基于PTU利用率的吞吐量动态调整
- PTU利用率几乎实时监控
逻辑架构
最大化PTU利用率逻辑架构
图1:逻辑架构
使用Azure Monitor测量PTU利用率
通过Azure Monitor测量PTU利用率
图2:通过Azure Monitor测量PTU利用率
衡量PTU利用率的一种方法是使用Azure OpenAI资源功能将指标发送到Azure Monitor。我们感兴趣的关键指标是Azure OpenAI请求、处理的推理令牌和配置管理的利用率。
APIM可以用作对Azure OpenAI的任何调用的网关,并根据优先级管理每个请求。如上所述,每个请求可以根据报头或请求路径分为高优先级或低优先级。所有高优先级请求都直接发送到Azure OpenAI,所有低优先级请求都放入Azure事件中心队列。当PTU容量可用时,编排服务从队列中提取请求,使用Azure OpenAI处理请求,并将结果发送回请求者。
编排服务可以配置为通过以下两种方式之一计算可用PTU容量:
- Azure警报:Azure警报服务可以监控关键指标,并在指标超过一定范围时通知编排服务。该服务使用该信息来确定可用容量,并调整处理低优先级请求的速率。
- 定期检查PTU可用性:编排服务可以定期查询Azure Metrics API以获取当前PTU的使用情况。然后,它根据需要调整低优先级请求的吞吐量。
关键考虑因素
在决定使用哪种PTU测量方法时,您应该考虑Azure Monitor数据中存在延迟。Azure OpenAI资源的指标可能需要30秒到15分钟才能准备好进行查询。
Azure警报消息中也存在延迟。因此,这种方法适用于高优先级和低优先级请求比率具有以下特征的情况:
- 比率随时间逐渐变化
- 无需近乎实时地平衡容量。
使用自定义事件测量PTU利用率
如果使用Azure Monitor的方法延迟是不可接受的,另一种方法可能是使用GenAI网关来捕获指标。然后处理这些指标以计算PTU的利用率。
此方法涉及APIM生成自定义事件,对输入和输出中使用的令牌进行计数,并将其发送到Azure事件中心。然后,Azure流分析可以聚合指定窗口期内的令牌使用情况,以估计PTU消耗量。然后,Azure流分析可以将消耗存储在状态存储中,编排服务可以访问该状态存储来调节其吞吐量。这种方法将实现不同优先级消息之间PTU利用率的近乎实时平衡。
通过自定义事件测量PTU利用率
图3:通过自定义事件测量PTU利用率
关键考虑因素
重要的是要记住,利用率计算是由与Azure OpenAI Metrics不同的系统执行的。让不同的系统执行利用率计算意味着计算出的利用率将不同。为了考虑差异,网关和编排服务应考虑这些差异,并留出足够的缓冲区,以避免Azure OpenAI服务的限速错误。
低优先级请求的吞吐量大幅下降
在使用这两种方法中的任何一种计算PTU的利用率后,编排服务应随着利用率的提高减少正在处理的低优先级请求的数量。减少正在处理的低优先级请求的数量,可以释放PTU进行高优先级处理。
以下是该解决方案用于在不同优先级的请求之间分配PTU容量的步骤:
- 根据我们组织的需求趋势和潜在峰值,确定在不影响高优先级请求的情况下可以同时处理的低优先级请求的最大数量。
- 定义低优先级PTU消耗的下限和上限。这些限制用于根据可用容量调节低优先级请求的吞吐量。
- 根据PTU消耗量改变低优先级请求的速度。当消耗量低于下限时,它以最高速度处理。当消耗量在下限和上限之间时,它会降低速度。当消耗量超过上限时,它会暂停处理。上限起到了缓冲作用,以避免受到Azure OpenAI服务的限制。
例如,假设它可以同时处理多达10个低优先级请求。并将我们的下限设置为PTU总消耗量的20%,上限设置为90%。然后,当PTU消耗超过20%时,它会减少并发处理的低优先级请求的数量,并在达到90%时停止。这个例子如下所示。
吞吐量图
图4:吞吐量图
- 登录 发表评论
- 46 次浏览
Tags
最新内容
- 4 hours ago
- 6 hours 51 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