AIRBench - 科研智能基准评测框架
AIRBench(AI Research Benchmark)是科研智能领域的标准化评测框架,复刻 ImageNet 方法论,定义五大原子能力、四层复合评测体系,支持评测与训练双场景。
快速开始
# 安装依赖
pip install -r requirements.txt
# 运行自测(使用假数据验证完整评测流水线)
python scripts/self_test.py
项目结构
AIRBench/
├── airbench/ # 核心框架
│ ├── schema.py # 七元组数据模型 (Pydantic)
│ ├── constants.py # 能力枚举、评测维度、权重常量
│ ├── data/
│ │ ├── loader.py # JSONL 数据加载器
│ │ └── generator.py # 假数据生成器
│ ├── eval/
│ │ ├── engine.py # 评测主引擎
│ │ ├── layer1_objective.py # L1: 客观硬指标
│ │ ├── layer2_rules.py # L2: 科研范式规则
│ │ ├── layer3_agents.py # L3: 多Agent交叉评测
│ │ └── layer4_calibration.py # L4: 专家校准接口
│ ├── agent/
│ │ └── base.py # Agent 抽象接口
│ └── report/
│ └── generator.py # 评测报告生成器
├── data/fake/ # 假测试数据 (JSONL)
├── scripts/
│ └── self_test.py # 自测脚本
├── results/ # 评测结果输出
└── docs/
├── 设计手册.md # 完整设计文档
├── 实现设计文档.md # 实现计划
└── 数据构造说明.md # 数据接口与构造指南
五大原子能力
| 能力 |
说明 |
| 知识理解与压缩 |
论文核心论点抽取、文献综述归纳 |
| 长程数理&因果推理 |
多步推导、因果链路分析 |
| 任务规划与工具协同 |
研究方案拆解、工具调用编排 |
| 空白挖掘与跨域创新 |
研究空白识别、跨域灵感迁移 |
| 工程实证与实验迭代 |
实验设计、调参策略、复现验证 |
四层复合评测
| 层级 |
方式 |
自动化 |
| L1 客观硬指标 |
代码计算(准确率、幻觉率、一致性等) |
全自动 |
| L2 科研范式规则 |
规则引擎(边界检查、创新分类等) |
全自动 |
| L3 多Agent交叉评测 |
多LLM Agent打分(6维度) |
半自动 |
| L4 专家校准 |
人类专家小样本校准 |
手动接口 |
使用方式
评测场景
from airbench.data.loader import load_samples
from airbench.eval.engine import EvalEngine
samples = load_samples("data/your_data.jsonl")
engine = EvalEngine(llm_caller=your_llm_function)
# 单Agent评测
report = engine.evaluate_batch(samples, agent_id="my_model",
agent_response_fn=lambda s: model.generate(s.prompt))
# 多Agent对比
reports = engine.evaluate_multi_agent(samples, {
"model_a": lambda s: model_a.generate(s.prompt),
"model_b": lambda s: model_b.generate(s.prompt),
})
训练场景
from airbench.data.loader import load_samples
# 加载含Gold_Trace的完整训练数据
samples = load_samples("data/your_data.jsonl", scenario="train")
# 构造训练对
for sample in samples:
input_text = f"{sample.prompt}\n约束: {sample.constraint}"
for gold in sample.gold_trace:
output_text = f"{gold.thinking_process}\n{gold.final_output}"
# 用于 SFT 训练
for neg in sample.neg_cases:
# 用于 DPO 偏好对齐
pass
添加新数据
参见 docs/数据构造说明.md,按七元组 Schema 准备 JSONL 文件,通过 loader 加载即可。