ArchitectureIQ
收藏资源简介:
ArchitectureIQ是一个用于评估LLMs(和人类)建模直觉的原型基准测试数据集,包含多个数据集家族,如单变量回归、多变量回归和双元语言模型,每个家族定义了任务、模型、损失函数和评估指标,用于生成和测试数据实例。
ArchitectureIQ is a prototype benchmark dataset for evaluating the modeling intuition of LLMs (and humans). It includes multiple dataset families such as univariate regression, multivariate regression, and bigram language models. Each family defines tasks, models, loss functions and evaluation metrics for generating and testing data instances.
ArchitectureIQ 数据集详情
数据集概述
ArchitectureIQ 是一个用于评估大语言模型(LLM)及人类对模型架构建模直觉的原型基准测试。给定一个数据集实例与若干候选组合(模型 + 优化器 + 损失函数 + 预算),要求选择在指定训练预算后能达到最佳选择指标的候选方案。
数据集版本
当前版本为 v1,包含以下数据集家族:
| 家族(Family) | 任务描述 | 可用模型 | 损失函数 | 评估指标 |
|---|---|---|---|---|
univariate_regression |
R → R 符号回归 | mlp |
MSE(+ L1/L2 正则化) | test_mse |
multivariate_regression |
R^n → R 符号回归 | mlp |
MSE(+ L1/L2 正则化) | test_mse |
bigram_lm |
基于固定 P(y | x) 的下一个词元预测 | transformer_lm |
交叉熵(+ L1/L2 正则化) |
多变量输入维度:multivariate_regression 的输入维度 n 默认从配置文件 profiles/v1.yaml 中的 input_dims: [2, 3, 4, 5, 8] 随机选取,可通过 --input-dim 或交互模式固定。
基准生成流程
1. 创建数据集(create-dataset)
- 在
data/datasets/{family}/{dataset_id}/下生成合成数据集 - 支持按家族、随机家族、指定种子及多变量输入维度创建
- 种子控制合成数据生成(表达式公式、训练/测试点采样)的可复现性
2. 生成候选集(generate-candidates)
- 为指定数据集生成包含真实标注的命名候选集
- 可选变化轴:模型(
model)、优化器(optimizer)、损失函数(loss) - 支持非交互式(固定轴随机选值)和交互式(手动固定轴值)两种模式
3. 组装问题(generate-question)
- 从一个或多个候选集中组装多项选择题,生成
prompt.txt - 问题类型根据候选规格自动推断
- 支持设定问题数量、选项数量及随机种子
典型工作流程
仅架构变化问题:
- 创建数据集 → 生成仅有模型变化的候选集 → 组装多项选择题
跨预算混合问题:
- 创建数据集 → 生成不同预算或不同变化轴的候选集 → 将多个候选集路径传入
generate-question组装交叉问题
完全交互式会话:依次使用 -i 交互模式创建数据集、生成候选集、组装问题。
项目结构
profiles/v1.yaml # V1 配置文件(参数池、网格、真实训练设置) AGENTS.md / CLAUDE.md # AI 代理开发指南 prompts/templates/ # 自然语言提示模板 src/architecture_iq/ # 核心流水线(数据集、候选、真实训练、问题) tools/llm_eval/ # 独立的 LLM 评估运行器 tools/ranking_questions/ # 排序任务生成与评分工具 tools/analysis.py # 离线曲线/序参数分析 templates/ # 可复用的 HTML 报告模板 data/ # 运行时生成的数据集、候选、问题 llm_runs/ # 运行时生成的 LLM 评估结果
可复现性
- 真实训练通过执行磁盘上的 Python 文件实现,不使用并行框架快捷方式
- 数据集通过
importlib加载synthesize.py中的synthesize()函数生成 - 候选训练使用
model.py、optimizer.py、loss.py,每次运行前根据candidate_spec.json重新生成.py文件以保持对齐
问题检查器
提供 Streamlit UI 界面,支持浏览和作答问题。添加自定义设置功能允许用户选择架构、优化器、损失函数、训练预算和种子数,在数据集上训练并显示学习曲线。最多保留两个自定义运行:最新运行和历史最低损失运行。
启动命令:
.venv/bin/python tools/start_quiz.py
可指定具体问题或问题运行路径打开。
LLM 评估
独立的运行器,支持将问题提示发送至 OpenAI 兼容的聊天 API,从 <answer> 标签解析模型答案并与真实标注对比评分。主要特性:
- 不导入
architecture_iq核心模块,直接读取data/下的问题文件 - 评估时扩充提示以允许模型自由推理后提交答案
- 支持设置 API 基础地址和密钥
- 可指定评估模型、温度参数、问题数量限制及并行工作数
- 每次运行在
llm_runs/{timestamp}_{model}/下生成配置、准确率摘要及各问题的完整响应记录 - 支持
--skip-existing恢复部分完成的评估运行



