✨ 要点🔬 技术摘要
想象一下,你正试图教一个机器人玩电子游戏,但你没有给它摇杆,而是每次它犯错时都必须为它编写一套新的规则。这就是**程序进化(program evolution)**的世界——在这个领域中,科学家利用计算机通过进行微小的改变、进行测试并保留优胜者,来“培育”出更好的软件。长期以来,这个过程有点像在黑暗中投掷飞镖。科学家们可以判断一个新版本的代码是变好了还是变坏了,但他们无法控制代码究竟改变了“多少”。对代码中单个单词的微小调整可能会意外地让一个温和行走的机器人变成一个混乱、崩溃的废品;而一次大规模的重写可能又会让机器人的行为几乎毫无变化。研究人员一直在追问的一个大问题是:我们能否构建一个系统,它不仅理解应该改变“什么”,还理解要将机器人的行为移动“多远”,从而让我们能够精确地将其引导至目标?
这就是论文《ELMER:探索与精炼的进化语言模型》(ELMER: Evolutionary Language Model that Explores and Refines)所要解决的问题。研究人员 Matthew Siper、Ahmed Khalifa 和 Julian Togelius 构建了一个巧妙的新系统,该系统使用大型语言模型(一种理解人类语言的超级智能 AI)来充当“变异算子”。该 AI 不是盲目地编辑计算机代码,而是编辑一段关于交易策略的自然语言描述——就像一份买卖股票的食谱。该 AI 接受了三种特定任务的训练:将食谱翻译成代码,将代码翻译回食谱,以及最重要的一点,根据“强度”指令对食谱进行变异。如果你告诉 AI 进行“低强度”改变,它会微调食谱;如果你说“高强度”,它就会重写整个内容。
团队在金融交易领域测试了这一方法,利用历史市场数据来观察新策略的表现。他们发现,通过训练 AI 去关注机器人实际行为的变化程度(即其“行为位移”),他们可以让“强度”指令发挥作用。当他们要求进行微小的改变时,AI 通常会做出微小的改动;当他们要求进行大幅度的改变时,它就会做出大幅度的改动。这意义重大,因为它将程序进化的混沌过程变得更像是驾驶汽车时的转向控制。论文表明,使用自然语言描述有助于 AI 比直接编辑原始代码做出更聪明、更受控的移动。在测试中,这种基于语言的系统找到了所有尝试方法中表现最好的交易策略,并且效率更高,能以更少的尝试达到良好的结果。虽然该系统并不完美且仍具有一定的随机性,但结果表明,教导 AI 用人类语言来“谈论”它的变化,为我们在浩如烟海的可能计算机程序空间中引导它提供了一种更好的方式。
技术摘要:ELMER —— 用于探索与精炼的进化语言模型
1. 问题陈述
程序进化传统上面临一个关键的脱节问题:虽然它可以衡量一次变异是否提升了适应度,但它缺乏对变异在**行为空间(behavior space)**中移动幅度的控制。目前的各种方法依赖于语法代理(例如,Token、树或子树编辑)作为变异规模。这些代理是不可靠的,因为微小的语法变化可能会剧烈改变策略的执行轨迹,而大规模的重写可能却保留了相同的行为。本文指出,需要一种变异规模,其请求的幅度能直接预测实现的行为位移。
2. 方法论
作者提出了 ELMER ,该系统将用于变异的表示与用于评估的表示解耦。其核心创新是一个进化语言模型,它在自然语言(NL)策略描述上进行搜索,并将其编译为类型化的可执行程序。
系统架构
表示: 策略以标准化的自然语言描述形式进行变异。
执行: 一个学习到的编译器将 NL 描述映射到**遗传编程交易语言(GPTL)**代码,用于确定性执行和回测。
行为位移: 定义为在共享的历史轨迹上,父代与子代动作序列之间的原始信号不一致性。
模型: 一个经过完全微调的 Qwen3-8B 模型学习了三种任务条件操作:
条件语义变异: 给定父代描述、回测反馈以及请求的强度(s ∈ { l o w , m e d i u m , h i g h } s \in \{low, medium, high\} s ∈ { l o w , m e d i u m , hi g h } ),生成子代 NL 描述。
NL-to-GPTL 编译: 将 NL 翻译为可执行代码。
GPTL-to-NL 翻译: 将代码转换回标准化的 NL 格式。
训练流水线
训练过程涉及两个截然不同的阶段,以学习基于行为的控制:
基于行为的监督微调(SFT):
从高适应度 GPTL 程序开始构建“退化链”进行监督。
应用语法有效的 AST 编辑以降低适应度,从而创建具有已知行为距离的父代-子代转换。
这些转换被反转并渲染为 NL 对,从而教会模型将语义编辑与特定的行为位移联系起来。
共同父代偏移直接偏好优化(oDPO):
为了强化控制力,模型使用一种偏好框架进行优化。
对于给定的父代和请求的强度,模型倾向于选择其实现的位移最接近目标区间(μ s \mu_s μ s )而非偏离目标的子代。
不同于标准的 DPO 仅优化二元质量,oDPO 结合了基于位移偏差的成对依赖边际(pair-dependent margins) ,使模型能够学习变异空间中可控的序数几何结构。
实验设置
领域: 使用 2008–2025 年每小时数据的金融交易(E-mini S&P 500、白银、美国国债)。
协议: 在严格的时间留出测试下进行固定预算的进化搜索。实验设计包含 216 次搜索 (分布在学习算子矩阵中:六个算子、三种算法、三种资产和四个种子)以及一个单独的 36 次搜索 AST 矩阵 (用于原生基准测试),总计 252 次搜索 。
基准模型:
未经训练的基础模型。
不带强度标签的 SFT。
仅提示词条件的模型(带有强度词但缺乏行为落地)。
基于行为的 SFT(不含 oDPO)。
原生 AST 变异(手工设计的算子)。
匹配的代码输出 oDPO(使用相同的训练数据/目标,但输出 GPTL 代码而非 NL)。
3. 核心贡献
执行落地的变异定义: 基于实现的动作序列不一致性的变异位移定义,并结合了有序行为区间的条件变异算子。
多任务行为落地模型: 一个用于语义变异、编译和翻译的单一 LLM,利用可执行转换,使模型能够学习“变异多远”。
受控消融实验: 系统地隔离了领域微调、基于行为的条件化、oDPO 以及自然语言表示的作用。
机制分析: 对校准、语义编辑组合以及语法-行为局部性进行了分析。
4. 结果
研究报告了在 252 次固定预算搜索 (216 次学习算子运行和 36 次原生 AST 基准运行)中的结果。
校准(强度控制):
oDPO 在请求强度与实现位移之间实现了 0.824 的平均 Spearman 相关系数。
仅基于行为的 SFT 实现的关联度为 0.310,而仅提示词条件的关联度仅为 0.018。
oDPO 成功地将偏序关系转化为一致的区间控制。
搜索效率:
在最佳至今(best-so-far)验证适应度的曲线下面积(AUC)方面,NL oDPO 显著优于基于行为的 SFT、原生 AST 变异以及匹配的代码输出 oDPO 模型。
匹配的代码输出控制(隔离了表示变量)表明,相比于直接的代码变异,NL 在有限预算搜索中具有效率优势。
留出性能(Held-Out Performance):
NL oDPO 发现了观测到的最高留出策略(夏普比率达 2.3445)。
虽然基于行为的 SFT 在描述性聚合指标中显示出最高的平均值和前四分位数测试适应度,但 NL oDPO 在上尾部性能(upper-tail performance)方面表现更优。
机制洞察:
语义组合: 请求的强度系统性地改变了编辑类型。低强度以参数变化为主(86.4%),而高强度则转向结构性重写、指标替换和逻辑翻转。
语法-行为局部性: 与原生 AST 变异(ρ = 0.44 \rho=0.44 ρ = 0.44 )相比,NL 变异在语法距离与行为位移之间表现出更强的相关性(ρ = 0.88 \rho=0.88 ρ = 0.88 )。
适应度保持: 在匹配的小到中等程度的行为位移时,NL 变异比原生 AST 变异更能保持父代适应度,且灾难性失败率更低(9% vs 14%)。
5. 意义与主张
本文声称,语言可以作为可执行程序空间上的可控、执行落地的搜索表示 。通过将语义变异与确定性执行分离,ELMER 解决了程序进化历史上无法控制行为变化幅度的难题。
作者强调,该系统使程序进化超越了“盲目的语法扰动”,迈向了“蓄意的、基于执行落地的移动”。其核心发现是,模型不仅学习了“改变什么”,还学习了在行为空间中“移动多远”。尽管结果显示在校准和搜索效率方面有显著提升,但作者对上尾部性能的泛化性保持谨慎,指出外层循环模式(如 MAP-Elites 与 ( μ , λ ) (\mu, \lambda) ( μ , λ ) -ES)是异质的,且实验并未完全隔离存档记忆在保持结构化探索中的作用。
这项工作证明,通过 oDPO 将行为位移引入语言模型进行条件化,可以创建一个可靠的序数控制机制,从而实现比传统语法算子或无条件语言模型更高效的程序空间探索。
每周获取最佳 machine learning 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。