ArchitectureIQ Meta-Model
预测训练设置结果的基模

日期:2026-07-18 · 快照:30 environments / 3 families / 10,000 rows / 5 seeds · 核心指标:macro significant three-choice accuracy(随机基线 33.33%)

目录动机 任务与数据 建模协议 实验结果 关键结论 边界与失败模式 下一步 复现步骤 产物索引

1. 动机:AI4AI 需要自己的 world model

训练一个模型很贵。如果有一个“世界模型”能预测 “给定一个训练 setting → 跑出来的 loss”,那么在真正消耗算力之前,就可以:

这对应一个更长期的方向:把科研建模成状态转移 config_t + action → config_{t+1},meta-model 学习这个转移/结果预测器。本实验是这条路线第一个可量化的闭环——预测“哪个 setting 更优”

本实验回答的问题:给定一批真实训练过的 (setting, 实测指标) 记录,一个 tabular 基模能把“三选一选出最优 setting”做到多准?哪些模型/协议有效?

2. 任务定义与数据

2.1 数据来自 ArchitectureIQ 的 GT 记录

所有 GT 都来自 执行生成的候选代码(spec → render .py → import & run → summary.json),不是并行逻辑重算。冻结快照:

Environments30 = 3 families × 10 dataset instances(univariate/multivariate regression, bigram LM)
Rows10,000 = 9,000 train + 1,000 locked validation
每候选 seeds5(目标取 log(mean_loss),mean 跨 5 seed)
每行内容一个 JSON-like training setting(model / optimizer / loss / batch_size / budget)+ 实测 log loss
特征维度122(full setting 展开 + dataset identity)

目标取 log(mean_loss) 而不是 raw loss:raw loss 跨 family/环境差 10+ 个数量级(multivariate 环境的 regret upper 从 0.44 到 4.1e11),只有 log 尺度可比较。

2.2 特征编码

FeatureEncoderfeature_set="full")把 setting 结构化展开:optimizer type × log10(lr) 交互项、weight_decay / momentum / betas、budget 的 log(total_samples_seen) / log(batch_size)、loss_id、模型架构展开(MLP:depth / log2(width) / 激活函数分布;Transformer:d_model / num_heads / num_layers)、体量特征 derived.log_total_params,以及 dataset identity 条件特征。

2.3 评测与显著性筛选

对每个 environment 内的全部行穷举 C(n,3) 三元组,模型对 3 个候选预测 loss、取 argmin 为预测 winner,与 GT winner 比较。只有通过完整显著性检验的三元组才计分:

条件默认值语义
gap_min0.05best 与 second 候选的 mean_metric 绝对差
win_rate_min0.75 seed 里 winner 一致率(≥4/5)
use_non_overlapTruewinner+std < runner_up−std
152,592 个穷举三元组中只有 87,837 个(57.6%)通过全部条件。其余 42.4% 是 GT 跨 seed 分不开的噪声题,不应计入 accuracy。这正是旧报告 63.50% 偏低的原因之一。

3. 三种建模协议

协议结构说明
A · per-dataset 专家模型15 个回归器每个 dataset 各训一个(~600 rows / 模型),不跨 dataset 共享样本
B · 全局共享模型1 个回归器9,000 rows 训一个模型,特征里显式编码 dataset identity(122 维)
C · 直接预测 winnerpairwise 分类 + 投票输入两个候选的特征差,输出二分类“A 是否优于 B”;三元组做 3 次 pairwise 投票

4. 实验结果

最优 meta-model
82.11%
共享回归 ExtraTrees(9k rows / 1 model)
专家模型最优
78.33%
per-dataset XGBoost
直接预测 winner 最优
74.85%
per-dataset GradientBoosting Clf
随机基线
33.33%
三选一随机

4.1 回归方法(预测 log loss → argmin)

模型专家模型 ExpertShared(1 模型)
Compact Ridge45.16%43.55%−1.6
Full Ridge53.99%55.27%+1.3
Full OLS55.15%
Compact Poly Ridge60.63%
MLP52.44%60.31%+7.9
Random Forest75.35%78.60%+3.3
ExtraTrees77.78%82.11%+4.3
XGBoost78.33%70.80%−7.5

