TLDR:开发者现在可以在 Chat Completion 请求中指定 seed
参数,以接收(大部分)一致的输出。为了帮助您跟踪这些更改,我们公开了 system_fingerprint
字段。如果此值不同,您可能会看到不同的输出,这是由于我们在系统上所做的更改。请注意,此功能目前为 beta 版,并且目前仅支持 gpt-4-1106-preview
和 gpt-3.5-turbo-1106
。
背景
在使用我们的 API 时,用户社区一直强烈要求可复现性。例如,当被授予获得可复现数值结果的能力时,用户可以解锁相当多的对数值变化敏感的用例。
模型级别实现一致性输出的功能
Chat Completions 和 Completions API 默认是非确定性的(这意味着模型输出可能因请求而异),但现在提供了一些使用一些模型级别控制来实现确定性输出的控制。
这可以解锁一致的补全,从而可以完全控制基于 API 构建的任何模型的行为,并且对于复现结果和测试非常有用,因此您可以确切地知道您会得到什么,从而安心无忧。
实现一致性输出
要接收 API 调用之间大部分确定性的输出
- 将
seed
参数设置为您选择的任何整数,但在所有请求中使用相同的值。例如,12345
。 - 将所有其他参数(prompt、temperature、top_p 等)在所有请求中设置为相同的值。
- 在响应中,检查
system_fingerprint
字段。系统指纹是 OpenAI 服务器用于生成补全的当前模型权重、基础设施和其他配置选项组合的标识符。当您更改请求参数或 OpenAI 更新服务我们模型的基础设施的数值配置时(每年可能会发生几次),它会发生变化。
如果您的请求中 seed
、请求参数和 system_fingerprint
都匹配,则模型输出将基本相同。即使请求参数和 system_fingerprint
匹配,响应也可能会有所不同,这归因于我们模型固有的非确定性,但这种情况发生的几率很小。