延迟是大多数与大语言模型(LLM)相关用例中的一个重要问题。对于代码建议和修改长文档等场景,延迟确实会影响整体用户体验。想象一下,用户想要重写一个两页文档的最后一段。如果重写的文档能立即出现会更好,因为更改只涉及一个段落。然而,当前的LLM API需要重新生成整个文档,导致用户面临显著的延迟。
为了解决这个问题,OpenAI推出了一项名为预测输出(Predicted Outputs) 的新开发者功能。该功能适用于大多数输出内容已知的情况,可以显著减少延迟,提高用户体验。
预测输出的工作原理
预测输出使用推测解码技术,跳过已知内容,从而加快生成速度。开发者可以通过传递现有内容作为预测,显著减少延迟。这样,模型可以更快地重新生成整个内容,尤其是当只需要修改部分内容时。
实际应用案例
OpenAI与一些外部合作伙伴测试了这一功能,结果非常积极。例如,根据微软GitHub团队的内部分析,Copilot工作区负载中的预测输出导致了5.8倍的加速。这表明预测输出在实际应用中具有显著的效果。
使用限制
尽管预测输出功能带来了显著的好处,但开发者需要注意以下限制:
- 模型支持:目前,预测输出仅支持GPT-4o和GPT-4o-mini系列模型。最新的o1模型不支持。
- API参数限制:
n
值大于1logprobs
presence_penalty
大于0frequency_penalty
大于0- 音频选项
- 非文本模式
max_completion_tokens
- 工具 - 不支持函数调用
- 费用:在提供预测时,任何不属于API最终完成的标记都将按完成标记费率收费。
如何使用预测输出
要使用预测输出,开发者可以按照以下步骤操作:
- 准备现有内容:将已知内容作为预测传递给API。
- 调用API:使用支持预测输出的模型和API参数调用OpenAI API。
- 处理结果:接收并处理生成的内容。