Headline 配置:ExtraTreesRegressor(n_estimators=300, max_depth=16, max_features=0.7, min_samples_leaf=5, random_state=20260714),预测 log(mean_loss)

4.2 直接预测 winner(pairwise 分类 + 投票)

分类器per-datasetglobal shared
Logistic68.22%62.98%
GradientBoosting Clf74.85%64.92%
MLP Clf71.07%72.31%
ExtraTrees Clf77.85%61.59%
RandomForest Clf77.00%56.62%

per-dataset ExtraTrees Clf(77.85%)接近回归 ExtraTrees(77.78%),但未超过共享回归的 82.11%。Global tree 分类器反而很弱(56–62%),pairwise 差值特征可能破坏了树的原生判别能力。

4.3 Train-val 对比(共享回归)

模型train sigval siggap(过拟合)
ExtraTrees93.75%82.80%11.0pp
Random Forest85.64%78.16%7.5pp
XGBoost74.49%70.77%3.7pp
MLP72.12%61.01%11.1pp
Full Ridge55.65%54.68%1.0pp

XGBoost 几乎不过拟合但欠拟合(浅树 depth=3 容量不足);ExtraTrees 过拟合 11pp 但 val 仍最高。在回归质量上:全局共享 locked val 的 log 预测 RMSE 1.875 / R²=0.718(训练 5 折 CV R²=0.687)。

4.4 在冻结 60 题上与 LLM 对比

方法60 题正确率说明
共享 ExtraTrees(meta-model)43/60 = 71.7%30 环境宽协议训练,60 题为外部锁定题
Claude Opus 4.8 high34/60 = 56.7%单 prompt 60 题,无工具调用
GPT-5.5 high27/60 = 45.0%同上
GPT-5.6-SOL blind25/60 = 41.7%纯 agent,无 meta-model
随机20/60 = 33.3%
tabular meta-model 在 60 题上超过了所有被测 LLM。LLM 在 univariate_regression 上最弱(35–40%,仅略高于随机),说明当前 prompt 信息不足以让 LLM 稳定复现 GT 排名,而树模型能从 9k 条结构化记录中学到更稳定的 setting → loss 映射。

5. 关键结论

结论 1:树模型主导,线性模型全面偏弱。OLS/Ridge 只有 45–61%,MLP 52–60%,而树模型 75–82%。setting → loss 的映射是高度非线性的;纯参数量启发式(params_ols)只有 31.14%,远低于完整特征的树模型。
结论 2:共享模型帮助树模型。把 9,000 行跨 dataset 池化后,ExtraTrees 从 77.78% 提升到 82.11%(+4.3pp);XGBoost 反而下降(78.33% → 70.80%),说明共享收益不是普适的,与模型容量/正则有关。
结论 3:旧数字 63.50% 是错的,修正为 82.11%。两个原因:(a) 旧 metric 用全部三元组(含 42% 噪声题),低估约 9pp;(b) per-dataset 600 行样本不足,共享后 ExtraTrees 再涨约 4pp。
结论 4:直接预测 winner 方向正确,但当前实现不够好。per-dataset GradientBoosting 74.85%、ExtraTrees Clf 77.85%,均未超过共享回归 82.11%;但 MLP 分类(72.31%)明显优于 MLP 回归(60.31%),直接预测 winner 对 MLP 更合适。

6. 边界与失败模式

82.11% 是 ID-split 下的上限,不代表对全新数据集的泛化。leave-one-dataset-out(LOGO)跨数据集泛化 log R² 只有 0.37–0.47(vs ID split 0.68–0.73),family 级 LOGO 为负 R²。
不同协议的 R² 不能直接比较。60 题单环境设定目标标准差只有 0.04–1.0(近乎内插,R² 0.66–0.98);9000 题全局池化把 30 个环境的 log loss 硬拼在一起,目标标准差被拉大到 3.53,模型解释约 72% 方差(R²=0.718)。任务难度的分母不同,数字不可横比。
特征工程是否充分仍未知。当前特征是 setting 展开 + dataset identity,没有显式交互项(如 lr×depth、budget×model_type),也没有 dataset 统计特征(input_dim、domain_size)。二阶交互的 Compact Polynomial Ridge 60.63% 说明交互有帮助但不够。

