我让三个 AI 互相竞争进化,两天后它们发明了一个我看不懂的算法

0 阅读13分钟

一个本科生 + Claude,48 小时从零搭建 AI 自进化系统。从最基础的记忆检索算法开始,让 qwen3.5:9b、DeepSeek、GPT-5.4 三个模型互相竞争进化。两小时后,它们自己发明了一个融合 70 年优化理论的算法——准确率从 26% 飙到 92%。


blog-cover.png

起因:一个月的认知碎片,被 AI 串成了一条线

这个项目最有趣的地方是——核心灵感不是我想到的,是 AI 从我的知识库里自动链接出来的。

从 2 月开始,我陆陆续续在个人知识库里写认知科学的概念卡片。都是零散的思考,没有明确目标:

  • 2 月 19 日:多层有损压缩 — "大模型压缩的不是意识本身,而是意识经过多层有损压缩后的产物"
  • 2 月 24 日:没有前额叶的皮层 — "当前 AI 像一个没有前额叶的大脑,推理强但缺少执行控制"
  • 3 月 9 日:可行动状态 — "认知的终点不是抽象真理,是把现实压成'现在该怎么做'"
  • 3 月 11 日:外置工作记忆 — "AI 的上下文窗口就是它的工作记忆,关了就没了"
  • 3 月 13 日:主动遗忘 — "遗忘不是 bug,是压缩的必然代价"

写了将近一个月,大概 30 多张卡片。它们之间有一些 [[链接]],但没有形成完整的体系。

然后 3 月 15 日,我对 Claude 说了一句话: "我想做一个记忆系统,你先看看我的知识库。"

Claude 读完了所有卡片后,把我零散的认知碎片串联到了一篇我之前深入研究过的论文——Hope/Nested Learning(嵌套学习)(NeurIPS(顶级 AI 学术会议) 2025)。但它指向的不是我关注的部分(多时间尺度记忆),而是一个我没太在意的子模块。它说:

"你知识库里的'可行动状态'(记忆的目标是恢复到能干活的状态)+ '主动遗忘'(遗忘是压缩的副产品)+ '外置工作记忆'(AI 需要持久记忆)→ 和这篇论文里的在线学习算法(一种能边用边学的算法,原名 DGD / Delta Gradient Descent)完美契合。它可以在线更新一个关联记忆矩阵,越用越准,还自带遗忘机制。你可以把它做成 LLM 的记忆假肢。"

那一天我一口气写了 4 张新卡片:记忆假肢、记忆与图书馆、前意识激活层、Hope 记忆外挂。 这不是我一个人想到的,是我的知识库(一种记忆假肢)帮我产出了做记忆假肢的想法。某种意义上,这个项目的存在本身就证明了记忆系统的价值。

其实更早之前,我为了理解 Nested Learning(嵌套学习)论文,从零手搓了一个 Mini-GPT 并复现了 Hope 架构。当时我关注的是多时间尺度记忆,没怎么注意在线学习算法。是 AI 读了我的知识库后,把它单独拎出来,和我的认知理论对接上的。 我写了一个月的卡片,AI 用 30 秒找到了我忽略的那个模块。

于是 meomory(me + memory,打错留下的名字)项目诞生了。

原始算法长什么样

核心思路很简单:在向量检索前面加一个"学习层"。

普通检索: query → 和所有记忆比相似度 → 返回最像的
我们的:   query → M 矩阵变换 → 变换后的 query → 比相似度 → 返回最像的
                    ↑
              每次反馈后更新 M
              "上次这个问题应该找那条记忆"

M 是一个 256×256 的权重矩阵,初始是单位矩阵(不做任何变换)。每次检索后:

  1. 拿到反馈:"这次找对了吗?正确答案是哪条?"
  2. 算误差:M 变换后的 query 离正确答案有多远
  3. 更新 M:让下次同类 query 的变换结果更靠近正确答案

用公式说就是:M = M - 学习率 × 误差 × query。这就是在线学习算法(DGD)的核心——一行更新规则,15 行代码。

搭了原型,跑了 65 个实验、2446 道题。结果:向量检索起点 22.4% ,加上手写的在线学习算法后 32.8%

如果你对背后的认知科学思考感兴趣,我的知识库在这里:cognitive-network。47 张概念卡片,从"多层有损压缩"到"代码自然生长",记录了这整条思考链。

有提升,但还不够。于是我想:能不能让 AI 自己进化出更好的?

第一次进化:提示词

在进化算法本身之前,我先拿一个更简单的目标练手——进化"判断提示词"(Judge prompt)。

在线学习算法需要反馈信号来学习。理想情况下有人告诉它"这次检索对了还是错了",但实际部署中没有人盯着。所以我用了一个 LLM 当"裁判"——让它判断检索出的记忆片段是否真的被 AI 用到了。

问题是:这个裁判自己也不太准。手写的裁判提示词只有 28.9% 的准确率——将近七成的判断是错的,喂给在线学习算法的反馈大部分是噪声。

