遇见数据集

TIGER-Lab/FIM-Midtraining-400K

收藏
Hugging Face2026-07-15 更新2026-07-22 收录
官方服务:

资源简介:

FIM-Midtraining-400K 是论文《Function-Aware Fill-in-the-Middle as Mid-Training for Coding Agent Foundation Models》的中期训练语料库。它包含40万个函数感知的填充中间(FIM)样本(在Qwen2.5-Coder分词器下约26亿个token),这些样本来自968个宽松许可的GitHub仓库中的75,568个Python文件,并已完全去除了与SWE-Bench的污染。该语料库利用编码代理内部循环(行动 → 观察 → 继续)与函数调用点在结构上的同构性:不是随机掩码文本跨度,而是通过程序依赖图分析和复杂度-可推断性双重标准选择函数进行掩码,训练模型从周围文件中恢复这些函数,并先进行推理。该数据集用于在代理后训练(如R2E-Gym、SWE-Smith、SWE-Lego)之前对Qwen2.5-Coder-7B/14B-Instruct和Qwen3-8B模型进行中期训练,以提升SWE-Bench-Verified和SWE-Bench-Lite的性能,同时减轻代理后训练对通用能力的侵蚀。数据集包含四种配置:all_merged(默认,40万样本,混合单函数、函数对和函数三重掩码)、single_function(32万样本,单函数掩码)、function_pair(6万样本,函数对掩码)和function_triple(2万样本,函数三重掩码)。每个样本采用聊天格式的JSON记录,包含用户回合(带掩码的源代码文件)和助手回合(逐步推理和实现),并附带元数据(来源、选择分数等)。数据集的构建基于程序依赖图,通过复杂度(Ĥ)和可推断性(Î)分数选择目标函数,确保目标既有实质性又可从上下文恢复。所有样本均与SWE-Bench源代码仓库无重叠,且提交时间早于SWE-Bench基准的最早基础提交,以避免测试泄漏。语料库统计显示总token数为26.3亿,平均每个样本输入5,821个token、目标759个token,目标函数平均42.3行代码。主题覆盖从零开始、领域特定、科学计算、数据处理、小型框架、可视化、编译器、算法、游戏、教育、网络和安全等多个类别。数据集可用于通过Hugging Face的datasets库加载,并支持在LLaMA-Factory等框架中进行训练。基于该数据集训练的模型包括TIGER-Lab/FIM-Mid-7B、FIM-Mid-8B、FIM-Mid-14B及其后训练版本,在SWE-Bench基准上表现出显著改进。样本源自968个开源GitHub仓库,每个仓库有自己的宽松许可证(如MIT、Apache-2.0、BSD),添加的推理和注释以Apache-2.0许可证发布。

The mid-training corpus of "Function-Aware Fill-in-the-Middle as Mid-Training for Coding Agent Foundation Models": 400K function-aware FIM samples (~2.6B tokens under the Qwen2.5-Coder tokenizer) drawn from 75,568 Python files across 968 permissively-licensed GitHub repositories, fully decontaminated against SWE-Bench. A coding agents inner loop — act → observe → continue — is structurally isomorphic to a function call site: a caller binds arguments, a callee returns a value computed elsewhere, and downstream code consumes that value. This corpus exploits that isomorphism. Instead of masking random spans, we mask functions — selected by program-dependency-graph analysis and a complexity–inferability double criterion — and train the model to recover them from the surrounding file, reasoning first. Mid-training Qwen2.5-Coder-7B/14B-Instruct and Qwen3-8B on this corpus before agentic post-training (R2E-Gym / SWE-Smith / SWE-Lego, unmodified) improves SWE-Bench-Verified by +2.8 / +3.0 / +3.2 and SWE-Bench-Lite by +3.7 / +4.0 / +5.4, while restoring most of the general-capability erosion that agentic post-training otherwise inflicts (LiveCodeBench +11.1, τ-bench +3.9, BFCL +2.4 at 14B). The dataset includes four configs: all_merged (default, 400K samples, mixture of single/pair/triple function masking), single_function (320K samples, single function masking), function_pair (60K samples, function pair masking), and function_triple (20K samples, function triple masking). Each sample is a JSON record in chat format, with a user turn (source file with masked function bodies) and an assistant turn (step-by-step rationale and implementation), accompanied by metadata (provenance, selection scores, etc.). Target selection is based on program dependency graphs, using complexity (Ĥ) and inferability (Î) scores to ensure functions are both substantial and recoverable from context. All samples have zero overlap with SWE-Bench source repositories and are restricted to commits before the earliest base commit of SWE-Bench benchmarks to avoid test leakage. Corpus statistics show total tokens of 2.63B, mean input/target tokens per sample of 5,821/759, and mean target length of 42.3 LoC per sample. Topics cover From Scratch, Domain Specific, Scientific Computing, Data Processing, Small Frameworks, Visualization, Compilers, Algorithms, Games, Educational, Networking, and Security. The dataset can be loaded via Hugging Faces datasets library and used for training in frameworks like LLaMA-Factory. Models trained on this corpus include TIGER-Lab/FIM-Mid-7B, FIM-Mid-8B, FIM-Mid-14B and their post-trained versions, showing significant improvements on SWE-Bench. Samples are derived from 968 open-source GitHub repositories under permissive licenses (e.g., MIT, Apache-2.0, BSD), with added rationales and annotations released under Apache-2.0.

