OpenAI GPT-3 API:如何使模型记住过去的对话?

4

有没有一种方式可以训练一个大型语言模型(LLM)以存储特定的上下文?例如,我有一个长故事想要提出问题,但我不想在每个提示中都放入整个故事。如何使LLM“记得故事”?


请参观[tour]以了解Stack Overflow的工作方式,并阅读[ask]以了解如何提高您问题的质量。 请参阅:为什么“是否可能…”是一种措辞不当的问题?。 请展示您已尝试过的方法以及您所尝试的问题/错误信息。 - Progman
有很多关于LLMS可能正在做这件事的讨论,我对训练它很感兴趣。http://ai.stanford.edu/blog/understanding-incontext/#f1 - nerdlyfe
1个回答

6
考虑到GPT-3模型没有启用过去对话记录的记忆参数,目前似乎唯一的“记忆”过去对话的方式是在提示中包含过去对话
如果我们看下example的例子:
You are a friendly support person. The customer will ask you questions, and you will provide polite responses

Q: My phone won't start. What do I do? <-- This is a past question
A: Try plugging your phone into the charger for an hour and then turn it on. The most common cause for a phone not starting is that the battery is dead.

Q: I've tried that. What else can I try? <-- This is a past question
A: Hold the button in for 15 seconds. It may need a reset.

Q: I did that. It worked, but the screen is blank. <-- This is a current question
A:

遵循的规则:

  • 在提示中包含提示-完成对,最早的对话放在顶部。

你将面临的问题:

  • 在某个时刻(如果你聊得足够长),你会达到令牌限制。每个GPT-3模型都有一个最大令牌数可以传递给它。在text-davinci-003的情况下,它是4096个令牌。当你达到这个限制时,OpenAI API会抛出一个错误。当这种情况发生时,你需要减少过去提示-完成对的数量(例如,只包括最近的4个过去的提示-完成对)。

优点:

  • 通过在提示中包含过去的提示-完成对,我们能够为GPT-3模型提供对话的上下文。

缺点:

  • 如果用户提出的问题与4个提示-完成对话之前发生的对话有关怎么办?
  • 在提示中包含过去的提示-完成对将会花费(大量)资金!

1
是的,我深入研究提示工程,所以我很感激这里提供的信息。最感兴趣的是存储上下文,而不是将其包含在提示中。但是这是很好的建议。 - nerdlyfe
1
我想知道微调是否是一个选择。 - Rubén
@Rubén 不是的。因为微调是一种更通用的训练模型的方式,所以在这个例子中,模型仍然不知道用户将会问什么以及之前已经问了4个问题。 - Suisse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接