atlas

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

WizardCoder: Empowering Code Large Language Models with Evol-Instruct

ICLR 2024 · Large language models › Instruction and fine-tuning · approach: Calibration and knowledge in LLM tuning · 81 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.

Adapts Evol-Instruct to code by iteratively evolving Code Alpaca instructions with code-specific heuristics and fine-tuning StarCoder-15B and CodeLlama-34B-Python into WizardCoder models.

Problem

Instruction fine-tuning for code LLMs is under-researched; open-source code models lag behind closed-source models on code generation benchmarks.

Approach

Code Evol-Instruct iteratively makes code instructions more complex using coding-specific heuristics (LeetCode-style constraints, erroneous code as misdirection, time/space complexity requirements), with an external dev set as an evolution stop criterion, and fine-tunes Code LLMs on the merged evolved data.

Key results

Measured effects reported in the paper

What was changedWhereMeasuredEffect
Fine-tune StarCoder 15B with Code Evol-Instruct dataStarCoder 15B · HumanEvalpass@1 (%): 33.6 -> 57.3Helped
Fine-tune CodeLlama-34B-Python with Code Evol-Instruct dataCodeLlama-34B-Python · HumanEvalpass@1 (%): 53.7 -> 71.5Helped
Use GPT-4 instead of GPT-3.5 to generate evolved instructions (ablation)Code Evol-Instruct with StarCoder-15B base · HumanEvalpass@1: 59.8 -> 62.2Helped
Use GPT-4 instead of GPT-3.5 to generate evolved instructions (ablation)Code Evol-Instruct with CodeLlama-34B base · HumanEvalpass@1: 73.2 -> 73.8Helped
Use CodeLlama as the evolution model instead of GPT-3.5 (ablation)Code Evol-Instruct with StarCoder-15B base · HumanEvalpass@1: 59.8 -> 55.5Hurt
Use CodeLlama-34B as the evolution model instead of GPT-3.5 (ablation)Code Evol-Instruct with CodeLlama-34B base · HumanEvalpass@1: 73.2 -> 70.1Hurt
Train on evolved Round 1 data instead of seed Round 0 data, with similar sample counts (ablation)WizardCoder training · HumanEvalpass@1: 45.7 -> 56.1Helped
Train on evolved Round 2 data instead of seed Round 0 data, with similar sample counts (ablation)WizardCoder training · HumanEvalpass@1: 45.7 -> 53.0Helped
Train on evolved Round 3 data instead of seed Round 0 data, with similar sample counts (ablation)WizardCoder training · HumanEvalpass@1: 45.7 -> 54.3Helped
Train on evolved Round 4 data instead of seed Round 0 data, with similar sample counts (ablation)WizardCoder training · HumanEvalpass@1: 45.7 -> 51.2Helped
Train on evolved Round 1 data instead of seed Round 0 data, with the same token count (ablation)WizardCoder training · HumanEvalpass@1: 44.5 -> 51.8Helped
Train on evolved Round 2 data instead of seed Round 0 data, with the same token count (ablation)WizardCoder training · HumanEvalpass@1: 44.5 -> 52.4Helped

Surprising findings

Limitations

Experimental setup

Datasets: Code Alpaca MBPP HumanEval

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

Metrics: pass@1

Baselines: GPT-3.5 (ChatGPT) GPT-4 Claude Bard CodeLlama-Instruct CodeLlama-Python StarCoder OctoCoder Unnatural-CodeLlama PanguCoder2

Builds on: Evol-Instruct Code Alpaca self-instruct StarCoder CodeLlama

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