FIM-Midtraining-400K
收藏资源简介:
FIM-Midtraining-400K是一个用于编码代理基础模型的数据集,包含40万样本和约26.3亿个标记。它通过程序依赖图分析和复杂度-可推断性双重标准选择并掩码函数,以支持中间训练,具体配置包括单函数、函数对和函数三重掩码目标。
FIM-Midtraining-400K is a dataset for mid-training of coding agent foundation models, comprising 400,000 samples and approximately 2.63 billion tokens. To support mid-training, it selects and masks functions via program dependency graph analysis and the dual criteria of complexity and inferability, with specific configurations including single-function, function-pair, and function-triple masking objectives.
数据集概述
FIM-Midtraining-400K 是一个用于编码智能体基础模型中间训练的、函数感知的填充中间(Function-Aware Fill-in-the-Middle)数据集。其核心思想是利用普通代码中存在的、与编码智能体“行动→观察→继续”循环结构同构的函数调用模式,通过掩码函数并训练模型恢复它们,从而为后续的智能体后训练奠定基础。
数据集构成
- 总样本数:400,000个样本。
- 总词元数:约26.3亿个词元(2.63B tokens)。
- 数据来源:从968个经许可的Python仓库构建,这些仓库的提交日期早于SWE-Bench基准的首次提交,且与SWE-Bench的源仓库无重叠。
- 格式:每个样本均包含一个经过筛选的Gemini-3-Flash生成的推理过程(rationale)以及完整的原始数据元数据。
数据子集配置
数据集分为四个配置,不同配置针对不同规模的函数掩码目标:
| 配置名称 | 样本数量 | 掩码目标 | 词元数量 |
|---|---|---|---|
all_merged(主结果语料库) |
400,000 | 80% 单个函数 / 15% 函数对 / 5% 函数三元组 | ~26.3亿 |
single_function |
320,000 | 单个函数体 | ~20亿 |
function_pair |
60,000 | 两个耦合函数(联合掩码) | ~4亿 |
function_triple |
20,000 | 三个耦合函数(联合掩码) | ~2亿 |
目标函数选择策略
并非所有函数都适合作为掩码目标。选择过程基于程序依赖图(PDG)分析,并使用一个双重标准评分:
- 复杂度 (Ĥ):基于代码行数、圈复杂度和嵌套深度。
- 可推断性 (Î):基于调用点特异性、文件内被调用函数、函数签名、文档字符串和类上下文。
最终得分计算公式为 FIM = Ĥ·Î/(Ĥ+Î)·ρ(Δ),该得分会确保所选函数既足够复杂又具有可恢复性。同时,对于2-3个耦合函数,会根据八种依赖拓扑结构进行联合掩码选择,并重新计算联合掩码下的可推断性。
数据组织
- 数据集地址:https://huggingface.co/datasets/TIGER-Lab/FIM-Midtraining-400K
- 数据集的构建流程和脚本可在项目仓库的
data_construction/目录下找到,支持从零开始重建。
相关模型与结果
该数据集用于中间训练,产生了一系列名为 FIM-Mid-{7B,8B,14B} 的模型。这些模型随后用于后训练,并在SWE-Bench基准上取得了显著提升(相对于单独后训练):
| 最终模型 | 基础模型 | 后训练方案 | SWE-Bench-Verified | SWE-Bench-Lite | 平均提升 |
|---|---|---|---|---|---|
| FIM-7B | FIM-Mid-7B | R2E-Gym | 17.80 (+2.8) | 15.00 (+3.7) | +3.24 |
| FIM-14B | FIM-Mid-14B | R2E-Gym | 29.20 (+3.0) | 22.00 (+4.0) | +3.50 |
| FIM-8B | FIM-Mid-8B | SWE-Lego | 35.00 (+3.2) | 32.70 (+5.4) | +4.30 |





