千帆ModelBuilder为不同的服务设定了不同的调用频率限制策略,以保障服务稳定性和为开发者提供最佳性能和较优的开发体验。本文介绍了千帆ModelBuilder提供的具体调用频率限制策略,以及遇到限制时的一些处理方法。
开发者在调用API服务时,调用次数/消耗tokens数有一定的限制。调用频率限制介绍、限制策略等,请参考速率限制说明文档。
以ERNIE 3.5为例进行说明
- 默认RPM=300,如果客户在1分钟之内发送310个请求,只会有300个请求成功,剩余10个请求直接失败。请求失败错误码为,错误描述为Rate limit reached for RPM。
- 默认TPM=300,000,如果客户在1分钟内消耗的token数量超过300,000 ,则超过300,000tokens以后的请求都会失败。请求失败错误码为,错误描述为Rate limit reached for TPM。
示例如下:
为最大限度地减少服务出现问题后带来的影响,千帆ModelBuilder提供了多种机制,在调用错误时进行重试等,避免出现频率极高的错误,提升用户使用体验。
SDK 提供了多种方式,在遇到错误时自动进行重试,以及在重试间进行退避避免触发流控。
- retry_count:重试次数。
- backoff_factor:退避因子。
- jitter:抖动系数,对退避时间做一个“抖动”,以具有一定的随机性。
- max_wait_interval:最大重试间隔,以避免无限长的等待时间。
- timeout:本次请求超时时间(秒)。
- 方式一:通过环境变量设置
环境变量设置对整个程序生效。
以ERNIE-3.5-8K调用为例,如下。
- 方式二:通过参数设置
参数设置仅对该请求生效。
以ERNIE-3.5-8K调用为例如下。
(1)QPS限制和RPM不能同时设置,只能设置其中一个
(2)如果是ERNIE 系列模型,SDK 会自动从平台获取限流配置,且和用户自己指定的配置对比,SDK 会取两者中较小的值
(3)如果是第三方模文心一言 ERNIE Bot 教程型,则需要用户自行配置限流
(1)QPS限制和RPM不能同时设置,只能设置其中一个
(2)如果是ERNIE 系列模型,SDK 会自动从平台获取限流配置,且和用户自己指定的配置对比,SDK 会取两者中较小的值
(3)如果是第三方模型,则需要用户自行配置限流。
(1)如果是ERNIE 系列模型,SDK 会自动从平台获取限流配置,且和用户自己指定的配置对比,SDK 会取两者中较小的值
(2)如果是第三方模型,则需要用户自行配置限流。
开发者可以通过以下2种方式配置限流,通过调整设定的限流值,避免出现频率极高的错误。
- 方式一:通过系统环境变量配置
以ERNIE-3.5-8K为例说明
- 方式二:通过参数配置
在创建相关请求对象时,传入相关参数进行配置限流,以ERNIE-3.5-8K为例说明。
如果用户使用的服务RPM和TPM速率限制较低,无法满足业务要求,可以通过购买TPM实现扩容。具体请查看如何提升速率限制。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/267872.html原文链接:https://javaforall.net