7. 下一步:从“预测结果”到“科研 agent 的 tool”

当前闭环证明了一个基模能在已知配置空间内预测哪个 setting 更优。下一步是把它扩展成科研 agent 可调用的世界模型:

8. 复现步骤

8.1 仓库与环境

git clone git@github.com:renrua52/ArchitectureIQ.git
git checkout shaoyang/local-agent-dev        # meta-model 工作所在分支
python3.11 -m venv .venv
.venv/bin/pip install -e ".[meta-model,dev]"  # 额外安装 scikit-learn + xgboost

需要 Python ≥ 3.10。训练出的 2,473 个 .joblib 权重(约 4.9GB)在本地 data/meta_model_studies/,被 .gitignore 忽略、不在远程;但 headline 数字的输入(GT 快照)和输出(显著性筛选结果)都作为 JSON 在 git 里,可以核对。

8.2 快速验证(不重跑训练)

冻结快照、bounds、显著性筛选结果都在 git 里(见 §9 产物索引),先直接核对 headline:

python -c "import json; s=json.load(open('artifacts/wide_v2_full30_meta_model_final_summary.json')); print(s['best_overall'])"
# 预期:{approach: regression global shared + ExtraTrees, sig_accuracy: 0.8211, ...}

再跑 meta-model 单测(特征编码 / 模型容器 / bounds / wide run / 初始矩阵):

.venv/bin/python -m pytest -q \
  tests/test_meta_model_study_features.py \
  tests/test_meta_model_study_models.py \
  tests/test_meta_model_study_bounds.py \
  tests/test_meta_model_study_wide.py \
  tests/test_meta_model_study_wide_run.py \
  tests/test_meta_model_study_initial_matrix.py

8.3 复现训练与评测(需要本地 GT 数据)

30 个 environment 的 GT 行与 candidate summary 在 data/meta_model/setting_to_loss_wide_v2*/(gitignored,只有训练机上有)。若有该目录,可完整重跑拟合与显著性评测:

# 1) bounds(或直接使用 git 里已跟踪的 artifacts/wide_v2_full30_gt_snapshot.json / _bounds.json)
.venv/bin/python -m tools.meta_model_study.bounds \
  --snapshot-manifest artifacts/wide_v2_full30_gt_snapshot.json --split validation \
  > artifacts/wide_v2_full30_gt_snapshot_bounds.json

# 2) 拟合 per-dataset 专家模型 + 全局共享模型(headline 82.11% = global scope + conditioning=id)
.venv/bin/python -m tools.meta_model_study.wide_run fit-id \
  --dataset-root data/meta_model/setting_to_loss_wide_v2 \
  --output-root data/meta_model_studies/wide_v2_full30_global_conditioned_fixed \
  --scopes environment,dataset,global --include-xgboost

# 3) 显著性重评(gap≥0.05 ∧ win_rate≥0.7 ∧ non_overlap),predictions 用 wide_run 产出的文件
.venv/bin/python tools/meta_model_study/significant_recheck.py \
  --gt-base data/meta_model/setting_to_loss_wide_v2 \
  --predictions data/meta_model_studies/wide_v2_full30_global_conditioned_fixed/id/global/predictions.json \
  --output artifacts/wide_v2_full30_significant_recheck_global.json

预期:extra_trees_fixed 的 macro significant three-choice accuracy ≈ 0.8211,与已跟踪的 artifacts/wide_v2_full30_significant_recheck_global.json 一致。跨数据集泛化用 wide_run fit-grouped --protocols dataset,family 复现 LOGO(log R² 0.37–0.47)。

8.4 完整端到端(从零重跑 GT)

从头生成数据最重,按 ArchitectureIQ 主流水线(spec → code → run → GT)执行:

# 1) 30 environments = 3 families × 10 dataset instances(采样计划 tools/meta_model_dataset/plan_wide_v2.json)
architecture-iq create-dataset
architecture-iq generate-candidates            # 每 environment 采样 ~1,000 settings
# GT:对每个候选执行 write_candidate → train_and_eval() → results/summary.json(5 seeds)

