在我的用例中,我使用的是Azure上托管的openai模型。我试图生成一个特定长度的句子或单词列表。让我们以这个提示为例:
Give 10 Examples of pizza ingredients:
1. tomatoes
2. mushrooms
text-davinci-003模型按预期完成了列表,但在gpt-3处停止。5-turbo模型生成令牌,直到达到令牌限制,即使我告诉模型在任务完成时停止。使用少量的镜头提示在这里似乎也不起作用。
Hacky工作区
- 使用max_tokens的低值。但是很难估计该值,因为提示符的某些部分将在应用程序中动态更改。而且它仍然需要后处理来删除浪费的令牌。
- 在例子前面放一个计数器,然后用一个特定的数字作为停止序列。当使用上面的通用计数器时,我需要确保停止序列不会意外生成,从而使模型停止。当使用“1~~”、“2~~”等不常见的计数器时。..存在模型使停止序列变形的可能性,使得其仍将生成直到达到极限。
有没有一个干净简单的解决方案让模型停止生成,就像text-davinci-003那样?
2条答案
按热度按时间zte4gxcn1#
在此notebook中,使用ChatGPT模型时,有两种策略用于管理低于4096的令牌限制。
选项1:将会话保持在给定的令牌限制内
选项2:将对话保持在给定的回合数内
68de4m5k2#
我也遇到了同样的问题,一个黑客是在结尾添加end语句,如append --end-,并添加它作为停止序列,因为降低令牌限制是限制性的,而不是完全证明。寻找为什么两种模型中的行为存在差异。