我们缺少(至少一个)用于LLM学习的主要范式。不确定该怎么称呼它,可能它有一个名字——系统提示学习?
预训练是为了获取知识。
微调(监督学习/强化学习)是为了形成习惯性行为。
这两者都涉及参数的变化,但很多人类学习感觉更像是系统提示的变化。你遇到一个问题,弄明白一些事情,然后以相当明确的措辞“记住”一些东西以备下次使用。例如,“似乎当我遇到这种和那种问题时,我应该尝试这种和那种方法/解决方案”。这更像是给自己做笔记,即类似于“记忆”功能,但不是存储每个用户的随机事实,而是通用的/全局的问题解决知识和策略。LLM实际上就像《记忆碎片》里的那个人,只是我们还没有给他们便签本。请注意,这种范式也明显更强大且数据效率更高,因为知识引导的“回顾”阶段是一个比奖励标量高得多的反馈通道。
我是在阅读了Claude的系统提示后,被促使记下这些想法的,该系统提示目前似乎大约有17,000个单词,不仅指定了基本的行为风格/偏好(例如,拒绝与歌词相关的各种请求),还包含大量通用的问题解决策略,例如:
“如果Claude被要求数单词、字母和字符,它会在回答之前一步一步地思考。它通过给每个单词、字母或字符分配一个数字来明确计数。只有在执行了这个明确的计数步骤后,它才会回答。”
这是为了帮助Claude解决“strawberry”中的“r”等问题。在我看来,这不是那种应该通过强化学习烘焙到权重中的问题解决知识,至少不是立即或专门这样做。而且它肯定不应该来自人类工程师手工编写系统提示。它应该来自系统提示学习,这在设置上类似于强化学习,但学习算法不同(编辑 vs 梯度下降)。LLM系统提示的很大一部分可以通过系统提示学习来编写,这看起来有点像LLM为自己写一本关于如何解决问题的书。如果这行得通,它将是一个新的/强大的学习范式。还有很多细节有待解决(编辑是如何工作的?能否/是否应该学习编辑系统?如何逐渐将知识从显式系统文本转移到习惯性权重,就像人类似乎做的那样?等等)。