简要说明: 开发者现在可以在聊天补全请求中指定seed参数来获取(基本)一致的输出。为了帮助您跟踪这些变更,我们开放了system_fingerprint字段。如果该值不同,您可能会看到由于我们系统变更导致的输出差异。请注意此功能目前处于测试阶段,仅支持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匹配,响应仍有可能存在微小差异。