目录

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 加载即可。

关于
307.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802032778号