feynman-bench
收藏资源简介:
该数据集包含56,102个经过处理的IBP(积分约简)约简记录,涵盖22个多圈Feynman拓扑(维度从2D到15D),由FIRE 7在PRIME模式下使用固定素数(2017)和每个拓扑的固定运动学生成。它用于训练和评估积分-部分求解器,包括机器学习驱动的种子函数,以选择哪些积分被输入IBP关系。数据集分为训练集(13个拓扑,56,102条记录)和测试集(9个拓扑,913条记录),所有记录使用固定的素数和每个拓扑的固定运动学点。
This dataset contains 56,102 processed IBP (Integration-by-Parts) reduction records, covering 22 multi-loop Feynman topologies with spacetime dimensions ranging from 2D to 15D. It was generated by FIRE 7 in PRIME mode using a fixed prime (2017) and fixed kinematic points for each topology. This dataset is intended for training and evaluating IBP solvers, including machine learning-driven seed functions that select which integrals are fed into IBP relations. The dataset is split into a training set (13 topologies, 56,102 records) and a test set (9 topologies, 913 records). All records use the fixed prime and fixed kinematic points for each topology.
Feynman IBP Benchmark 数据集概述
基本信息
该数据集包含 56,102 个已完成的 IBP(Integration-By-Parts)约化结果,覆盖 22 个多圈费曼拓扑结构(维度范围 2D – 15D),由 FIRE 7 在 PRIME 模式下以固定素数 2017 和每个拓扑固定运动学点生成。数据集旨在用于训练和评估 IBP 求解器,特别是机器学习驱动的种子函数(seeding functions)。
设计目的
IBP 约化是高阶费曼计算中的速率限制步骤:每个多圈积分必须通过 IBP 恒等式重写为少量"主积分"的线性组合。现代求解器通过将种子积分代入 IBP 关系并求解来构建线性系统,而种子的选择决定了系统规模和计算成本。该数据集提供了 56k 个 (目标积分,拓扑)→ 主积分约化 配对,并记录了 FIRE 的 num_steps(实际消耗的 IBP 方程数量),用于训练种子函数并评估其性能。
数据集结构
训练/测试划分
- 训练集(
ground_truth_train.jsonl):13 个拓扑,56,102 条记录 - 测试集(
ground_truth_test.jsonl):9 个保留拓扑,913 条记录,均为非空约化结果
训练拓扑(13个):
- 2D/bub, 3D/bub2l, 4D/box1l, 5D/{bl2, bl2em}, 6D/{vac3lBN, vac3lNO}, 7D/tri2l, 9D/{banana3L, grav2l, grav2lx, p3lBenz, p3lLA}
测试拓扑(9个):
- 4D/box1lc, 5D/ver2l, 6D/vac3lO4, 7D/tri2lx, 9D/p3lO4, 10D/{vac4lBN, vac4lNP}, 15D/{gravity3l, gravity3lsec}
记录格式(JSONL,每行一个 JSON 对象)
json { "solver": "fire", "topology_path": "5D/ver2l", "params": {"d": 7646, "m1sq": 962, "s1": 3547}, "integrals": [[1, 0, 2, 0, 2]], "reductions": {"[1, 0, 2, 0, 2]": {"[1, 0, 1, 0, 1]": 1478, "[1, 0, 1, 0, 2]": 1357}}, "num_steps": 111, "finite_field": 2017 }
每条记录包含一个目标积分及其在 FIRE 选定的主积分基下的约化结果。num_steps 表示 FIRE 日志中记录的实际使用的方程数量。
关键特性
- 固定素数:所有记录使用 FIRE 默认 PRIME 模式域
finite_field = 2017,约化系数为[0, 2017)范围内的整数 - 固定运动学:每个拓扑仅使用一个
params字典(例如{d, m1sq, qsq}),以--seed 42在[2, 9999]范围内采样得到,训练集和测试集共用相同运动学点 - 预生成 FIRE 配置文件:FIRE 的启动文件(
.start、.lbases、.sbases)已预生成并提交,无需 Mathematica 或 LiteRed
评估指标
| 指标 | 说明 |
|---|---|
| Validity(有效性) | 求解器的约化结果与真实值在模运算下精确匹配的积分比例(按拓扑平均) |
| Step ratio(步数比) | Σ steps_solver / Σ steps_GT,仅计算求解器覆盖的积分,数值越低越好 |
| n_missing(缺失数) | 求解器未覆盖的积分数量,单独报告以防不完整覆盖受到惩罚 |
排行榜
当前基线:
- FIRE 7p baseline:有效性 100.00%,步数比 1.000(作为参考基线)
- FIRE 6p:有效性 100.00%,步数比 1.068
可通过 leaderboard/submit.py 提交结果,包含 score.json(指标+出处)和 predictions.jsonl(原始输出)。
使用方法
快速开始
bash git clone https://github.com/project-numina/feynman-bench cd feynman-bench pip install -e . docker pull ghcr.io/project-numina/fire6:latest cp config.example.yaml config.yaml ./run_eval.py --topology 5D/ver2l
评估运行选项
./run_eval.py:运行全部 9 个测试拓扑--topology 5D/ver2l:指定单个拓扑--topologies 5D/ver2l,9D/p3lO4:指定多个拓扑--ground-truth ground_truth_train.jsonl:在训练集上评分--max-parallel 32 --threads 4:调优并行度
评分与提交
bash python3 score.py --predictions my_results.jsonl --ground-truth ground_truth_test.jsonl --solver my_solver --output my_score.json python3 leaderboard/submit.py --score my_score.json --name "My solver v0.1" --solver my_solver
仓库结构
run_eval.py 评估入口与评分 score.py 有效性与步数比计算 check_validity.py 隔离的比较原语 reductions.py 共享辅助函数 generate_ground_truth.py 生成真实值数据 solvers/fire/ FIRE 包装器 docker/fire6/ Docker 构建文件 topologies/<dim>/<name>/ 各拓扑的 FIRE 配置文件 leaderboard/ 排行榜提交与渲染
引用
bibtex @dataset{feynman-bench-2026, author = {Thibaut Barroyer and Shovon Biswas and Yann Fleureau and Jia Li and Julio Parra-Martinez and Mathis Reymond and Marina Vinyes}, title = {Feynman IBP benchmark}, year = {2026}, publisher = {GitHub}, url = {https://github.com/project-numina/feynman-bench} }
许可证
MIT 许可证(详见 LICENSE)




