时延优化
更新时间:2025-04-11
针对大模型时延问题,我们提供几个推荐原则,您可以应用这些原则来改善大模型请求中遇到的时延问题
时延核心指标
主要观测指标:
- 首Token时延(FirstTokenLatency) :从发送请求,到返回首字(或首句)的时延
- IntervalLatency :流式场景包间时延,指的是2个chunk之间的时间间隔
- OTPS:Output Tokens Per Second: 每秒输出token的速度,token/s 次要观测指标:
- Latency:整句时延,从发送请求,到请求返回结束的时间
- OLPS:OutputStringLengthPerSecond: 每秒输出字符串的速度,字符数/s
更快的处理请求
推理速度是解决时延问题的关键之一。影响推理速度的主要因素之一是模型的大小。较小的模型通常运行速度更快且价格更低。您可以探索:
- 模型压缩:通过减少模型的参数量、计算复杂度或存储需求,在尽量保持性能的前提下,使模型更轻量化、高效化。同时通过sft微调使得轻量模型在特定场景下,效果达到旗舰模型。
- 使用更高规格的算力单元部署模型。更大的显存带来更快的响应速度
- 请求时使用更长、更详细的prompt
- 打开prompt cache开关,去除相同prompt前缀的重复计算,帮助降低首token时延
生成更少的token
请求时,生成 token 是延迟最高的步骤:减少输出token可以大大降低延时。减少输出大小的方式取决于输出类型:
使用文本生成模型时,只需要求模型更简洁(“少于 20 个字”或“非常简短”)可能会有所帮助。您还可以使用一些示例和/或微调来教模型更短的响应。
如果您正在生成结构化输出,请尽可能减少输出语法:缩短函数名称、省略命名参数、合并参数等。
您也可以通过设置请求参数,来控制模型输出。
- 通过 max_completion_tokens 来指定模型输出的最大长度。
- 针对大模型生成,总结,问答场景,假如不需要搜索增强实时检索互联网信息,可以关闭搜索web_search,降低时延。
减少用户体感等待时间
让用户感受到模型持续输出,而不是等待生成所有回复后一次性输出,可以大大优化用户等待的体感。用户可以使用:
- 流式传输:这是最有效的方法,因为它将等待时间缩短至一秒或更短。请求时,设置stream=true。