跳转到主要内容

热门内容

今日:


总体:


最近浏览:


Chinese, Simplified

category

1.改善消费者延迟


在设计GenAI网关解决方案时,消费者延迟是一个关键因素。此延迟是指用户请求从客户端到网关,然后到Azure OpenAI(AOAI)服务,再返回所需的时间。尽量减少这种延迟可确保响应迅速且高效的用户体验。

除了常见因素外,减少消费者延迟的一个关键方法是选择AOAI流媒体端点。流媒体允许更快地响应消费者,因为您可以“流式传输”完成内容,并在完整完成之前分部分处理它们。OpenAI和AOAI都使用服务器发送事件(SSE)进行流式传输。

话虽如此,以下是使用流媒体的一些缺点,在做出这一选择之前应该考虑这些缺点。这个列表来自OpenAI,但它也适用于AOAI。

处理流媒体响应:GenAI网关应具备处理来自SSE的流媒体的能力。网关必须从AOAI读取服务器发送事件的每个块,并且只处理其中的“内容”部分。它需要将“内容”流式传输回应用程序,并在流式传输终止时关闭连接。

2.配额管理


AOAI的配额功能允许为部署分配速率限制,最高可达名为“配额”的全局限制。它使用每分钟令牌(TPM)和每分钟请求(RPM)作为此消耗管理的单位。在此处阅读更多关于AOAI提供的配额管理的信息。

在托管多个访问GenAI资源的业务应用程序的大型企业中,管理配额分配以确保公平使用和优化资源分配至关重要。在与GenAI网关集成之前,每个消费者应用程序都应该对其TPM和RPM要求进行基准评估。基于这一评估,GenAI网关可以将消费者分配到适当的后端AOAI资源。

对代币消费(PTU和PAYG)进行基准测试:对TPM和RPM消费的消费者进行基准测试是一项重要活动。它有助于评估和优化提示复杂性。它还有助于预测请求处理中的延迟,准确估计令牌使用情况,并确保遵守服务限制。

以下步骤概述了如何对TPM和RPM要求进行基准评估。

  1. 估计每个用例和场景的请求频率和数量。例如,每分钟有多少请求,每个请求有多少令牌,有多少并发用户等。
  2. 使用负载测试工具或脚本来模拟预期的流量模式,并测量实际的TPM和RPM消耗。例如,Azure负载测试服务、Apache JMeter、Locust、Artillery等。
  3. 分析结果,确定每个用例和场景的最大和平均TPM和RPM值。此外,注意测试过程中出现的任何错误或故障。
  4. 将结果与可用配额和消费者应用程序的预期服务水平协议(SLA)进行比较。根据这些基准结果,如果需要,可以采购预配置吞吐量单位(PTU)。

Microsoft正在开发此工具以帮助进行基准测试:https://github.com/Azure/azure-openai-benchmark/

以下是对在消费者层面管理配额的方法的一些建议。

  • 为消费者设置专用端点

对于消费者数量有限的场景,建议为具有类似要求的单个消费者或组分配专用端点。GenAI网关应配置为根据消费者的身份将流量路由到这些指定的端点。这种方法对于管理较小的消费者群体是有效的。

在该模型中,配额分配在端点创建时确定,这需要持续监控以确保配额的有效利用。在这种设置中,一些消费者经常未充分利用其分配的资源,而另一些消费者可能会遇到资源短缺,导致GenAI资源的整体消耗效率低下。因此,可能需要定期评估和重新分配配额,以保持资源使用的最佳平衡和有效性。

在这种情况下,值得考虑为Azure OpenAI的部署配置设置多租户的最佳实践。

  • 在消费者层面设定费率限制

另一种方法是在GenAI网关中的消费者级别应用速率限制。如果消费者超过了他们的限制,那么GenAI网关可以执行以下操作之一:

  • 在配额得到补充之前,限制对GenAI资源的访问
  • 根据与消费者签订的合同,降低消费者体验。

这种访问限制消除了在Azure OpenAI级别进行部署分离的需要。然后,消费者可以在其端实现重试逻辑,以获得更好的弹性。

除了这些方法,GenAI网关还可以用于在消费者层面实施限速最佳实践。这些最佳实践确保消费者遵守设置max_tokens和一个小的best_of值的约定,以避免耗尽令牌。

3.基于消费者的请求优先级


可能有多个优先级不同的消费者试图访问AOAI部署。由于AOAI对每秒可以消耗的令牌数量施加了严格的限制,因此请求优先级必须允许具有关键工作负载的消费者首先访问GenAI资源。

每个请求都可以分为不同的优先级。低优先级请求可以推迟到队列,直到容量可用。应持续监控AOAI资源,以跟踪可用容量。当容量可用时,自动流程可以开始执行队列中的请求。这里讨论了监测PTU容量的不同方法。

  • 利用断路器技术对请求进行优先级排序:

API网关中的电路断路器技术可用于在高峰负载期间对消费者之间的请求进行优先级排序。通过将某些消费者指定为优先消费者,将其他消费者默认为非优先消费者,网关可以监控后端的响应代码。当后端返回特定的响应代码(如429)时,意味着后端配额已达到,断路器会为非优先消费者触发更长的中断时间。这种中断会暂时停止他们的请求,以减轻后端的压力。对于优先的消费者,休息时间将更短,确保更快地恢复服务,以保持关键流程的响应能力。

本文地址
最后修改
星期日, 十月 6, 2024 - 16:32
Article