i陆三金 25-03-20 23:47
微博认证:AI博主

Andrej Karpathy 新帖子探讨了有人在与LLM对话时只用一个对话窗口,不新开对话窗口的有趣案例(太长不看:目前不建议这样做)。

Andrej Karpathy:在使用大语言模型(LLM)时,我习惯于为每个请求开启一个“新对话”。

但与之完全相反的做法是始终保持一个巨大的对话线程无限延续。标准方法仍然可以选择使用记忆工具,在对话之间记录信息(例如ChatGPT就是这样做的),因此“单一线程”方法可以被视为始终且全面使用记忆的极端特例。

前几天,我听到有人说,他们与Grok的对话(当时对他们来说是免费的)已经变得太长,以至于他们无法切换到ChatGPT。也就是说,它就像一道护城河,哈哈。

大语言模型允许的最大上下文长度在原则上正在迅速增长,显然这可能让模型拥有更多关于你的上下文和知识,但也存在一些注意事项。举几个主要的例子:

- 速度。巨大的上下文窗口会消耗更多计算资源,速度也会变慢。

- 能力。仅仅因为你能输入所有这些标记(tokens),并不意味着LLM的注意力机制和上下文学习机制就能有效地处理它们来解决问题(最简单的证明就是“大海捞针”评估)。

- 信噪比。太多的标记争夺注意力可能会因为过于“分散”而降低性能,使注意力过于发散,降低特征的信噪比。

- 数据问题,即训练-测试数据的不匹配。大部分用于微调对话的训练数据可能是短对话。实际上,学术数据集中的很大一部分往往是单轮对话(一个问题 -> 一个回答)。一个巨大的对话会迫使LLM进入一个它在训练中不太见过的新数据分布。这在很大程度上是因为……

- 数据标注。记住,LLM仍然主要且根本上依赖于人工监督。人类标注者(或工程师)可以理解短对话并写出最佳回应、对其进行排名,或检查LLM的判断是否正确。但对于巨型对话,事情就会停滞。谁来为几十万标记的对话撰写或检查所谓的“最佳回应”呢?

当然,从长远来看,一个LLM是否应该有“新对话”按钮还不明确。这感觉有点像是开发者的内部实现细节,为了方便而呈现给用户,目前也只是暂时如此。正确的解决方案似乎是一个非常完善的记忆功能,类似于主动的、代理式的上下文管理。这是我至今还未真正见到的东西。

链接:http://t.cn/A6BjIy5m

发布于 北京