# 2) 汇总 train/validation 行 → 冻结快照 → 拟合 → 显著性重评
tools/meta_model_dataset/build.py
tools/meta_model_study/freeze_wide_snapshot.py --output artifacts/wide_v2_full30_gt_snapshot.json
tools/meta_model_study/wide_run.py fit-id / fit-grouped
tools/meta_model_study/significant_recheck.py
tools/meta_model_study/summarize_initial_matrix.py

成本:30 environments × ~1,000 候选 × 5 seeds 的真实训练。日常复现优先走 §8.2 / §8.3 的冻结快照路径。

8.5 给 agent 的复现 prompt

把下面这段直接发给一个 coding agent,即可让它独立复现本研究:

你是一个研究复现 agent。目标:在 ArchitectureIQ 仓库里复现 meta-model 研究
(tabular 基模预测训练 setting 的 log(mean_loss),只在显著三元组上做三选一;
headline = global shared ExtraTrees 82.11%,随机基线 33.33%)。

约束:
1. 只在该 git worktree 内操作,不要读写其他 worktree;先 git rev-parse --show-toplevel 确认根目录。
2. GT 必须来自执行生成的代码(spec → render .py → import & run → summary.json),
   不允许硬编码、重算或"修"任何指标。
3. data/ 是 gitignored 的;若 data/meta_model/setting_to_loss_wide_v2*/ 不存在,
   说明本地 GT 数据缺失,报告并停在相应步骤,不要伪造数据。

步骤:
1. git clone git@github.com:renrua52/ArchitectureIQ.git && git checkout shaoyang/local-agent-dev
2. python3.11 -m venv .venv && .venv/bin/pip install -e ".[meta-model,dev]"
3. 运行 meta-model 单测并确保全部通过:
   tests/test_meta_model_study_features.py / models / bounds / wide / wide_run / initial_matrix
4. 核对 git 已跟踪产物:artifacts/wide_v2_full30_gt_snapshot.json、
   wide_v2_full30_significant_recheck_global.json、wide_v2_full30_meta_model_final_summary.json;
   确认 final summary 的 best_overall.sig_accuracy == 0.8211。
5. 若有 data/meta_model/setting_to_loss_wide_v2*/,重跑拟合与评测:
   python -m tools.meta_model_study.wide_run fit-id \
     --dataset-root data/meta_model/setting_to_loss_wide_v2 \
     --output-root data/meta_model_studies/wide_v2_full30_global_conditioned_fixed \
     --scopes environment,dataset,global --include-xgboost
   再用 significant_recheck.py(--gap-min 0.05 --win-rate-min 0.7)重算,
   对比 artifacts/wide_v2_full30_significant_recheck_global.json(预期 ≈82.11%)。
6. 汇报:每步命令、耗时、与已跟踪产物的 diff;任何不一致必须停下来调查,
   不允许为了让数字对上而修改代码或数据。

9. 产物索引

产物路径
最终结果 JSONartifacts/wide_v2_full30_meta_model_final_summary.json
专家模型回归 + 显著性筛选artifacts/wide_v2_full30_significant_recheck_dataset_pooled.json
共享回归 + 显著性筛选artifacts/wide_v2_full30_significant_recheck_global.json
OLS + 显著性筛选artifacts/wide_v2_full30_significant_recheck_ols.json
Winner 分类(per-dataset / global)data/meta_model_studies/wide_v2_full30_winner_clf_*/
模型与特征工程tools/meta_model_study/models.py · features.py
显著性筛选 / 训练脚本tools/meta_model_study/significant_recheck.py · run.py
详细报告docs/0718_meta_model_final_report.html · docs/meta_model_settings_comparison.md · docs/0718_train_val_comparison.html

冻结快照 SHA256: 2b172e0c…40b38ba · 30 environments / 10,000 rows / 5 seeds · 所有 GT 来自执行候选代码,未重算。复现入口:ArchitectureIQ repo(tools/meta_model_study/)。