模型自动进化¶
该功能面向“已有一个可训练系统,希望围绕一段自然语言方向持续做实验”的场景。 当前可进化推荐模型、micro‑LLM、后训练 recipe 和 Agent policy。 当前还支持固定真实 checkpoint 的 test-time compute 进化。
后训练 genome 中,算法、数据 recipe、teacher、rollout、学习率、group size 和 steps
会真实改变当前 numpy candidate-policy evaluator;gradient_accumulation 与
mixed_precision 是面向真实 checkpoint runner 的 promotion contract,在该轻量 evaluator
里只被组合、记录和导出,不会被伪装成已产生数值作用。候选晋级到 checkpoint runner 后,
这两个系统轴才参与实际训练与显存/吞吐比较。
候选有明确来源,未经审核的代码不会直接执行
真正参加训练的结构和算法,都已经在本仓库实现并通过测试。运行时可以联网
搜索最新论文,但新搜到且尚未实现的论文只作为 evidence-only 证据保存,不会
自动变成可执行代码。系统所谓“进化”,主要是在已注册 provider 和已审核算子之间
做公平消融、组合和超参数变异,并根据 validation 结果继续下一轮。生成的新插件
必须经过隔离测试和人工批准,才能晋级为可执行算子。
候选到底从哪里来¶
一次 evolve 会同时出现四类内容,它们的含义不同:
| 页面或报告中的内容 | 来源 | 会不会训练 | 是否属于系统自己创新 |
|---|---|---|---|
installed-paper |
论文已经被本项目实现,并登记论文 ID → 本地算子映射 | 会 | 否,是论文机制的本地实现 |
retrieved-paper |
按 --direction 实时检索;离线时使用内置证据 |
不会 | 否,只是研究证据和后续实现候选 |
generated-combination |
控制器组合已实现结构、数据 recipe、后训练/Agent 组件或参数 | 会 | 是新的工程实验假设 |
novel-proposal |
从论文规格或失败轨迹形成、尚未通过插件晋级流程的假设 | 不会 | 可能是新假设,但不能在审核前执行 |
可执行能力通过 EvolutionProvider 注册。一个 provider 声明可用数据集、论文检索领域、
初始 genome 和 evaluator,因此新增模型不再修改统一代际控制器或 CLI 大分支。
所以,自然语言 --direction 有两个作用:
- 生成论文检索词,记录与方向相关的新证据;
- 从已实现算子中提高相关候选的优先级、约束组合空间。
它不会把论文 PDF 翻译成 Python,也不会让模型自由生成代码后直接训练。若实时发现的 论文值得采用,需要先完成“本地实现 → 单元/最小训练测试 → 论文 ID 映射”,下次 evolve 才能执行它。
一个具体例子¶
假设输入:
系统实际做的是:
- 在线搜索与 LONGER、UniMixer、efficient Transformer 相关的论文;离线模式则读取 内置清单。
- 识别到 LONGER 和 UniMixer 已有本地实现,因此开放
rankmixer_longer、rankmixer_unimixer和经过编码测试的组合rankmixer_longer_unimixer。 - 对仅在网上找到、但没有本地算子映射的论文标记
evidence-only。 - 第一轮保持训练预算和超参数一致,只比较结构;后续轮围绕 validation 冠军搜索 层数、维度、学习率、优化器和 batch size。
- 全部轮次结束后,才在隔离 test 上比较初始基线与最终冠军。
这意味着组合结构是仓库中明确实现的工程假设,不是把两个论文名字拼在配置里。
最短操作路径¶
# 1. 在仓库根目录安装命令
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[neural-recs]'
# 2. 先跑帮助,确认可用参数
auto-research evolve --help
# 3. 跑一个可在本地完成的推荐实验
auto-research evolve \
--model rankmixer \
--dataset movielens-100k \
--direction "比较 LONGER、UniMixer 及其组合" \
--generations 3 --population 4 --workers 2 \
--steps 100 --papers 8 --seeds 42
运行完成后先打开:
其中“论文证据”会明确显示本地算子或 evidence-only;实验表中的“来源”会区分
论文算子、白名单组合/调参和初始基线。report.md 适合代码审查,result.json
保存完整配置与父子关系。
若希望确认没有运行时联网检索,可加 --offline。这不会禁用已实现算子,只会停止
在线论文搜索和数据下载;所需数据必须已经在本地缓存。
完整流程¶
中断恢复、GPU 资源与稳健晋级¶
每个 trial 完成后都会原子更新 result.json。中断后可从原运行目录继续:
auto-research evolve \
--model rankmixer --dataset movielens-1m \
--direction "继续上一轮高效结构研究" \
--generations 5 --resume runs/evolution/rankmixer-20260809-120000
--retries 控制失败 trial 的重试次数;CUDA 下 --gpu-slots 表示真正可并发的独立
GPU 槽位数;--gpu-memory-per-trial-mb 还会根据启动时的可用显存收紧并发数。
生产 evaluator 的每个 trial 都在独立进程运行,--trial-timeout-seconds 到期会真正
终止进程,而不只是把仍在后台运行的任务标记失败。冠军按照
fitness - z × standard_error 排序;当 evaluator 提供 fitness_std 时,
--confidence-z 会惩罚高方差候选。正式结论建议使用:
单 seed 仍可用于 smoke,但不满足稳定提升声明条件。
真实 checkpoint 的推理预算进化¶
reasoning-checkpoint 固定使用公开 causal LM revision,只搜索推理侧 genome:采样数、最大
生成 token 与共识早停阈值。它不会读取 gold answer 选择候选;答案由 self-consistency
多数表决决定,gold 只在决定后计算准确率。每个 trial 同时记录 accuracy、生成 token、
延迟、模型调用数和估算调用成本,selection 对 token 消耗施加小惩罚。
auto-research evolve \
--model reasoning-checkpoint \
--dataset gsm8k-generate \
--direction "搜索 1/2/4/8 次采样、verifier 和动态停止预算" \
--generations 2 --population 4 \
--maximum-examples 64 --seeds 42,43,44 \
--device cuda
默认 checkpoint 是 HuggingFaceTB/SmolLM2-135M-Instruct,revision 固定为 40 位 commit。
离线开发机可用 --reasoning-checkpoint-path 指向已经下载的 snapshot。预算变化发生在
validation;冠军选定后才进入隔离 test。
新论文算子的安全晋级¶
实时检索论文首先只是 retrieved-paper。若外部研究代理生成候选实现,需要提供一个
包含来源论文、provider、文件白名单和验证命令的 JSON spec,然后经过三步:
auto-research candidate stage --spec candidate.json
auto-research candidate verify --id paper-op --timeout 300
auto-research candidate promote --id paper-op \
--destination src/auto_research/evolution/plugins/paper_op --approve
候选先写入 .auto-research/candidates/,路径、文件类型和单文件大小均受限制;验证结果
单独留档。最后一步必须显式传入 --approve,且只能写入仓库内尚不存在的目录。
这提供了“论文 → 结构化候选 → 隔离验证 → 人工批准 → 正式注册”的基础链路,
但不会把未审代码自动放进训练主进程。
也可以让一次 evolve 自动调用外部候选生成器:
auto-research evolve ... \
--candidate-generator-command "python tools/design_candidate.py" \
--candidate-timeout-seconds 300
控制器会先写出 paper-candidates.json(包含论文来源、实现状态、接口约束和禁止声明),
再把该路径作为生成器最后一个参数。生成器输出 CandidatePluginSpec JSON;自动路径
拒绝生成器自带的执行命令,只做语法检查,且产物不会自动 promote 或参加当前轮训练。这个边界保证“网上新论文”
和“已经可执行的论文算子”在报告中不会混淆。
flowchart LR
A[基础模型 + 完整数据集 + 调研方向] --> B[方向转成检索词和结构约束]
B --> C[实时论文 / 内置论文证据]
C --> D{已有本地算子映射?}
D -- 否 --> X[evidence-only 留档]
D -- 是 --> E[已审计算子 + 超参数 Genome]
E --> F[训练并评估 Validation]
F --> G[并行实验与失败留档]
G --> H{达到设定代数?}
H -- 否 --> I[围绕冠军继续变异]
I --> F
H -- 是 --> J[基线与冠军最终 Test]
J --> K[JSON + Markdown + HTML 研究看板]
结构与普通参数在同一个 genome 中共同搜索:
architecture, dimensions, layers, learning_rate, optimizer,
batch_size, experts, interval_residual, auxiliary_weight
每个 trial 保存 generation、parent_id、论文来源、变异理由、validation 指标、训练 loss、参数量和耗时,因此可以完整回溯模型如何演化。
可执行论文算子示例:RankMixer¶
| 论文 | 内置结构 | 实际加入当前网络的机制 |
|---|---|---|
| RankMixer | rankmixer_smoe |
parameter-free token mixing、per-token FFN、ReLU routed MoE |
| TokenMixer-Large | tokenmixer_large |
mixing-reverting、per-token SwiGLU、interval residual、middle auxiliary head |
| Zenith | zenith |
Prime Token RSA Fusion 与 tokenwise SwiGLU Token Boost |
| MOI-Mixer | moi_mixer |
一阶线性项与二阶显式交互 channel mixing |
| WHALE | rankmixer_whale |
Wukong 乘性交互、causal attention 与门控 HSTU 更新 |
| TMallGS | rankmixer_tmallgs |
field-wise QKV、噪声门控、token-specific SwiGLU 与 progressive auxiliary loss |
| Long-History User Transformers | rankmixer_long_history |
异步全历史 encoder 的缓存状态与轻量近期序列融合 |
| RAMP | rankmixer_ramp |
个性化/公共双路径、feature availability mask、受限路径监督与 prediction alignment |
| TokenMinds | rankmixer_tokenminds |
从历史物品分层 SID 聚合用户 token,并通过可学习安全门控注入 RankMixer 用户表示 |
| HA-MoE | rankmixer_ha_moe |
依据样本异构性动态路由专长 expert |
| Dual-purpose SID | rankmixer_dual_sid |
分层 SID 同时提供协同身份与内容语义 token |
| MFLI | rankmixer_mfli |
以多切面可学习 code 表示检索空间 |
| Kunlun | rankmixer_kunlun |
GDPA 门控、交互 block 与 CompSkip |
| ULTRA-HSTU | rankmixer_ultra_hstu |
semi-local attention、landmark summary 与 Mixture of Transducers |
AgenticRecTune 不伪装成单一网络结构;其 Actor–Critic–SkillHub 闭环对应本项目统一多轮控制器,独立 adapter agentic-rec-tune 会输出完整 generation trace,可作为 evolve 控制策略的回归样例。
这张表中的结构都已经存在于仓库源码中。在线 arXiv 检索仍会返回其他相关论文,但
只有已映射并经过 shape/训练测试的结构才能进入 population;其余论文保留为
evidence-only。
Gzip-guided Sparse Attention 已有独立的 byte-level 可执行 adapter,但当前
micro-llm evolve 使用 BPE token。为避免把 token ID 截断成 bytes 后伪称论文实现,
它目前以 evidence-only 进入调研记录;后续增加 byte-level evolve backend 后再映射为
可变异结构。
安装命令¶
auto-research 是本项目安装后生成的命令,不是另一个需要单独下载的软件。第一次使用时,在仓库根目录执行:
cd /path/to/auto-research
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
python -m pip install -e '.[neural-recs]'
确认安装成功:
-e 是可编辑安装,修改或更新项目源码后通常无需重新安装。新开一个终端后,需要重新激活虚拟环境:
如果不想激活环境,可直接使用完整路径:
只有 pyproject.toml 中的依赖发生变化时,才需要重新执行安装命令。
方向驱动的使用方式¶
auto-research evolve \
--model rankmixer \
--dataset movielens-1m \
--direction "把 LONGER、UniMixer 及相关高效 Transformer 结构加入 RankMixer,比较长序列压缩、可学习 token mixing 及其组合" \
--generations 3 \
--population 6 \
--workers 3 \
--steps 300 \
--papers 8 \
--seeds 42,43,44
默认启用 --benchmark-suite public,但默认仍以总体主指标
--fitness-metric primary 晋级,保证升级前后和既有实验口径一致。如果研究目标强调跨切片稳定性,可以显式选择:
auto-research evolve \
--model rankmixer \
--dataset movielens-1m \
--direction "比较 WHALE、TMallGS、长历史缓存和 RAMP 的稳健性" \
--benchmark-suite public \
--fitness-metric public_composite \
--generations 3 --population 6 --workers 3 --steps 300
公共评测套件¶
evolve 把评测和训练算子分开。core 只执行原有主任务;public
在同一个固定 validation cohort 上增加可复核的公共切片,并把所有分项写入
result.json、Markdown 和 HTML。所有晋级仍只读取 validation,最终 test 只比较
初始基线与冠军。
推荐模型¶
MovieLens 的 public suite 包含:
| 切片 | 回答的问题 |
|---|---|
overall |
完整固定 cohort 上的 Hit@10、NDCG@10、头部占比和平均流行度 |
long_history |
历史长度位于上四分位的用户,检查长序列结构是否真正受益 |
tail_target |
validation/test 目标物品流行度不高于中位数,检查长尾退化 |
recent_only |
仅保留最近 4 个行为,检查对短上下文的鲁棒性 |
restricted_features |
RankMixer 公共特征路径,检查个性化特征不可用时的退化 |
public_composite 是这些切片 NDCG@10 的等权平均。它不是线上业务指标,也不把
不同论文原始 A/B 数字混成一个分数;其用途是让 evolve 不会只追逐总体
NDCG 而忽略长尾、长历史或受限输入。
需要对齐统一序列建模与特征交互研究时,可启用 UniRank 兼容套件:
auto-research evolve \
--model rankmixer \
--dataset movielens-1m \
--direction "统一序列建模与特征交互" \
--benchmark-suite unirank \
--fitness-metric unirank_composite
它在上述切片之外增加 chronological pointwise AUC/logloss,并用
0.5 × NDCG@10 + 0.5 × AUC 进行 validation 选型。完整大规模结论仍应在
UniRank 官方五数据集实现上复核。
语言模型¶
micro-LLM 的 public suite 保留 WikiText-2 PPL 与 Alpaca instruction loss,并增加:
| 能力切片 | 数据与指标 |
|---|---|
| response preference | Stanford Alpaca held-out 指令;正确回答与确定性截断/乱序负例的 accuracy、pairwise loss |
| reasoning candidate ranking | 官方 GSM8K held-out;gold answer 与 7 个确定性数值干扰项的 candidate Pass@1、NLL |
public_composite 选择分数为
-(LM loss + 0.15 × instruction loss + 0.10 × preference loss + 0.05 × reasoning NLL);
primary 则保持原来的 -(LM loss + 0.15 × instruction loss)。这两个公共切片是
适合小模型本地多轮实验的固定、可重复评测,不等同于完整的开放式生成
AlpacaEval 或 GSM8K exact-match。
两条轨道的最小真实训练 smoke 指标保存在
evolution/public-suite-smoke-seed42.json。
它验证四个推荐结构、两个 LLM 后训练方法以及所有公共切片能够完整跑通;该文件
明确记录了极小数据/训练预算,不能当作论文复现结果或模型能力排名。
基础模型也可以换成 HyFormer:
auto-research evolve \
--model hyformer \
--dataset movielens-1m \
--direction "引入 LONGER 的长序列压缩和 UniMixer 的参数化 mixing,升级高效 Transformer" \
--generations 3 --population 6 --workers 3 --steps 300
LLM 自动进化¶
micro-llm 是可在 Mac、Linux GPU 和 Linux CPU 训练的 decoder-only Transformer。默认配置约 1200 万至 1600 万参数(具体取决于结构),使用 4K 本地 BPE、384 hidden size、6 layers 和 128 context;这些都可通过 CLI 缩放。它不是为了冒充生产大模型,而是让结构、数据配比和后训练方法能够真实训练、比较和迭代。
python -m pip install -e '.[llm-evolution]'
auto-research evolve \
--model micro-llm \
--dataset wikitext-2 \
--direction "调研高效 LLM 结构、训练数据配比和 SFT/NEFTune 后训练方法" \
--generations 3 \
--population 6 \
--workers 1 \
--steps 300 \
--papers 8 \
--seeds 42
所有 evolve 模型共用 --device auto|cpu|mps|cuda|cuda:<index>;Linux CPU 还可传 --cpu-threads。安装、CUDA 选择与多卡隔离见运行环境指南。
三轮默认分工:
- 结构轮:GPT baseline、GQA、LLaMA-style RMSNorm/RoPE/SwiGLU、parallel attention/FFN、Möbius RoPE、Naju、Native Sparse Attention、Gated Attention,以及 AdaDSF 的 dense calibration → Top-K token routing → feature alignment;数据和训练预算保持不变。NSA 与 Gated Attention 还可组合为
nsa_gated_attention。Windowed-MTP 属于训练后的 serving 优化,通过独立 reproduction adapter 评测,不用 PPL 伪装成结构收益。 - 数据轮:WikiText-only、WikiText + Tiny Shakespeare narrative mixture、从 narrative 向 WikiText 退火的 curriculum;冻结冠军结构。
- 后训练轮:普通 SFT、低学习率 SFT、NEFTune,以及
dynamic_rubric(动态 rubric evaluator 与策略协同更新)和off_context_grpo(特权信息采样、group-relative advantage、importance-ratio 校正);使用 Stanford Alpaca/GSM8K 公共训练切片并冻结预训练配方。
当 --generations 大于 3 时,后续轮次会继续搜索 hidden size、层数、学习率、优化器(含 Muon)、batch size 和 context length;结构与优化器是独立 genome 轴,因此 NSA/Gated Attention 可继续与 Muon 组合;每个候选仍继承上一轮冠军,形成可追溯的多轮进化链。
2025 P0 的 WikiText-2 同预算对照中,NSA / Gated Attention 的 PPL 分别相对 LLaMA baseline 变化 -3.17% / -0.72%;Muon 在未调参的 30-step 默认学习率下为 +5.61%(更差)。四轮组合 evolve 的结构轮中 NSA 是三个结构候选里最好,但没有击败当前 GPT baseline;后续 SFT 与 hidden-size 搜索获得最终冠军。完整稳定摘要见 evolution/llm-p0-2025-wikitext2-seed42.json,负结果被保留。
选择目标为 WikiText validation loss + 0.15 × instruction validation loss。WikiText test 和最终冠军只在三轮结束后评估。默认使用完整 WikiText-2 train;--maximum-train-tokens 仅用于 smoke test。
本地诊断实验¶
为了验证整条链路,Mac MPS 上用 0.54M 参数、40 pretraining steps、24 post-training steps、seed 42 跑了三轮,每轮 4 个候选:
| 阶段 | 当轮观察 |
|---|---|
| 结构 | parallel_gelu 胜出;matched-budget validation PPL 447.469,略优于 GPT baseline 449.032 |
| 数据 | WikiText-only 胜出;混入 10%/20%/35% narrative 会改善少量 instruction loss,但使 WikiText PPL 变差 |
| 后训练 | 普通 SFT 胜出;优于低学习率 SFT 和本轮 NEFTune alpha 5/10 |
最终隔离 test PPL 从 416.134 降到 405.328(-2.60%),instruction validation loss 从 6.3804 降到 6.2309。这只是单 seed、极小预算的系统诊断,不能外推到默认 12M+ 模型或标准大模型能力;稳定事实记录见 evolution/micro-llm-wikitext2-diagnostic-seed42.json。
每一代的候选会并行执行。macOS 上多 worker 使用独立进程,避免多个实验共享随机数状态或模型;每个实验仍保持相同 split、seed 和训练预算。完整过程写入:
result.json:机器可读的论文、配置、父子关系、指标、失败原因和每轮决策。report.md:适合代码审查和长期归档的中文研究报告。index.html:无需服务即可打开的响应式研究看板,展示效果、假设、观察和下一轮决策。
第一轮是公平结构消融:所有候选继承基础模型的相同超参数,只改变结构。第二轮起才围绕上一轮冠军分别调整层数、维度、学习率、优化器和 batch size,避免把结构收益和调参收益混在一起。
后训练与 Agent 的组合式 genome¶
独立的 post-train / agent-eval 命令适合复现单个算法;需要多轮自动比较与组合时,直接使用统一的 evolve 控制器。两类任务都与推荐、micro-LLM 共用父子关系、validation 晋级、隔离 test、并行 workers、研究记忆以及 JSON/Markdown/HTML 看板。
后训练 genome 同时搜索数据配方、objective、teacher 模式、rollout 来源、learning rate、
group size、训练步数、gradient accumulation 与 precision。每个子代继承父代的其余轴,
因此可以逐轮形成 公开数据 × objective × teacher × rollout × 系统参数 的组合,而不是
只在一张算法名称列表中切换:
auto-research evolve \
--model post-training \
--dataset arithmetic-smoke \
--direction "比较 GRPO、DPO、OPD,并联合搜索数据、teacher、rollout 与系统参数" \
--generations 3 --population 6 --workers 3 \
--steps 100 --maximum-examples 512 --seeds 42,43,44
Agent genome 把 memory、planner、tool policy、critic、可训练 policy、failure recovery 和 memory capacity 作为独立可组合轴。第一轮做单组件公平消融,后续轮次围绕冠军组合; 报告单独记录跨 episode policy/memory 复用、恢复尝试、恢复成功率和 transition credit:
auto-research evolve \
--model agent \
--dataset evomem-mini \
--direction "联合进化 U-Mem、ReAct、Toolformer、Agent Lightning policy 和 Reflexion recovery" \
--generations 3 --population 8 --workers 4 \
--agent-episodes 240 --seeds 42,43,44
生成式推荐使用独立 genrec provider。它在 MovieLens-1M 的真实保留 catalog 上训练
catalog-aware head,并且每次 validation/test 都做全目录排序,不用 sampled candidates
冒充全库效果。可组合轴包括 recent/full/长历史压缩 context、ID/semantic/hybrid catalog
head、uniform/novelty/content-discovery reward,以及 popularity/semantic teacher distillation:
auto-research evolve \
--model genrec \
--dataset movielens-1m \
--direction "组合 Netflix GenRec、JD GenRec 与 OxygenREC-v2 的 context、reward 和蒸馏" \
--generations 3 --population 8 --workers 3 \
--steps 100 --seeds 42,43,44
基线固定为 recent context + ID catalog + uniform CE;晋级分数为全目录
NDCG@10 - 0.02 × head-share@10。这是公开 MovieLens 上的缩小模型研究,不复刻公司私有
LLM、reward model、长期满意度标签或线上服务,也不会把 Netflix 自动置顶。
上述 mini-suite/缩小模型用于验证自动研究机制和组合归因,不代表生产级开放式 LLM/Agent/推荐能力。完整 genome、负结果、每轮假设与选择原因都会写入结果;checkpoint 仍不提交。
三 seed 证据晋级¶
重点方法用统一的可恢复 runner 从机制验证晋级为三 seed 证据。默认覆盖 RankMixer、 Switch Transformer、GRPO 和 Agent Lightning;也可显式替换目标:
auto-research promote-evidence \
--dataset-dir data \
--seeds 42,43,44 \
--adapters rankmixer,switch-transformer \
--post-training grpo \
--agent-methods agent-lightning
state.json 在每个 target/seed 后原子更新;中断后重复命令只补缺失项。失败 seed 作为
终态写入 metrics.json 和报告,不会导致其他目标消失;排除环境问题后可显式传入
--retry-failed 重跑失败项,原失败尝试仍保留在历史中。只有至少三个成功 seed 才写
formal_comparison=true,同时生成均值、样本标准差和 95% 置信区间;否则明确禁止稳定
提升声明。
真实 checkpoint 产物也可以作为下一轮候选的提案先验,但不能把旧指标直接当作新 fitness:
auto-research evolve --model agent --dataset toolroute-l2.1 \
--direction "继续验证 Agent Lightning policy" \
--checkpoint-evidence docs/experiments/a100-promotion/agent-lightning-seeds42-44.json \
--generations 3 --population 8 --seeds 42,43,44
auto-research evolve --model post-training --dataset arithmetic-smoke \
--direction "比较 DPO 与 ORPO" \
--checkpoint-evidence docs/experiments/a100-promotion/dpo-ultrafeedback-seeds42-44.json \
--checkpoint-evidence docs/experiments/a100-promotion/orpo-ultrafeedback-seeds42-44.json \
--generations 3 --population 6 --seeds 42,43,44
加载器只接受至少三个不同 seed 的统一指标产物;被晋级的方法只改变 proposal 顺序。
每个 genome 仍由当前数据、预算和 evaluator 从头评估,checkpoint 产物中的 accuracy、CKA
或 margin 永远不会复制到 fitness。来源、seed 与这条政策同时写入 research_memory,便于
看板审计。
2026-08-24 的本地三 seed 收口记录见
experiments/remaining-p1-20260824.json:GenRec
和 Agent evolve 均完成两代机制验证;RankMixer、Switch Transformer、GRPO 与 Agent
Lightning 四个代表目标完成三 seed 晋级。该文件保留缩步数、保留 catalog 和确定性
mini-suite 边界,不把工程 smoke 写成论文级结论。
2026-08-28 的真实 checkpoint 三 seed 晋级结果见 A100 高保真证据晋级。该轮 Agent joint success 和 DPO/ORPO preference accuracy 均未提升;多模态 CKA 与邻域重合率同样未提升。负结果仍可作为 “值得由统一 evaluator 复核”的候选来源,但不构成优先胜出证据。
数据规模¶
默认不再裁剪训练数据:MovieLens-100K 使用完整的 932 个有效用户和 1,682 个物品;MovieLens-1M 使用完整 leave-two-out 序列。为控制每个候选的全库排序成本,默认用固定且均匀覆盖的 1,000 用户 cohort 做 validation/test;传入 --evaluation-users 0 可评估全部用户。只有为了快速验证流程时,才显式传入 --maximum-users 和 --maximum-items。数据规模与评估 cohort 都会记录到报告中,避免把 smoke test 误写成正式实验。
| 推荐方向 | RankMixer 候选 | HyFormer 候选 | 实际机制 |
|---|---|---|---|
| LONGER | rankmixer_longer |
hyformer_longer |
分块 token merge、global interest、recent token 保留 |
| UniMixer | rankmixer_unimixer |
hyformer_unimixer |
可学习 token mixing 与逐 token channel mixing |
| 组合 | rankmixer_longer_unimixer |
hyformer_longer_unimixer |
同时验证长序列压缩与参数化 mixing 是否互补 |
早期小规模诊断记录¶
MovieLens-100K compact 使用 220 个用户、360 个物品,训练 40 steps;运行两代、每代三个子代、seed 42。
| 模型 | Validation NDCG@10 | Test Hit@10 | Test NDCG@10 |
|---|---|---|---|
| 初始 RankMixer dense | 0.00956 | 0.05000 | 0.02402 |
| 进化冠军:MOI-Mixer,1 层,batch 24 | 0.01335 | 0.07727 | 0.03864 |
冠军相对初始模型 validation NDCG +39.65%,最终隔离 test NDCG +60.87%。与此同时 head share 从 0.08864 上升到 0.14727,说明效果提升伴随更强的头部集中,不能只看单一主指标。
稳定指标见 evolution/rankmixer-movielens-2g3p-seed42.json。该结果是一次小预算功能验证,不等同于论文复现或多 seed 稳定结论。
评估纪律¶
- 初始模型和全部子代共享数据切分、候选全集、训练 steps 和 seed。
- 结构与参数晋级只能读取 validation;test 不参与任何一轮选择。
- 全部代际结束后,初始基线与冠军从头训练并各评估一次 test。
- 负结果和失败 trial 保留;不会为了“进化成功”删除落后结构。
- checkpoint、数据和原始 runs 不提交 Git,只保留复现命令和稳定标量。
后续扩展¶
增加新目标模型时,实现一个 evaluator:把 Genome 转成该模型配置,训练后返回统一 validation/test 指标。增加新论文结构时,在目标模型中实现独立 architecture operator,并补充论文 ID、方法摘要、shape 测试和最小训练测试。自然语言负责约束研究空间,不能直接生成并执行未经审计的任意代码。