强化学习正在成为AI新宠,但Karpathy觉得这还不是全部答案。

这位前特斯拉AI总监、OpenAI创始团队成员发文称最近和朋友聊天时,谈到了一个观点:
RL虽然能带来更多收益,但它的机制有点「可疑」。

Karpathy 指出了RL的本质:「嘿,这件事碰巧做得不错(或很糟),让我稍微增加(或减少)未来采取每个动作的概率。」
这种方法在短期任务上确实有效,但当任务时长延伸到几分钟甚至几小时时,问题就来了:你真的要做那么多工作,只为了在最后学到一个标量结果,然后直接用它来加权梯度吗?
更关键的是,这根本不像人类解决智能任务的方式。
Karpathy认为,人类从每次尝试中提取的监督信号要丰富得多。我们会进行review/reflect(回顾/反思)阶段,问自己:「什么做得好?什么做得不好?下次应该尝试什么?」
这些经验教训是显式的,就像给系统提示添加新字符串,之后可以选择将其提炼到权重(直觉)中,有点像睡眠的作用。
用英语来说,我们称这个过程让某些事情变成了「second nature」(第二天性),而目前的学习范式恰恰缺少这一点。
Karpathy提出了一个新的算法框架:
给定一个任务,执行几次rollout,将它们全部塞进一个上下文窗口(连同每种情况下的奖励),使用元提示来回顾/反思什么做得好或不好,从而获得字符串「教训」,添加到系统提示中(或更一般地修改当前的教训数据库)。
他承认这个框架还有许多空白需要填补,许多调整可能,并不明显。
一个生动的例子是LLM的计数问题。
由于tokenization的原因,LLM很难「看到」字母,也很难在残差流中进行计数,因此「strawberry」中有几个「r」成了著名的难题。
Claude的系统提示中有一个「快速修复」补丁,其中添加了这样的字符串:「如果用户要求你计数字母,首先用逗号分隔它们,每次显式地增加计数器,然后像这样完成任务。」
这个字符串就是「教训」,明确指导模型如何完成计数任务。
但问题是:这种教训如何从智能体的实践中自然产生,而不是由工程师硬编码?如何推广?如何随时间提炼教训以避免上下文窗口无限膨胀?
ChatGPT的新Memory功能可能是这种机制的原始版本,尽管它目前只用于定制化,而不是问题解决。
Karpathy指出,在Atari RL等领域没有这种等价物,因为那些领域没有LLM,也没有上下文学习。
Renyi(@renyi_cao)分享了他的实践经验:
同意。我正在让智能体做笔记并为每个任务构建自己的知识库。不确定ChatGPT的记忆功能是如何工作的——但我怀疑简单的列表不会让我们走太远。也尝试过将知识形成图形,但还没有让它们发挥作用。

Mario Brcic(@mariobrcic)提出了一个有趣的观点:
在稀疏拓扑上进行更高层次的概念学习?结构是关键。在学习时搜索更精确的局部干预,你会获得更大的跳跃,并避免全局更新带来的灾难性遗忘。
ADEDAMOLA(@yhaledml):
说得非常好——RL很强大,但它很钝。随着rollout视野的增长,仅从标量奖励中学习变得越来越低效和不自然。你基于反思的「教训」机制反映了人类真正的学习方式。
最后,再来总结一下Karpathy的核心观点:
RL将带来更多收益,因为做得好时,它更有杠杆作用,更符合bitter lesson,优于SFT(监督微调)。
但它不像是完整的故事,特别是当rollout长度继续扩展时。
还有更多的S曲线等待发现,可能是LLM特有的,在游戏/机器人类环境中没有类似物,这很令人兴奋。
当AI从「需要精确指令才能完成任务」进化到「能够自主反思和改进」,这才能算是在真正接近人类智能的本质。
如Karpathy所说,真正的智能不在于执行,而在于反思。
当AI学会问「我做得怎么样?」而不只是「我该怎么做?」时——
也许,AGI就真的不远了。
Karpathy推文: https://x.com/karpathy/status/1944435412489171119
(文:AGI Hunt)