Synthetic Hallucinations, Real Gains: Hard Negatives from Frontier Models for FIM Hallucination Mitigation
About
Small open-source code models that power IDE autocomplete still emit hallucinated Fill-in-the-Middle (FIM) completions: syntactically natural calls to methods, parameters, variables, and imports that do not exist in the surrounding project. Existing mitigations either require per-language execution sandboxes that do not apply at mid-keystroke or preference-optimisation pipelines that need large human-labelled corpora. We propose an execution-free alternative: use frontier code models to synthesise plausible-but-wrong completions as hard negatives, then leverage the contrast between these synthetic hallucinations and the ground-truth developer edit as a supervised fine-tuning signal. Our pipeline scrapes multilingual FIM contexts from public GitHub across eight languages and asks a panel of three frontier generators to produce one hard negative per context for each of four hallucination types drawn from the Delulu taxonomy, a Docker-verified multilingual FIM hallucination benchmark, yielding a paired chosen/rejected dataset. Fine-tuning Qwen2.5-Coder-7B-Instruct on a 100K-row curated subset lifts Delulu exact match by +18.8 points and edit similarity by +0.22 on every language and every type, while also improving every HumanEval-Infilling split and every SAFIM subset. The same recipe at 3B lifts Delulu by +12.8 EM with a small, characterised general-FIM trade-off. Five-axis ablations (size, type mix, language coverage, base-model family, and a difficulty-aware fool rate) plus a head-to-head SFT vs. DPO/ORPO comparison map which design choices drive the gain. We release the full pipeline source code -- generation, fool-rate LLM judging, curation, and the FIM fine-tuning recipe -- so that the experiments in this paper can be reproduced end-to end on any permissively licensed corpus.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Fill-in-the-Middle Code Completion | Delulu | EM (%)62.4 | 16 | |
| Fill-in-the-Middle Code Completion | HE-Inf single-line | Exact Match (EM)57.3 | 16 | |
| Fill-in-the-Middle Code Completion | SAFIM API | Exact Match (%)72.6 | 16 | |
| Fill-in-the-Middle Code Completion | SAFIM control | Exact Match (EM)41 | 16 | |
| Fill-in-the-Middle Code Completion | Real-FIM-Eval | Exact Match (EM)4.4 | 16 | |
| Fill-in-the-Middle Code Completion | HE-Inf random-span | Exact Match (EM)47.2 | 16 | |
| Fill-in-the-Middle Code Completion | HE-Inf multi-line | Exact Match (EM)23.7 | 16 | |
| Fill-in-the-Middle Code Completion | SAFIM block | Exact Match (EM)26.3 | 16 | |
| Fill-in-the-Middle Code Completion | SAFIM block v2 | Exact Match (EM)32.9 | 16 | |
| Hallucination Mitigation | Delulu N=1,950, 7 languages (held-out) | Exact Match (EM)61.8 | 8 |