Qwen2.5-Coder is a 2024 open-weight model family specialized for code generation, code explanation, code repair, and related text-based programming tasks. It is based on Qwen2.5 and is preserved here as a historical coding generation.
Last verified: August 4, 2026.
Qwen2.5-Coder does not have a documented Qwen3-style Thinking mode. “Code reasoning” describes a capability, not an
enable_thinkingAPI.
Qwen2.5-Coder model lineup
Six sizes were published, each with Base and Instruct checkpoints. Context and license terms vary by size.
| Size | Parameters | Base ID | Instruct ID | Context | License |
|---|---|---|---|---|---|
| 0.5B | 0.49B | Qwen/Qwen2.5-Coder-0.5B |
Qwen/Qwen2.5-Coder-0.5B-Instruct |
32,768 | Apache 2.0 |
| 1.5B | 1.54B | Qwen/Qwen2.5-Coder-1.5B |
Qwen/Qwen2.5-Coder-1.5B-Instruct |
32,768 | Apache 2.0 |
| 3B | 3.09B | Qwen/Qwen2.5-Coder-3B |
Qwen/Qwen2.5-Coder-3B-Instruct |
32,768 | Qwen Research License |
| 7B | 7.61B | Qwen/Qwen2.5-Coder-7B |
Qwen/Qwen2.5-Coder-7B-Instruct |
Up to 131,072 with YaRN | Apache 2.0 |
| 14B | 14.7B | Qwen/Qwen2.5-Coder-14B |
Qwen/Qwen2.5-Coder-14B-Instruct |
Up to 131,072 with YaRN | Apache 2.0 |
| 32B | 32.5B | Qwen/Qwen2.5-Coder-32B |
Qwen/Qwen2.5-Coder-32B-Instruct |
Up to 131,072 with YaRN | Apache 2.0 |
The 3B repositories use the Qwen Research License. Do not describe all six sizes as Apache 2.0, and review the exact repository license before commercial deployment.
The 128K context claim needs configuration
The official cards for 7B, 14B, and 32B advertise 131,072-token support. Their distributed config.json, however, is set to 32,768 tokens. Handling longer input requires the documented static YaRN configuration:
{
"rope_scaling": {
"factor": 4.0,
"original_max_position_embeddings": 32768,
"type": "yarn"
}
}
- 32,768 is the shipped configuration.
- 131,072 is the documented YaRN-extended range for 7B, 14B, and 32B.
- 0.5B, 1.5B, and 3B document a 32,768-token context.
- Static YaRN can affect shorter-context performance.
- Long context substantially increases KV-cache memory.
Base versus Instruct checkpoints
| Type | Use it for | Avoid |
|---|---|---|
| Base | Continued pretraining, custom fine-tuning, research, code completion experiments | Treating it as a ready-made conversational assistant |
| Instruct | Code requests, debugging conversations, explanations, transformations, and instruction-following | Using a Base-model prompt format without the repository chat template |
Fill-in-the-middle workflows are documented most directly with Base checkpoints. Test the exact prompt format and runtime before relying on FIM behavior in an Instruct deployment.
What Qwen2.5-Coder can be used for
- Generating functions and code examples from text instructions.
- Explaining existing source code.
- Proposing bug fixes and refactoring changes.
- Producing tests or documentation for supplied code.
- Translating code between programming languages.
- Assisting an external coding-agent application.
The official 2024 family announcement described training coverage across 92 programming languages. This is a training-scope statement, not a guarantee of equal accuracy or toolchain knowledge in every language.
Run Qwen2.5-Coder-7B-Instruct
The following example uses the official Instruct ID and stays within the default context configuration.
pip install "transformers>=4.37.0" accelerate
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "Qwen/Qwen2.5-Coder-7B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype="auto",
device_map="auto",
)
messages = [
{
"role": "system",
"content": "You are a careful code assistant."
},
{
"role": "user",
"content": (
"Write a Python function that removes duplicate integers "
"while preserving their original order. Include type hints."
)
}
]
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
inputs = tokenizer([prompt], return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512)
new_tokens = outputs[0][inputs.input_ids.shape[-1]:]
print(tokenizer.decode(new_tokens, skip_special_tokens=True))
Transformers versions below 4.37.0 can fail with a KeyError: 'qwen2'. The example does not require trust_remote_code.
How to interpret benchmark claims
Benchmark scores reported in the original Qwen2.5-Coder material are snapshots tied to particular model IDs, datasets, prompts, frameworks, and evaluation settings. They should not be interpreted as a permanent ranking against models released afterward.
For deployment decisions, evaluate the intended checkpoint on your own repositories, languages, test suites, context lengths, and security requirements.
Qwen2.5-Coder limitations
- Generated code can be incorrect, insecure, or incompatible with a target dependency version.
- The model does not execute or verify code unless an external application provides those tools.
- No Qwen3-style Thinking toggle is documented.
- The model is text-only and does not natively inspect screenshots or diagrams.
- No universal GPU requirement applies to every size and quantization.
Frequently asked questions
Does Qwen2.5-Coder use Thinking mode?
No Qwen3-style Thinking mode or enable_thinking control is documented for these open checkpoints.
Is 131,072 tokens the default context?
No. For 7B, 14B, and 32B, the shipped configuration is 32,768. The longer range requires the documented YaRN setup.
Should I use Base or Instruct?
Use Instruct for conversational code requests. Use Base for continued training, specialized research, or workflows that explicitly require a base model.
Official sources
- Official Qwen2.5-Coder family announcement
- Official Qwen2.5-Coder collection
- Qwen2.5-Coder-3B-Instruct card and license
- Qwen2.5-Coder-7B-Instruct card and YaRN instructions
- Qwen2.5-Coder-32B-Instruct model card
For the successor coding family, see the Qwen3-Coder guide.
This independent guide is not operated by Alibaba Cloud or the Qwen team. Validate generated code before production use.

