[控场AI]
· 6 分钟阅读· 3,190 字

LLM进化Core War汇编程序:图灵版权力的游戏实验

LLM进化Core War汇编程序:图灵版权力的游戏实验

研究者将LLM嵌入进化循环,用其进化Core War汇编程序,将指数搜索难题压缩为线性搜索。

Akarsh Kumar将经典编程游戏Core War与大语言模型结合,探索能否催生开放式进化军备竞赛。实验发现LLM零样本编写小众汇编语言Redcode表现极差,但当LLM被嵌入"生成—验证—保留—再搜索"的进化循环后,能力显著提升。核心洞察在于:保留已解决的局部问题并继续搜索其余部分,可将指数级的解空间搜索转化为近似线性的问题。Core War因兼具明确胜负判定(天然验证器)与无穷策略空间,成为研究开放式进化的理想沙盒,而"LLM作为变异算子+验证器作为选择压力"的组合,正成为AI研究中值得关注的新范式。

当LLM遇上Core War:一场代码的生存竞赛

Core War是一款诞生已久的编程游戏,玩家用一种名为Redcode的汇编语言编写程序,让它们在同一块虚拟内存中相互厮杀。获胜的方式简单而残酷——让对手的程序崩溃。研究者Akarsh Kumar在与主持人的对话中,把这个经典概念重新搬上了舞台,只不过这一次,编写程序的不是人类,而是大语言模型(LLM)。

"进化绝非随机,"Kumar开篇就点明了核心命题。他想探究的问题是:如果让LLM去进化一批相互竞争的小型汇编程序,会发生什么?能否由此催生出一场开放式的进化军备竞赛(open-ended evolutionary arms race)?

What my program needs to do in order to do that

在Core War的规则里,一个程序要击败对手,需要在对方程序的执行线程前方注入一条非法指令。当对手的线程执行到这条无效操作时,就会崩溃halt。这种你死我活的对抗,被主持人形象地称为"图灵版的权力的游戏"(Game of Thrones: Turing Edition),Kumar对此欣然认同。

Core War由A.K. Dewdney在1984年通过《科学美国人》专栏推广,随后发展出一套标准化的虚拟机规范MARS(Memory Array Redcode Simulator)。游戏的虚拟内存是一段循环排列的地址空间(通常为8000个内存格),两个或多个程序被随机放置其中并同时执行。Redcode的指令集极为精简,却包含一个关键操作DAT(data)——线程一旦执行到DAT指令,便立即终止。因此经典的进攻策略"轰炸机(bomber)"会用循环将DAT写入内存各处,而防守策略"imp"则是一个只有单条指令、会不断自我复制并向前跳跃的极简程序。这种极简规则下涌现出的复杂对抗策略,正是Core War几十年来在编程社区中经久不衰的原因,也使其成为研究涌现行为的天然实验室。

开放式进化:从代码对抗到军备竞赛

这个实验最吸引人的地方,在于它追求的"开放式"进化目标。不同于那种收敛到单一最优解的优化任务,Core War的对抗环境天然具备持续演化的张力——每当一个程序找到攻击对手的新方式,防守方就有动力进化出新的应对策略,攻防双方在循环中不断升级。

And can we create this open-ended evolutionary arms race of programs from this?

这种军备竞赛式的动态,正是生物进化中最具生命力的部分。Kumar试图验证的,是LLM能否作为"变异和重组"的引擎,驱动这样一个永不停歇的创造过程。它触及了AI研究中一个深刻的话题:开放式学习(open-endedness)——系统能否持续产生新颖且有意义的产物,而非在某个局部最优点停滞。