于是我用遗传算法(GA)进化裁判提示词——10 个候选提示词,每代交叉变异,15 代淘汰。跑了两组实验:

V1:问"AI 用了哪条记忆?"

  • 28.9% → 66.7% (15 代)

V2:换个问法——"哪条记忆和答案相关?"

  • 起步就 78.6% → 最终 90.9%

V2 换了个问题就直接超过了 V1 的终点。 这给了我一个重要教训:评测目标比进化策略更重要。 你问对了问题,比你怎么优化更关键。

进化出的最优裁判提示词自动生成了 7 条严格的判断规则("必须包含具体事实"、"单条记忆就能回答"、"话题相关不算"等),比我手写的 4 条模糊规则精准得多。

有了 90.9% 的裁判准确率,在线学习算法的反馈信号质量大幅提高。但我想走得更远——不只是进化提示词,直接进化算法本身。

搭建自进化系统

灵感来自 Google 的 AI 进化框架 FunSearch——用 LLM 生成代码变体,自动评测,保留最好的,循环进化。

我花了一天搭了一个类似的系统,但做了几个不同的设计:

1. 三模型混合

不是单模型进化,而是让三个不同的 AI 同时参与:

模型角色占比
qwen3.5:9b(本地)量产探索者——生成大量变体60%
DeepSeek(API)精细优化者——在好的基础上改进30%
GPT-5.4(API)创新尖兵——偶尔产出全新策略10%

2. 进化整个类,不是单个函数

一开始只让 AI 改 update 规则(15 行代码),很快就卡住了。后来扩展到进化整个 AssociativeMemory(关联记忆)类——AI 可以自由发明新的数据结构、新的查询逻辑、新的学习规则。搜索空间大了几个数量级。

3. 群岛模型

5 个"岛"各自独立进化,定期淘汰最弱的岛,用最强岛的算法重新播种。保持多样性的同时集中优势。

然后部署到服务器上,无限循环,挂着跑。

两小时发生了什么

16:08  启动。基线算法 26.8%。
16:20  GPT-5.4 第一击:61.2%。发明了 32 槽记忆缓存 + 门控融合。
16:40  9b 反超:72.4%。更简单但更有效——零初始化 + 赫布学习规则(Hebbian)强化 + 动量(Momentum)。
17:30  DeepSeek 逆袭:79.4%。在 9b 的基础上加了 Adam 优化器(Adam optimizer)。
18:00  GPT-5.4 再次突破:87.6%。加了输入归一化(BatchNorm)+ bias + gain。

从 26.8% 到 87.6%,两小时,全自动。

它发明了什么

最终进化出的算法,说实话我第一眼没看懂。拆开后发现它是一个迷你神经网络层

输入 key
  ↓
减均值、除方差、L2归一化、去中心化    ← 相当于 BatchNorm(输入归一化)
  ↓
M @ key + bias                       ← 相当于 nn.Linear(线性变换层)
  ↓
× gain × row_scale                   ← 相当于 LayerNorm(层归一化)
  ↓
输出

更离谱的是学习规则——它融合了:

  • 赫布学习规则(1949 年,看到什么就记什么,最基础的学习法则):强化正确关联
  • 维德罗-霍夫规则(1960 年发明的误差纠正法则):纠正错误
  • 动量(1980 年代,让学习有惯性,不会因为一次错误就大幅偏转):平滑学习方向
  • Adam 优化器(2014 年,深度学习领域最常用的学习加速器):自适应学习率(每个参数按自己的节奏调整学习速度)
  • 输入归一化(2015 年,统一数据的量级,防止大小不一干扰学习):让输入更稳定

LLM 在没有被告知"神经网络"的情况下,独立进化出了一个神经网络层的结构。

而且进化还在持续。写这篇文章的时候,服务器上的进化仍在跑。最新的冠军(88.4%)又加了新东西:历史查询缓存(相同问题直接返回)、历史相似度加权检索(类似近邻检索)、反向记忆项(主动弱化过度强化的关联)、自适应学习率。

最讽刺的是参数 α 的三次反转:

我之前在 1976 道题上做了严格的参数搜索,结论斩钉截铁——α<1.0 必死:

α准确率(P@1,第一个找到的结果就是正确答案的概率;标准赫布学习规则,1976 题)
0.901.3%
0.951.1% ← 死亡谷
0.991.1%
1.026.6% ← 唯一能用

然后进化开始一步步推翻这个"铁证":

阶段α 值准确率发生了什么
大规模实验0.951.1%"铁证:α<1.0 是死亡谷"
第一次进化0.99987.6%"加了 Adam 优化器 + 输入归一化后 0.999 反而最优?"
最新进化0.9588.4%"死亡谷的中心值,配合自适应学习率 + 正则化变成了最优解"

同一个参数值(0.95),在简单算法里是死亡谷,在进化出的复杂算法里是最优解。 AI 没有"之前试过不行"的认知包袱——它不知道我们证明过 0.95 会崩,所以它毫无心理障碍地试了,而且成功了。

跨数据集验证