提供机构:
TIGER-Lab
搜集汇总
数据集介绍
TIGER-Lab/FIM-Midtraining-400K 数据集图片
构建方式
该数据集通过从968个采用宽松许可的GitHub仓库中精选出75,568个Python源文件,并利用程序依赖图分析,对每个函数计算复杂度与可推断性两个维度的指标。复杂度考量代码行数、圈复杂度及嵌套深度,以评估函数是否值得预测;可推断性则依据调用位置特异性、文件内被调用者、签名、文档字符串及类兄弟关系,判断其是否可从上下文中恢复。两者通过调和平均组合,并施加单侧惩罚以剔除即使拥有完整上下文仍难以推断的目标。针对多函数组(如调用者-被调用者对),数据集进一步在八种耦合拓扑结构下重新计算联合可推断性,从而构建出涵盖单一函数、函数对与函数三元组共40万条高质FIM样本。
特点
该数据集的核心特色在于其函数感知的遮蔽策略,其内在逻辑巧妙映射了编码代理“行动-观察-延续”的交互循环至函数调用场景。不同于随机遮蔽词元,它精准遮蔽函数体,迫使模型在恢复代码时优先进行因果推理。数据集提供了三种粒度配置:单一函数、函数对及函数三元组,并已混合为默认的全部集合,总计约26亿词元。所有样本均经过严格的去污染处理,与SWE-Bench基准测试无重叠,且每个样本附带详尽的元数据,包括来源仓库、选择分数及LLM评判师对推理与实现的五维质量评分,确保数据可追溯性与可靠性。
使用方法
数据集以JSON行格式存储,每条记录遵循LLaMA-Factory的sharegpt对话模板,直接适用于监督式微调。用户轮次包含带有遮蔽函数体的完整源文件及固定指令,助手轮次则包含逐步推理分析与函数实现,模仿代理的思考-行动结构。用户可通过HuggingFace Datasets库便捷加载,例如使用`load_dataset("TIGER-Lab/FIM-Midtraining-400K", "all_merged", split="train")`获取主语料库。若需集成至LLaMA-Factory训练流程,可直接下载JSONL文件至其data目录并注册为sharegpt数据集,官方仓库已提供完整的配置示例与训练模板,方便研究者复现论文中的中间训练实验。
背景与挑战
背景概述
在现代软件工程中,代码生成与自动化编程模型的发展极大地推动了开发效率的提升,然而,如何使大规模语言模型具备真正的“编码智能体”能力——即能够在多步交互中理解程序上下文、推理依赖关系并生成可执行代码——仍是研究前沿的挑战。FIM-Midtraining-400K正是为应对这一需求而诞生的创新性数据集。由TIGER-AI Lab团队在2026年发布,该数据集基于对75,568个Python源文件的深度分析,从968个采用许可协议的开源GitHub仓库中提炼出400K条函数感知的“填充中间”(Fill-in-the-Middle)训练样本,总令牌数约26亿。核心思路在于将编码智能体的内部执行循环(动作-观察-继续)与函数调用站点的结构同构性相联系,通过程序依赖图分析,选取兼具复杂性(如代码行数、圈复杂度)和可推断性(如调用上下文、签名与文档字符串)的函数进行遮蔽,要求模型在缺乏真实函数体的条件下进行逐步推理并恢复。这一数据集显著提升了后续智能体后训练的效果,在SWE-Bench-Verified上带来+3.0至+3.2的提升,同时有效缓解了通用能力的侵蚀,在LiveCodeBench、τ-bench和BFCL等基准上均展现出正向收益。
当前挑战
本数据集主要应对以下挑战:首先,在领域问题层面,传统的代码预训练多采用随机遮罩的方式,忽略了函数间复杂的依赖关系和控制流结构,导致模型难以在真实的编码智能体场景中完成多步推理与函数恢复。FIM-Midtraining-400K通过程序依赖图分析,创新性地以函数为最小掩蔽单元,并在函数对和函数三元组中保留结构性耦合,迫使模型在全局上下文中进行因果关系推理,从而弥合了填充中间任务与智能体行为之间的鸿沟。其次,在数据构建过程中,团队面临如何平衡函数复杂性与可推断性的难题,为此设计了复杂度指标Ĥ与可推断性指标Î的调和平均组合,并引入单侧惩罚ρ(Δ)以过滤即使给定上下文仍难以恢复的样本;同时,为确保生成训练样本的质量,团队采用独立的LLM裁判对基于上下文(而非真实函数体)生成的推理链和实施过程进行五个维度的评分,只有高分的样本才被保留。此外,大规模数据采集后的去污染与许可证合规审查也是一大挑战,最终实现了与SWE-Bench源仓库的零重叠,并逐仓库检查许可证兼容性,确保研究使用的合法性。
常用场景
经典使用场景
FIM-Midtraining-400K数据集专为代码填充中间(Fill-in-the-Middle)训练范式而设计,其核心使用场景在于作为编码智能体基础模型的中间训练语料。该数据集巧妙地揭示了编码智能体内循环——行动、观察、持续——与函数调用点之间的结构同构性,通过程序依赖图分析与复杂度+可推断性双重准则,精心挑选出函数体作为掩码目标。研究者可将此数据集与主流基础模型(如Qwen2.5-Coder、Qwen3)结合,在模型从预训练到面向智能体场景的后训练之间,进行中间阶段的针对性微调,从而显著提升模型在代码补全、函数理解及上下文推理方面的能力。
解决学术问题
该数据集聚焦于解决编码智能体基础模型在通用能力与特定任务能力之间的权衡这一关键学术难题。传统智能体后训练虽能提升模型在代码工程任务上的表现,却往往导致通用编程能力的显著退化。FIM-Midtraining-400K通过引入函数感知的填充中间训练策略,在模型进入智能体场景前建立更强的上下文推理与代码理解根基,使得后续智能体后训练不仅能在SWE-Bench基准上取得显著提升(Verified提升+2.8至+3.2,Lite提升+3.7至+5.4),更能有效恢复通用能力(LiveCodeBench提升+11.1),为构建兼具专精能力与广泛适应性的编码智能体模型提供了新路径。
衍生相关工作
基于FIM-Midtraining-400K数据集,研究者已衍生出多个具有里程碑意义的工作。该数据集直接支撑了TIGER-Lab系列编码智能体模型的构建,包括FIM-Mid-7B、FIM-Mid-8B、FIM-Mid-14B等中间训练模型,以及经过不同智能体后训练方案(R2E-Gym、SWE-Lego)优化后的FIM-7B、FIM-8B、FIM-14B模型,其在SWE-Bench验证集上的优异表现证明了该训练范式的有效性。该工作还开创性地将程序依赖图分析与复杂度-可推断性双准则引入中间训练数据筛选,为后续研究提供了可复现的函数选择方法论,并推动了函数感知填充中间训练在代码智能体研究领域的标准化应用,对代码生成、程序理解和智能体学习等多个交叉方向产生了深远影响。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务