开放式进化(open-endedness)是人工生命(Artificial Life)领域的核心难题之一。传统进化算法往往会收敛——种群找到足够好的解后,多样性下降,进化停滞。研究者肯尼斯·斯坦利(Kenneth Stanley)提出的NEAT算法及后续的"新颖性搜索(novelty search)"理论指出,以客观适应度为唯一导向反而会阻碍探索;转而奖励"新颖性"本身,有时能到达更远的地方。真正的开放式系统需要满足:持续产生新颖结构、新结构为更高层次的复杂性提供基础、且没有明显的收敛终点。生物进化中寒武纪大爆发是自然界最著名的案例。在AI语境下,开放式学习被视为通往通用智能的潜在路径之一,Core War的军备竞赛结构——每一方的进步都为对方创造新的选择压力——天然符合这一框架的基本要求。

LLM的短板:零样本写Redcode几乎失败

实验揭示了一个关键而现实的发现:LLM本身并不擅长写Redcode。

If you just try to zero-shot this language, it's terrible.

"如果你只是想零样本(zero-shot)地搞定这门语言,结果糟糕透顶,"Kumar直言不讳。Redcode是一门小众且反直觉的汇编语言,训练语料中几乎没有相关内容,这让LLM在直接生成有效、有竞争力的代码时力不从心。这个结果本身并不意外——它印证了LLM在训练分布之外的冷门领域的能力边界。

但故事并没有在此结束。真正的转机,来自于把LLM放进一个带有验证机制的进化循环中。

验证器+进化:把指数搜索变成线性搜索

Kumar给出的解决方案是:进化(evolution)加上验证器(verifier)。当LLM不再是一次性生成完整答案,而是被嵌入到"生成—验证—保留—再搜索"的迭代循环中时,表现"结果证明相当出色"。

and you hang on to that and you search for the other ones

其中的关键洞察,是搜索复杂度的转变。Kumar解释道:如果你解决了一个难题的某一个部分,就把这一部分牢牢抓住(hang on to that),然后继续搜索其余的部分。通过这种方式,"你可以把一个指数级的搜索问题,变成一个线性搜索问题。"

这个思路直指进化算法与LLM结合的精髓。单纯依靠LLM一次性输出,面对的是整个解空间的指数级组合爆炸;而借助验证器识别并保留部分正确的中间成果,相当于把大问题拆解成可逐步累积的小问题。每一次成功的局部解都成为下一轮搜索的坚实起点,搜索成本从指数级坍缩为近似线性。这也正是进化策略相比纯粹随机搜索的根本优势所在——有选择地保留有用变异。

Kumar描述的这种"生成—验证—保留—再搜索"循环,在结构上与近年来备受关注的几个AI范式高度相关。一是AlphaCode、AlphaProof等系统中使用的"生成-验证"框架:LLM大量采样候选解,外部执行器或证明检查器作为验证器过滤,只有通过验证的解才进入下一轮。二是"过程奖励模型(Process Reward Model, PRM)"思路:不仅奖励最终结果正确,还对解题过程的中间步骤打分,使搜索在解空间中更高效地导航。Kumar所说的"抓住已解决的部分"本质上是一种脚手架式积累(scaffolded accumulation),与遗传算法中的模式定理(Schema Theorem)同源——短的、高适应度的子模式(schema)会在种群中指数级扩散,而LLM则充当了生成这些子模式变体的灵活算子。

这项实验意味着什么

这段对话虽短,却勾勒出一个颇具启发性的研究范式。LLM单打独斗在陌生领域表现糟糕,但当它成为进化系统中的一个组件、辅以明确的验证反馈时,整体能力会发生质变。这种"LLM作为变异算子 + 验证器作为选择压力"的组合,正在成为近年来AI研究中值得关注的方向。

Core War这个充满对抗色彩的沙盒,为研究开放式进化提供了理想的试验场。它既有明确的输赢判定(天然的验证器),又有无穷的策略空间(支撑持续军备竞赛)。能否从中孕育出真正开放、永不收敛的创造过程,是这类实验留给我们的开放式问题。

由于这段内容来自一次简短访谈,许多技术细节(如具体的进化算法、实验规模、最终涌现出的策略类型)并未展开,有待完整研究成果进一步揭示。

分享:

相关推荐