在我的用例中,我使用的是 Azure 上托管的 openai 模型。我正在尝试生成具有特定长度的句子或单词列表。我们以这个提示为例:
Give 10 Examples of pizza ingredients:
1. tomatoes
2. mushrooms
text-davinci-003 模型按预期完成列表并停止,但 gpt-3.5-turbo 模型会生成 token ,直到达到 token 限制,即使我告诉模型在任务完成后停止也是如此。使用少量镜头提示在这里似乎也不起作用。
黑客解决方法
对 max_tokens 使用较低的值。但很难估计该值,因为部分提示将在应用程序中动态更改。而且它仍然需要后处理来删除浪费的 token 。
在示例之前放置一个计数器,然后使用特定数字作为停止序列。当使用像上面这样的通用计数器时,我需要确保不会意外生成停止序列,从而使模型停止。当使用像“1~~”、“2~~”这样的不寻常计数器时......模型有可能使停止序列变形,因此它仍然会生成直到达到限制。
是否有一个干净且简单的解决方案可以让模型停止生成,就像 text-davinci-003 那样?
最佳答案
我也遇到了同样的问题,一个技巧是在最后添加像append --end-- 这样的结束语句,并将其添加为停止序列,因为降低 token 限制是有限的,而不是完整的证明。寻找为什么两个模型的行为存在差异。
关于azure - 如何阻止 GPT-3.5-Turbo 模型生成文本(azure)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76100128/