Model reference · open weights
Qwen3-Coder is an open-weight language model from Qwen. Qwen3-Coder-30B-A3B-Instruct-FP8 (FP8) weighs 31.2 GB; the smallest configuration that runs it is L40S 48 GB.
Summary of the Qwen/Qwen3-Coder-30B-A3B-Instruct-FP8 model card, 2026-10-01
What it is
| Released by | Qwen |
|---|---|
| Released | 2025-07-31 |
| Parameters | 30.5B |
| VRAM | 31.2 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory | |
|---|---|---|---|---|
| 8K each | 32K each | |||
| RTX 3060 12 GB … RTX 5090 32 GB 5 smaller cards | — | — | — | |
| L40S 48 GB | 14 | 3 | 115K | 44.0 GB |
| A100 80 GB FP8 without its speed-up here | 56 | 14 | all 256K | 78.2 GB |
| H100 80 GB | 50 | 12 | all 256K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 69 | 17 | all 256K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 86 | 21 | all 256K | 107 GB |
| H200 141 GB | 124 | 31 | all 256K | 138 GB |
| B200 180 GB | 169 | 42 | all 256K | 176 GB |
| 2× RTX 4090 24 GB tensor parallel | 16 | 4 | 131K | 23.4 GB a card |
| 2× RTX 3090 24 GB tensor parallel · FP8 without its speed-up here | 16 | 4 | 132K | 23.4 GB a card |
| 2× RTX 5090 32 GB tensor parallel | 35 | 8 | all 256K | 31.0 GB a card |
| Requests at once | 8K tokens each | 32K tokens each |
|---|---|---|
| 1 | 33.1 GB | 35.5 GB |
| 5 | 36.3 GB | 48.4 GB |
| 8 | 38.8 GB | 58.1 GB |
| 16 | 45.2 GB | 83.9 GB |
| 32 | 58.1 GB | 135 GB |
| 64 | 83.9 GB | 238 GB |
One card, with vLLM's small-card settings.
Builds
| Build | Params | Precision | Weights | Smallest setup |
|---|---|---|---|---|
| Qwen3-Coder-30B-A3B-Instruct-FP8 (above) ↗ | 30.5B | FP8 | 31.2 GB | L40S 48 GB |
| Qwen3-Coder-30B-A3B-Instruct ↗ | 30.5B | BF16 | 61.1 GB | H100 80 GB |
| Qwen3-Coder-480B-A35B-Instruct-FP8 ↗ | 480.2B | FP8 | 482 GB | 4× H200 141 GB |
| Qwen3-Coder-480B-A35B-Instruct ↗ | 480.2B | BF16 | 960 GB | 8× H200 141 GB |
| Qwen3-Coder-30B-A3B-Instruct-GGUF ↗ packaged by unsloth 27 builds: TQ1_0 8.0 GB … BF16 61.1 GB |
— | GGUF | 18.6 GB | 2× RTX 3060 12 GB |
From the model card
Qwen3-Coder is available in multiple sizes. Today, we're excited to introduce Qwen3-Coder-30B-A3B-Instruct-FP8. This streamlined model maintains impressive performance and efficiency, featuring the following key enhancements:
Qwen3-Coder-30B-A3B-Instruct-FP8 has the following features:
NOTE: This model supports only non-thinking mode and does not generate ```` blocks in its output. Meanwhile, specifying enable_thinking=False is no longer required.
For more details, including benchmark evaluation, hardware requirements, and inference performance, please refer to our blog, GitHub, and Documentation.
We advise you to use the latest version of transformers.
With transformers<4.51.0, you will encounter the following error:
KeyError: 'qwen3_moe'
The following contains a code snippet illustrating how to use the model generate content based on given inputs.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen3-Coder-30B-A3B-Instruct-FP8"
# load the tokenizer and the model
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
# prepare the model input
prompt = "Write a quick sort algorithm."
messages = [
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
# conduct text completion
generated_ids = model.generate(
**model_inputs,
max_new_tokens=65536
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
content = tokenizer.decode(output_ids, skip_special_tokens=True)
print("content:", content)
Note: If you encounter out-of-memory (OOM) issues, consider reducing the context length to a shorter value, such as 32,768.
For convenience and performance, we have provided fp8-quantized model checkpoint for Qwen3, whose name ends with -FP8. The quantization method is fine-grained fp8 quantization with block size of 128. You can find more details in the quantization_config field in config.json.
You can use the Qwen3-30B-A3B-Instruct-FP8 model with serveral inference frameworks, including transformers, sglang, and vllm, as the original bfloat16 model.
However, please pay attention to the following known issues:
transformers:
transformers for distributed inference. You may need to set the environment variable CUDA_LAUNCH_BLOCKING=1 if multiple devices are used in inference.Qwen3-Coder excels in tool calling capabilities.
You can simply define or use any tools as following example.
# Your tool implementation
def square_the_number(num: float) -> dict:
return num ** 2
# Define Tools
tools=[
{
"type":"function",
"function":{
"name": "square_the_number",
"description": "output the square of the number.",
"parameters": {
"type": "object",
"required": ["input_num"],
"properties": {
'input_num': {
'type': 'number',
'description': 'input_num is a number that will be squared'
}
},
}
}
}
]
import OpenAI
# Define LLM
client = OpenAI(
# Use a custom endpoint compatible with OpenAI API
base_url='http://localhost:8000/v1', # api_base
api_key="EMPTY"
)
messages = [{'role': 'user', 'content': 'square the number 1024'}]
completion = client.chat.completions.create(
messages=messages,
model="Qwen3-Coder-30B-A3B-Instruct-FP8",
max_tokens=65536,
tools=tools,
)
print(completion.choice[0])
To achieve optimal performance, we recommend the following settings:
Sampling Parameters:
temperature=0.7, top_p=0.8, top_k=20, repetition_penalty=1.05.Adequate Output Length: We recommend using an output length of 65,536 tokens for most queries, which is adequate for instruct models.
If you find our work helpful, feel free to give us a cite.
@misc{qwen3technicalreport,
title={Qwen3 Technical Report},
author={Qwen Team},
year={2025},
eprint={2505.09388},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2505.09388},
}
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.