
RL还行不行?表面上很风光,但真实情况怎样呢?
大神Karpathy提出了一种超越当前RL范式、更接近人类学习机制的新思路
强化学习的强大与局限
Karpathy首先肯定了强化学习的巨大价值。他指出,与监督微调(SFT)相比,RL的“杠杆效应”要强大得多。SFT依赖于大量高质量、人工标注的数据,成本高昂且难以扩展。而RL则可以通过一个相对简单的奖励信号(比如任务成功或失败)来引导模型学习,这种方式更具扩展性,也更符合Rich Sutton提出的“苦涩的教训(The Bitter Lesson)”——即那些能充分利用计算资源进行大规模学习的通用方法,最终将胜过依赖人类知识的特定方法。
然而,Karpathy指出了RL的两大核心局限:
渐进式学习的低效性(Asymptotic Suspicion):当前的RL机制可以被概括为:“这件事做得好/差,我就为未来稍微增加/减少采取过的每个行动的概率”。当任务变得极其复杂,需要长达数分钟甚至数小时的互动才能完成时,这种学习方式就显得非常可疑。难道智能体付出了如此巨大的努力,仅仅是为了在最后获得一个单一的标量奖励(比如1或0),然后用这个微弱的信号去调整成百上千步决策的梯度吗?这在信息效率上是极低的
与人类学习机制的背离:这并非人类学习和提升智能的主要方式。当我们完成一项任务后,我们不会只得到一个简单的“好”或“坏”的反馈。相反,我们会进行一个“复盘和反思(review/reflect)”的阶段,从中提取出丰富得多的监督信息,比如:“哪一步做得好?哪里出了问题?下次我应该尝试什么新方法?”
“第二天性”新范式
Karpathy认为,我们缺失了一种更接近人类智慧的学习范式。他将其描述为一个从“显式策略”到人类学习“第二天性”的过程
他构想了这样一个算法:
-
1. 执行与收集:针对一个任务,让智能体进行几次尝试 -
2. 反思与总结:将所有尝试的过程和最终结果(奖励)打包放入一个上下文窗口中。然后,使用一个“元提示词(meta-prompt)”引导模型对这些经历进行复盘和反思 -
3. 生成“教训”:模型通过反思,生成一段明确的、可操作的“教训(lesson)”字符串 -
4. 应用与迭代:将这条新“教训”添加到系统的提示词(System Prompt)中,或一个专门的“教训数据库”里,用于指导未来的任务
一个绝佳的例子是Claude模型曾经用于解决“数字母”难题的“补丁”。众所周知,由于分词(tokenization)机制,LLM很难直接“看到”并计算单词中的字母。Claude的系统提示词中曾加入过这样一条指令:“如果用户要求你数一个单词里的字母,请先用逗号将字母隔开,然后每数一个就增加一个显式计数器。”
这段话就是一个典型的“教训”。Karpathy的核心问题是:我们如何让智能体通过自主实践,自动地从失败中总结出这样的“教训”,而不是依赖工程师硬编码?
从“刻意练习”到“直觉”
Karpathy进一步将这个过程与人类学习的“第二天性(second nature)”联系起来。新生成的“教训”字符串,就像我们学习新技能时,在脑中明确记住的步骤和策略。这是一种刻意的、消耗认知资源的思考。
然而,随着时间的推移和经验的积累,这些明确的指令可以通过一个类似“睡眠”的过程,被“蒸馏”并融入模型的权重中,最终成为一种无需思考的直觉。这正是我们所说的“熟能生巧”或“内化于心”
当然,这个构想也面临诸多挑战:如何泛化这个学习过程?如何管理一个不断增长的“教训”数据库以避免上下文窗口无限膨胀?如何高效地进行“蒸馏”?这些都是需要填补的空白
参考:
https://x.com/karpathy/status/1944435412489171119
(文:AI寒武纪)