OpenAI GPT-3 API 错误:“此模型的最大上下文长度为 4097 个令牌”

Kan*_*per 34 openai-api gpt-3

我正在向完成端点发出请求。我的提示是 1360 个令牌,经 Playground 和 Tokenizer 验证。我不会显示提示,因为对于这个问题来说有点太长了。

这是我使用 openai npm 包在 Nodejs 中对 openai 的请求。

const response = await openai.createCompletion({
  model: 'text-davinci-003',
  prompt,
  max_tokens: 4000,
  temperature: 0.2
})
Run Code Online (Sandbox Code Playgroud)

在 Playground 中进行测试时,响应后我的总代币数为 1374。

通过完成 API 提交提示时,我收到以下错误:

error: {
  message: "This model's maximum context length is 4097 tokens, however you requested 5360 tokens (1360 in your prompt; 4000 for the completion). Please reduce your prompt; or completion length.",
  type: 'invalid_request_error',
  param: null,
  code: null
}
Run Code Online (Sandbox Code Playgroud)

如果您能够解决这个问题,我很想听听您是如何做到的。

Rok*_*nko 48

max_tokens参数在提示和完成之间共享。提示和完成中的令牌一起不应超过特定 OpenAI 模型的令牌限制。

正如OpenAI官方文章中所述:

根据所使用的模型,请求最多可以使用4097提示和完成之间共享的令牌。如果你的提示是4000令牌,那么你的完成97最多只能是令牌。

该限制目前是技术限制,但通常有创造性的方法可以在限制内解决问题,例如压缩提示、将文本分成更小的部分等。

注意:要在发送 API 请求之前(!)计算令牌,请参阅此答案

GPT-4 和 GPT-4 Turbo 型号:

最新款 描述 最大代币数量 训练数据
gpt-4-1106-preview GPT-4 Turbo
最新的 GPT-4 模型具有改进的指令跟踪、JSON 模式、可重现的输出、并行函数调用等。最多返回 4,096 个输出标记。此预览模型尚不适合生产流量。了解更多
128,000 个代币 截至 2023 年 4 月
gpt-4-vision-preview 具有视觉功能的 GPT-4 Turbo
除了所有其他 GPT-4 Turbo 功能外,还能够理解图像。最多返回 4,096 个输出标记。这是预览模型版本,尚不适合生产流量。了解更多
128,000 个代币 截至 2023 年 4 月
gpt-4 目前指向gpt-4-0613. 查看型号的不断升级 8,192 个代币 截至 2021 年 9 月
gpt-4-0613 2023 年 6 月 13 日的快照gpt-4,改进了函数调用支持。 8,192 个代币 截至 2021 年 9 月
gpt-4-32k 目前指向gpt-4-32k-0613. 查看型号的不断升级 32,768 个代币 截至 2021 年 9 月
gpt-4-32k-0613 2023 年 6 月 13 日的快照gpt-4-32k,改进了函数调用支持。 32,768 个代币 截至 2021 年 9 月
gpt-4-0314(遗产) 2023 年 3 月 14 日的快照,gpt-4支持函数调用。此模型版本将于2024 年 6 月 13 日弃用 8,192 个代币 截至 2021 年 9 月
gpt-4-32k-0314(遗产) 2023 年 3 月 14 日的快照,gpt-4-32k支持函数调用。此模型版本将于2024 年 6 月 13 日弃用 32,768 个代币 截至 2021 年 9 月

GPT-3.5型号:

最新款 描述 最大代币数量 训练数据
gpt-3.5-turbo-1106 更新的 GPT 3.5 Turbo
最新的 GPT-3.5 Turbo 模型具有改进的指令跟踪、JSON 模式、可重现的输出、并行函数调用等。最多返回 4,096 个输出标记。了解更多
16,385 个代币 截至 2021 年 9 月
gpt-3.5-turbo 目前指向gpt-3.5-turbo-0613. 将指向gpt-3.5-turbo-11062023 年 12 月 11 日开始。请参阅持续型号升级 4,096 个代币 截至 2021 年 9 月
gpt-3.5-turbo-16k 目前指向gpt-3.5-turbo-0613. 将指向gpt-3.5-turbo-11062023 年 12 月 11 日开始。请参阅持续型号升级 16,385 个代币 截至 2021 年 9 月
gpt-3.5-turbo-instruct 与旧版完成端点类似text-davinci-003但兼容,但与聊天完成端点不兼容。 4,096 个代币 截至 2021 年 9 月
gpt-3.5-turbo-0613(遗产) 2023 年 6 月 13 日的快照。gpt-3.5-turbo将于2024 年 6 月 13 日弃用 4,096 个代币 截至 2021 年 9 月
gpt-3.5-turbo-16k-0613(遗产) 2023 年 6 月 13 日的快照。gpt-3.5-16k-turbo将于2024 年 6 月 13 日弃用 16,385 个代币 截至 2021 年 9 月
gpt-3.5-turbo-0301(遗产) 2023 年 3 月 1 日的快照。gpt-3.5-turbo将于2024 年 6 月 13 日弃用 4,096 个代币 截至 2021 年 9 月

GPT-3 型号(旧版):

最新款 描述 最大代币数量 训练数据
text-curie-001 比达芬奇能力更强、速度更快、成本更低。 2,049 个代币 截至 2019 年 10 月
text-babbage-001 能够完成简单的任务、速度非常快且成本较低。 2,049 个代币 截至 2019 年 10 月
text-ada-001 能够执行非常简单的任务,通常是 GPT-3 系列中最快的型号,并且成本最低。 2,049 个代币 截至 2019 年 10 月
davinci 最有能力的 GPT-3 模型。可以完成其他模型可以完成的任何任务,而且质量通常更高。 2,049 个代币 截至 2019 年 10 月
curie 非常有能力,但比达芬奇更快、成本更低。 2,049 个代币 截至 2019 年 10 月
babbage 能够完成简单的任务、速度非常快且成本较低。 2,049 个代币 截至 2019 年 10 月
ada 能够执行非常简单的任务,通常是 GPT-3 系列中最快的型号,并且成本最低。 2,049 个代币 截至 2019 年 10 月

GPT 基本型号:

最新款 描述 最大代币数量 训练数据
babbage-002 GPT-3adababbage基本型号的替代品。 16,384 个代币 截至 2021 年 9 月
davinci-002 GPT-3curiedavinci基本型号的替代品。 16,384 个代币 截至 2021 年 9 月

  • 谢谢 Cervus,这消除了我的误解。 (2认同)