Files
FIM-14B/README.md
ModelHub XC 82c49951c8 初始化项目,由ModelHub XC社区提供模型
Model: TIGER-Lab/FIM-14B
Source: Original Platform
2026-08-21 19:45:13 +08:00

119 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
license: apache-2.0
library_name: transformers
pipeline_tag: text-generation
base_model:
- Qwen/Qwen2.5-Coder-14B-Instruct
datasets:
- TIGER-Lab/FIM-Midtraining-400K
- R2E-Gym/R2EGym-SFT-Trajectories
tags:
- code
- software-engineering
- agent
---
# FIM-14B
[📄 Paper](https://arxiv.org/abs/2607.12463) · [💻 GitHub](https://github.com/TIGER-AI-Lab/FIM-Midtraining) · [🤗 Dataset](https://huggingface.co/datasets/TIGER-Lab/FIM-Midtraining-400K) · [🤗 Collection](https://huggingface.co/collections/TIGER-Lab/fim-midtraining)
**FIM-14B** is the 14B coding-agent model of *"Function-Aware Fill-in-the-Middle as Mid-Training for Coding Agent Foundation Models"*: `Qwen2.5-Coder-14B-Instruct`, mid-trained on function-aware FIM data, then post-trained on R2E-Gym agent trajectories with the upstream recipe unmodified. The mid-training stage is the only difference from a standard R2E-Gym reproduction — worth **+3.0 points on SWE-Bench-Verified and +4.0 on SWE-Bench-Lite**, while also recovering most of the general-capability erosion that agentic post-training inflicts (LiveCodeBench +11.1, τ-bench +3.9, BFCL +2.4 over the post-training-only arm).
## Training pipeline
- **Base model**: [`Qwen/Qwen2.5-Coder-14B-Instruct`](https://huggingface.co/Qwen/Qwen2.5-Coder-14B-Instruct)
- **FIM mid-training**: [`midtraining/configs/fim_midtrain.yaml`](https://github.com/TIGER-AI-Lab/FIM-Midtraining/blob/main/midtraining/configs/fim_midtrain.yaml) on [TIGER-Lab/FIM-Midtraining-400K](https://huggingface.co/datasets/TIGER-Lab/FIM-Midtraining-400K) (as-run copy: [`FIM_Midtrain_14B.yaml`](https://github.com/TIGER-AI-Lab/FIM-Midtraining/blob/main/midtraining/configs/FIM_Midtrain_14B.yaml)) → intermediate checkpoint released as [TIGER-Lab/FIM-Mid-14B](https://huggingface.co/TIGER-Lab/FIM-Mid-14B)
- **Post-training**: SFT on R2E-Gym agent trajectories — [`posttraining/r2egym/`](https://github.com/TIGER-AI-Lab/FIM-Midtraining/tree/main/posttraining/r2egym) (as-run copy: [`FIM_Posttrain_14B.yaml`](https://github.com/TIGER-AI-Lab/FIM-Midtraining/blob/main/posttraining/r2egym/FIM_Posttrain_14B.yaml))
## Results
Means over three evaluation seeds, identical harness for both arms (paper Tables 1–2):
| Setting | SWE-Bench-Verified | SWE-Bench-Lite |
|---|---|---|
| Qwen2.5-Coder-14B-Instruct + R2E-Gym (reproduced) | 26.20 | 18.00 |
| **FIM-14B (+ FIM mid-training)** | **29.20** | **22.00** |
| Δ | +3.00 | +4.00 |
Capability preservation at 14B (six benchmarks outside SWE-Bench):
| Setting | LiveCode | OJBench | FSB-EN | Terminal | τ-bench | BFCL | Avg |
|---|---|---|---|---|---|---|---|
| + R2E-Gym only | 24.10 | 2.80 | 47.72 | 2.41 | 3.40 | 15.80 | 16.04 |
| **FIM-14B** | **35.20** | **4.74** | **48.25** | **3.66** | **7.30** | **18.20** | **19.56** |
Reproduction guides for all six: [`evaluation/`](https://github.com/TIGER-AI-Lab/FIM-Midtraining/tree/main/evaluation).
## Evaluate on SWE-Bench Verified
FIM-14B is evaluated with the **R2E-Gym agent scaffold** (fixed by its post-training pipeline). The complete pinned walkthrough lives at [`evaluation/swebench/released_checkpoints.md`](https://github.com/TIGER-AI-Lab/FIM-Midtraining/blob/main/evaluation/swebench/released_checkpoints.md).
### 1. Serve the model with vLLM
```bash
CUDA_VISIBLE_DEVICES=0 \
VLLM_ALLOW_LONG_MAX_MODEL_LEN=1 \
python -m vllm.entrypoints.openai.api_server \
--model TIGER-Lab/FIM-14B \
--served-model-name FIM-14B \
--host 127.0.0.1 \
--port 8400 \
--tensor-parallel-size 1 \
--max-model-len 65536 \
--hf-overrides '{"max_position_embeddings": 65536}' \
--enable-prefix-caching \
--gpu-memory-utilization 0.9 \
> vllm_fim14b.log 2>&1 &
```
Wait until the server is up (model load takes ~1 minute):
```bash
curl -s http://127.0.0.1:8400/v1/models
```
### 2. Run the agent on SWE-Bench Verified
From an upstream, unmodified [R2E-Gym](https://github.com/R2E-Gym/R2E-Gym) checkout (Docker required):
```bash
export OPENAI_API_KEY=EMPTY
export LLM_BASE_URL="http://127.0.0.1:8400/v1"
uv run python src/r2egym/agenthub/run/edit.py runagent_multiple \
--dataset "R2E-Gym/SWE-Bench-Verified" \
--split "test" \
--start_idx 0 \
--k 500 \
--traj_dir "./traj" \
--exp_name "FIM-14B_swebench_verified_r1" \
--llm_name "openai/FIM-14B" \
--scaffold "r2egym" \
--backend "docker" \
--use_fn_calling False \
--temperature 0 \
--max_steps 40 \
--max_steps_absolute 100 \
--max_workers 6 \
--max_reward_calc_time 1200 \
--max_tokens 65536 \
--use_existing True
```
For SWE-Bench Lite, use `--dataset "R2E-Gym/SWE-Bench-Lite" --k 300`.
### 3. Score with the official SWE-bench harness
Convert the trajectories to a submission and score with the official harness — [`evaluation/swebench/score.sh`](https://github.com/TIGER-AI-Lab/FIM-Midtraining/blob/main/evaluation/swebench/score.sh). The reported number is `resolved_instances / total_instances`.
## Citation
```bibtex
@article{wang2026fim,
title={Function-Aware Fill-in-the-Middle as Mid-Training for Coding Agent Foundation Models},
author={Wang, Yubo and Liang, Jiarong and Zhang, Yuxuan and Liu, Xuye and Wei, Cong and Zhang, Yuyu and Nie, Ping and Chen, Wenhu},
journal={arXiv preprint arXiv:2607.12463},
year={2026}
}
```