atlas

Research map / Large language models / Instruction and fine-tuning

InverseCoder: Self-improving Instruction-Tuned Code LLMs with Inverse-Instruct

AAAI 2025 · Large language models › Instruction and fine-tuning · approach: Instruction data selection · 2 citations (OpenAlex)

Read the paperCheck your idea against 108,967 papers

AI-extracted summary. Written by AI from the paper's full text. Numbers and claims can be wrong or missing context, so check the paper before you cite or build on it.

Proposes Inverse-Instruct, a self-augmentation method where a fine-tuned code LLM summarizes its own training code snippets into new instructions, self-selects the best one via YES pseudo-probability, and retrains to produce InverseCoder code models.

Problem

Instruction-tuned open code LLMs depend on data generated by expensive closed-source LLMs; the paper asks whether a fine-tuned open model can improve itself by generating additional instruction data.

Approach

A code snippet can serve as the response to many instructions, and code-to-instruction summarization is easier for code LLMs than instruction-to-code generation. The model summarizes clean code from its own training set into instructions, self-evaluates them via YES pseudo-probability, and fine-tunes on the augmented data.

Key results

Measured effects reported in the paper

What was changedWhereMeasuredEffect
Apply Inverse-Instruct data augmentationCodeLlama-Python-7B · HumanEval+pass@1: 68.9 -> 72.0Helped
Apply Inverse-Instruct data augmentationDeepSeek-Coder-6.7B · MBPP+pass@1: 67.5 -> 69.0Helped
Add self-evaluation and data selection after code summarization (ablation)Inverse-Instruct on CodeLlama-Python-7B · HumanEval+pass@1: 71.3 -> 72.0Helped
Add self-evaluation and data selection after code summarization (ablation)Inverse-Instruct on CodeLlama-Python-7B · MBPP+pass@1: 58.2 -> 60.1Helped
Add preprocessing to the full code-summarization and evaluation pipeline (ablation)Inverse-Instruct on CodeLlama-Python-7B · HumanEval+pass@1: 67.1 -> 72.0Helped
Generate instructions by summarizing code instead of generating responses from instructions (ablation)Inverse-Instruct on CodeLlama-Python-7B · HumanEval+pass@1: 67.1 -> 72.0Helped
Use YES pseudo-probability for data selection instead of random selection (ablation)Inverse-Instruct on CodeLlama-Python-7B · HumanEval+pass@1: 68.3 -> 72.0Helped
Select the top 3 instructions per response instead of top 1 (ablation)Inverse-Instruct on CodeLlama-Python-7B · HumanEval+pass@1: 72.0 -> 67.1Hurt
Apply Inverse-Instruct a second round using InverseCoder-generated data (ablation)InverseCoder-CL-7B · HumanEval+pass@1: 72.0 -> 70.1Hurt
Add self-generated code after generating instructions from code (ablation)Inverse-Instruct on CodeLlama-Python-7B · HumanEval+pass@1: 72.0 -> 68.9Hurt
Train on self-generated instructions before GPT-4 data rather than the reverse order (ablation)InverseCoder-CL-7B · HumanEval+pass@1: 59.1 -> 72.0Helped

Surprising findings

Limitations

Experimental setup

Datasets: evol-codealpaca-v1 Magicoder-OSS-Instruct-75K MBPP+

Benchmarks: HumanEval HumanEval+ MBPP MBPP+ MultiPL-E DS-1000

Metrics: pass@1

Baselines: WizardCoder-GPT4 Magicoder WaveCoder-Ultra AlchemistCoder StarCoder2-Instruct GPT-4-Turbo GPT-3.5-Turbo DolphCoder DIT

Builds on: Self-Instruct Evol-Instruct OSS-Instruct Magicoder AutoMathText

Closest papers by meaning

Writing a paper in this area? scime draft is a free LaTeX editor with AI included, real-time co-authors and a check of your references and venue rules before you submit. It also imports OpenAI Prism projects.

Open scime draft

Get the next scime Dispatch and a monthly field update

Free. We send a confirmation link first; every email has a one-click unsubscribe. Privacy