最关键的问题:这是过拟合还是真泛化?

进化用的是 LoCoMo 数据集(500 题)。我拿进化出的算法直接跑了一个它从没见过的数据集——LongMemEval(470 题,ICLR(顶级 AI 学术会议) 2025 benchmark):

方法LoCoMo (1976 题)LongMemEval (470 题)
向量相似度起点22.4%41.7%
BM25 关键词匹配30.9%48.3%
手写在线学习算法 10 轮32.8%56.0%
AI 进化版 10 轮49.5%92.3%

在从没见过的数据上,92.3%。 接近 Hindsight+TEMPR(91.4%)和 EverMemOS(93.0%)等当前最强系统——而那些系统用的是 GPT-4o + 知识图谱 + 多策略融合。我们只用了一个 256×256 的矩阵。

更疯狂的是在 DialSim 小数据集上(BigBang Theory、Friends、The Office 三部美剧的对话记忆测试),10 轮学习后全部 100% 。Friends 这个数据集之前所有方法(包括手写在线学习算法)最高只有 41.7%。

学习曲线还没有饱和——LoCoMo 全量 1976 题上,20 轮达到 53.3%,还在涨:

 1 轮: 23.1%  ← 冷启动,什么都不会
 3 轮: 38.7%  ← 已超过 BM25 关键词搜索
 5 轮: 44.2%
10 轮: 49.5%
20 轮: 53.3%  ← 还没到顶

三个模型各自的贡献

回看进化谱系,三个模型形成了一条"食物链":

GPT-5.4 首先打开突破口(61.2%)9b 靠量发现更简洁的策略(72.4%)
    → DeepSeek 在 9b 基础上精细优化(79.4%)
      → GPT-5.4 把 DeepSeek 和自己的结果杂交(87.6%)

最终的 87.6% 算法,它的两个 parent 分别来自 DeepSeek(79.4%)和 GPT-5.4(76.8%)。没有任何单一模型能独自达到这个结果。

踩坑:进化也会骗你

进化不是万能的。写这篇文章的过程中,我亲眼看到进化"骗"了我一次。

500 题上分数从 87.6% 涨到 88.4%,看起来是进步。但我之前加了一个机制——每次出现新纪录自动在全量 1976 题上验证。结果:

算法500 题全量 1976 题
旧冠军87.6%49.5%
新冠军88.4%30.1% ← 暴跌

500 题上"进步"了 0.8,全量上退步了 19。 新算法只是记住了这 500 题的特征。

解决方案:每次迭代随机抽不同的 500 题评测。同一个算法每次面对不同的题目——想过拟合也没有固定目标可以拟合。

教训:进化和训练神经网络一样会过拟合。但好处是——你能看到进化出的代码,能理解它在做什么,能设计机制抓住它。

能在真实环境下工作吗

以上所有实验都用的是完美反馈(100% 准确的"正确答案")。但真实部署中没有完美反馈——我们进化出的裁判提示词有 90% 准确率,意味着每 10 次反馈有 1 次是错的。

如果算法只能在完美反馈下工作,就没法用。所以我模拟了不同噪声水平:

反馈准确率准确率下降
100%(完美)87.4%
95%87.2%-0.2
90%(我们的裁判)87.0%-0.4
80%86.2%-1.2
70%85.4%-2.0
50%(纯猜)73.0%-14.4

90% 反馈下只掉了 0.4 个百分点。 即使反馈有 30% 是错的(70% 准确率),准确率还有 85.4%。算法内置的动量机制自动平滑了错误反馈——一次错误不会让它偏转太多。

这意味着:进化出的裁判提示词(90.9%)+ 进化出的检索算法 = 可以直接部署

这意味着什么

技术上:我们证明了 LLM 通过进化搜索,能在特定领域发现超越人类手工设计的算法。不是"更快",是"不同"——它会尝试人类因认知偏见而排除的方案。

实用上:这个进化出的算法是一个可插拔的检索增强层。接入任何现有的记忆系统(Mem0、Zep、LangChain),在后面加一层重排序,检索准确率立刻提升。而且它会在线学习——越用越准。

更大的图景:进化框架本身是通用的。只要你能定义"什么是好的"(评测函数),AI 就能自动进化出最优的代码。排序算法、推荐策略、检索逻辑、任何能写成代码且能自动评测的东西,都可以用这个方法。

代码

完整代码在 GitHub:github.com/Fzhiyu1/meo…

  • src/funsearch/ — 进化框架(群岛模型 + 多模型 + 沙箱)
  • src/evolution/ — Prompt 进化
  • src/mem0_integration/ — Mem0 集成插件
  • experiments/funsearch-v4/best.json — 进化出的最优算法

服务器上的进化还在跑。如果你感兴趣,star 一下,我会持续更新结果。


作者:方治宇 | 双非本科大四在读 | 2026.03.17 工具:Claude Code (Opus 4.6) + DeepSeek + qwen3.5:9b + GPT-5.4 致谢:Google 的 AI 进化框架 FunSearch 论文提供了核心灵感