【问题标题】:GPT completions end point maximum context length errorGPT 完成终点最大上下文长度错误
【发布时间】:2023-02-09 18:35:24
【问题描述】:

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

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

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

在操场上测试时,响应后我的总标记为 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
}

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

【问题讨论】:

    标签: openai gpt-3


    【解决方案1】:

    max_tokens参数是共享在提示和完成之间。来自提示和完成的令牌加起来不应超过特定 GPT-3 模型的令牌限制。

    如官方OpenAI website所述:

    根据使用的模型,请求最多可以使用 4097 共享令牌 在提示和完成之间。如果您的提示是 4000 标记,您的 completion 最多可以是97 tokens。

    该限制目前是一种技术限制,但经常有 在限制范围内解决问题的创造性方法,例如凝结你的 提示,将文本分成更小的部分等。

    GPT-3 型号:

    【讨论】:

    • 感谢 Cervus,这消除了我的误解。
    【解决方案2】:

    Reddit 用户“bortlip”解决了这个问题。

    max_tokens 参数定义响应标记。

    来自 OpenAI:

    https://platform.openai.com/docs/api-reference/completions/create#completions/create-max_tokens

    您的提示的令牌计数加上 max_tokens 不能超过模型的上下文长度。

    因此,为了解决这个问题,我从 max_tokens 中减去提示的令牌计数,它工作得很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 2019-09-04
      • 2022-12-07
      相关资源
      最近更新 更多