Kimi K2 Instruct, a 1T parameter model with state of the art quality for coding, reasoning, and agentic tool use, is now available on Fireworks! Try now

Blog
Qwen 3 Decoded

Qwen3 Decoded: Choosing the Right Model For Your Task

Qwen 3 Decoded

“Which Qwen3 variant should I actually deploy?”

With Thinking, Instruct, and Coder released simultaneously, confusion spiked. We stress-tested all three on your real workflows (same benchmarks as yesterday’s post) and found:

  • Qwen3 235B A22B Instruct beats o4 mini in reranking & classification (0.758 → 0.726 in live Fireworks traffic)
  • Qwen3 235B A22B Thinking 2507 dominates complex math (AIME25: 92.3 vs 81.5 – 11% jump)
  • Qwen3 Coder 480B A35B Instruct closes the gap with quality near GPT 4.1 (0.862 → 0.91 in live Fireworks traffic)

Your surgical guide to deploying the right variant →

TL;DR: Your Qwen3 Model Selection Guide

Forget generic "better performance" claims. Here's exactly when to use which model based on verified testing:

Qwen 3

Try models in Google Colab:

Open in Colab

  • Use Qwen3-Coder-480B-A35B-Instruct as a Full-Stack Web App Generator –
  • Use Qwen3-235B-A22B-Thinking-2507 to solve advanced AIME math problems
  • Use Qwen3-235B-A22B-Instruct-2507 for Real-Time Customer Support Chat Response Generation

What Actually Changed:

Qwen3-Coder-480B-A35B-Instruct

A purpose-built evolution of the Qwen3 coding model series, engineered exclusively for agentic coding workflows, repository-scale development, and tool-driven software engineering. Unlike general-purpose predecessors, this variant achieves state-of-the-art performance in real-world coding tasks through specialized reinforcement learning and native long-context processing, delivering production-ready results comparable to Claude Sonnet in Agentic Coding, Browser-Use, and Tool-Use scenarios.

Model Architecture & Core Differences
  • Mixture-of-Experts (MoE) LLM
  • Parameters: 480B total (35B "active" per forward pass; 160 experts, 8 live simultaneously)
  • Layers: 62
  • Heads: 96Q; 8 Key/Value (GQA-optimized for code efficiency)
  • Context Window:
    • Base models: Typically limited to 32K–128K tokens.
    • This release: Natively supports 262,144 tokens (256K), extendable to 1M tokens via Yarn extrapolation—enabling full-repository comprehension, dynamic PR analysis, and multi-step tool orchestration.
  • Agentic Specialization:
    • Non-thinking mode only (zero thinking blocks; enable_thinking=False deprecated).
    • Optimized function-calling protocols for Qwen Code, CLINE, and IDE integrations.
    • Trained via long-horizon RL (20K parallel environments) for multi-turn tool interactions (e.g., SWE-Bench Verified).
  • Instant code generation across 100+ programming languages—zero latency for IDEs, cli tools, and cost-efficient dev workflows.

This model eliminates speculative "reasoning" delays—outputs pure, executable code/function calls instantly. It's the first open-source model that rivals commercial APIs for software engineering. Our tests show it excels at real-world coding tasks with exceptional tool usage capabilities.

Key Feature and Usability Updates
  • Pure Execution Mode: The model operates exclusively in non-thinking mode—outputs only executable code/function calls with zero speculative reasoning blocks. You never see thinking artifacts or need enable_thinking=False; responses are instantly deployable to IDEs, CLI tools, and production pipelines.
  • Repository-Scale Context Handling: Natively processes 262K tokens (256K) with seamless Yarn extrapolation to 1M tokens, eliminating context fragmentation for full-repository analysis, PR reviews, and multi-file refactoring. No manual window management—just paste entire codebases.
  • Agentic Tool Mastery: Optimized for real-world tool orchestration (Qwen Code CLI, CLINE, browser automation) via RL-trained function-calling protocols. Achieves SWE-Bench Verified SOTA among open models through 20K parallel environment training, delivering Claude Sonnet 4-level tool fluency for browser-use, debugging, and API integrations.

Implementation tip:
  • Supports only non-thinking mode and specifying enable_thinking=False is no longer required.

Here is an example using function calling in Fireworks using Qwen3-Coder-480B-A35B-Instruct:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
from fireworks import LLM
import json
llm = LLM(
model="qwen3-coder-480b-a35b-instruct",
deployment_type="serverless",
api_key=FIREWORKS_API_KEY
)
# Define the function tool for getting city population
tools = [
{
"type": "function",
"function": {
# The name of the function
"name": "get_city_population",
# A detailed description of what the function does
"description": "Retrieve the current population data for a specified city.",
# Define the JSON schema for the function parameters
"parameters": {
# Always declare a top-level object for parameters
"type": "object",
# Properties define the arguments for the function
"properties": {
"city_name": {
# JSON Schema type
"type": "string",
# A detailed description of the property
"description": "The name of the city for which population data is needed, e.g., 'San Francisco'."
},
},
# Specify which properties are required
"required": ["city_name"],
},
},
}
]
# Define a comprehensive system prompt
prompt = f"""
You have access to the following function:
Function Name: '{tools[0]["function"]["name"]}'
Purpose: '{tools[0]["function"]["description"]}'
Parameters Schema: {json.dumps(tools[0]["function"]["parameters"], indent=4)}
Instructions for Using Functions:
1. Use the function '{tools[0]["function"]["name"]}' to retrieve population data when required.
2. If a function call is necessary, reply ONLY in the following format:
<function={tools[0]["function"]["name"]}>{{"city_name": "example_city"}}</function>
3. Adhere strictly to the parameters schema. Ensure all required fields are provided.
4. Use the function only when you cannot directly answer using general knowledge.
5. If no function is necessary, respond to the query directly without mentioning the function.
Examples:
- For a query like "What is the population of Toronto?" respond with:
<function=get_city_population>{{"city_name": "Toronto"}}</function>
- For "What is the population of the Earth?" respond with general knowledge and do NOT use the function.
"""
# Initial message context
messages = [
{"role": "system", "content": prompt},
{"role": "user", "content": "What is the population of San Francisco?"}
]
# Call the model
chat_completion = llm.chat.completions.create(
messages=messages,
tools=tools,
temperature=0.1
)
# Print the model's response
print(chat_completion.choices[0].message.model_dump_json(indent=4))
Output
{
"role": "assistant",
"content": null,
"reasoning_content": null,
"tool_calls": [
{
"index": 0,
"id": "call_cXtCVJgJ4kg6VrUWGhDg5py4",
"type": "function",
"function": {
"name": "get_city_population",
"arguments": "{\"city_name\": \"San Francisco\"}"
}
}
],
"tool_call_id": null,
"function": null,
"name": null
}

Qwen3-235B-A22B-Thinking-2507:

A direct evolution and substantial upgrade over the original "Thinking" edition. Both are built for deep reasoning, logic, math, science, code, and extended academic tasks, but the 2507 release pushes these capabilities further with explicit architectural and training refinements, resulting in more sophisticated reasoning, longer context comprehension, and better benchmark score.

Model Architecture & Core Differences
  • Both models are Mixture-of-Experts (MoE) LLMs:
  • Parameters: 235B total (22B “active” per forward pass; 128 experts, 8 live simultaneously)
  • Layers: 94
  • Heads: 64Q; 4 Key/Value
  • Context Window: The original supported up to 128K or 132K tokens, while the 2507 version natively supports 262,144 tokens (256K) — a doubling of effective context handling for long documents and multi-step reasoning.

Analyze entire research papers, codebases, legal docs in one go. No more “context overflow” errors mid-reasoning

Performance over Previous Model
Benchmarks

Key Feature and Usability Updates
  • Extended Reasoning Chains: The 2507 model is optimized for multi-stage and intricate thought processes. Outputs are formatted to reflect explicit reasoning, and you never need to manually trigger “thinking mode” — it is always enabled.
  • System Prompting: The chat template enforces <think> tags by default, ensuring all output is reasoning-centric, adding traceability for complex outputs.
  • General Performance: Enhanced not only in deep reasoning but also in alignment (more human-preference matching), creative and academic tasks, and complex tool usage

Implementation Tip:

Only supports thinking mode and the <think> tag is already included in the default prompt.

"Solve: ∫(x² + 3x)dx from 0 to 5 /think" → Gets full step-by-step solution


Qwen3-235B-A22B-Instruct-2507

A purpose-built evolution of the original "Qwen3-235B-A22B non thinking" edition. Both are engineered for instruction following, conversational AI, and business logic tasks, but the 2507 release achieves human-preferred alignment through specialized post-training, delivering enterprise-ready performance in multilingual understanding, tool integration, and native 262K-context document processing.

Model Architecture & Core Differences
  • Both models are Mixture-of-Experts (MoE) LLMs:
  • Parameters: 235B total (22B “active” per forward pass; 128 experts, 8 live simultaneously)
  • Layers: 94
  • Heads: 64Q; 4 Key/Value
  • Context Window: The original supported up to 128K or 132K tokens, while the 2507 version natively supports 262,144 tokens (256K) — a doubling of effective context handling for long documents and multi-step reasoning.

Instant multilingual replies across 119+ languages—no reasoning delays, pure speed for chats, content, and cost-efficient deployments.

Performance over Previous Model
Benchmarks

Key Feature and Usability Updates
  • Human-preferred outputs out of the box: Responses align with human judgment by default. Perfect for customer-facing AI.
  • Instant multilingual replies (119+ languages): Deploy global chatbots today.
  • Simplified API: enable_thinking=False GONE: Non-thinking mode always on. Cleaner integration, no extra flags.
Implementation tip:

Supports only non-thinking mode and specifying enable_thinking=False is no longer required.

Real-World Implementation Examples

Put theory into practice with the hands-on Colab notebook that demonstrate each model's strengths: Open in Colab

Solving Advanced Mathematical Problems with Step-by-Step Reasoning

Why this fits Qwen3-235B-A22B-Thinking-2507:

  • Solves complex mathematical problems requiring multi-step reasoning (AIME-level).
  • Leverages thinking mode for deeper, deliberate reasoning paths
  • Excels at step-by-step logical deduction with mathematical notation
  • Uses 256K context to maintain long derivations and explanations

Sample Output:

12345678910111213141516
Let $S$ be the set of vertices of a regular $24$-gon. Find the number of ways to draw $12$ segments of equal lengths so that each vertex in $S$ is an endpoint of exactly one of the $12$ segments.
🧠 Thinking Process:
==================================================
This is a complex or challenging question, and it is difficult to provide a direct and correct answer. I need to think about it.
Well, so we have a regular 24-gon, vertices labeled maybe 0 through 23 in order around the circle...
### Final Answer
$$
✅ Final Clean Solution:
==================================================
\boxed{113}
$$

In the example, we solve for AIME II problem# 11.

Qwen3-235B-A22B-Thinking-2507 is able to find the correct answer!

Real-Time Customer Support Chat Response Generation

Why this fits Qwen3-235B-A22B-Instruct-2507:

  • Generates fast, accurate customer support responses in real-time
  • Optimized for speed (critical for low-latency chat)
  • No thinking mode overhead → instant, clean responses
  • Handles subjective tasks like empathetic support exceptionally well
  • 256K context processes long conversation histories when needed

Sample Output:

12345678910
=========== Real-Time Customer Support Chatbot ==========
💬 Customer: Hi, I ordered a wireless charger 3 days ago and it hasn't shipped yet. Can you check the status?
🤖 Support Agent:
Hello, thank you for reaching out. I've checked your order (#12345) for the FastCharge Wireless Pad, and I can confirm that your payment has been processed successfully. Currently, your order is in the processing stage and has not yet shipped. Delays can occasionally occur due to high demand or inventory verification, but our team is working to fulfill it as quickly as possible.
You'll receive a shipping confirmation email with tracking information as soon as your item is dispatched. If you'd like, we can notify you directly once it ships. We appreciate your patience and apologize for any inconvenience.
⏱️ Latency: 2.913 seconds
...

Full-Stack Web App Generator

Why this fits Qwen3-Coder-480B-A35B-Instruct:

  • Generates complete production-ready full-stack applications
  • Handles multiple languages (Python, JavaScript, HTML/CSS)
  • 1M context maintains entire app structure in memory
  • Creates tooling configs (Dockerfile, package.json) alongside core logic
  • Agent-like capabilities simulate multiple development roles

Sample Output

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
=========== Full-Stack Todo App Generator ==========
I'll create a full-stack todo application with FastAPI backend and React frontend. Here's the complete structure:
```
todo-app/
├── backend/
│ ├── app/
│ │ ├── __init__.py
│ │ ├── main.py
│ │ ├── models.py
│ │ ├── schemas.py
│ │ └── database.py
│ ├── tests/
│ │ ├── __init__.py
│ │ └── test_todos.py
│ ├── Dockerfile
│ ├── pyproject.toml
│ └── README.md
├── frontend/
│ ├── public/
│ │ └── index.html
│ ├── src/
│ │ ├── components/
│ │ │ ├── TodoForm.js
│ │ │ ├── TodoItem.js
│ │ │ └── TodoList.js
│ │ ├── services/
│ │ │ └── todoService.js
│ │ ├── App.js
│ │ ├── index.js
│ │ └── styles.css
│ ├── Dockerfile
│ ├── package.json
│ └── README.md
├── docker-compose.yml
└── README.md
```
Let me generate each file:
## Backend Files
### backend/pyproject.toml
```toml
[tool.poetry]
name = "todo-backend"
version = "0.1.0"
description = "FastAPI backend for todo application"
authors = ["Your Name <[email protected]>"]
[tool.poetry.dependencies]
python = "^3.9"
fastapi = "^0.104.1"
uvicorn = "^0.24.0"
sqlalchemy = "^2.0.23"
pydantic = "^2.5.0"

Why Open Source Wins (Fireworks AI Perspective)

Commercial APIs force you into one-size-fits-all models. Qwen3's specialized variants prove open source isn't just competitive—it's superior for production:

  • Cost control: Dramatically lower costs than commercial APIs
  • No black boxes: Control reasoning depth per task (/think vs /no_think)
  • True ownership: Run on your infrastructure (Fireworks or self-hosted)
  • Rapid iteration: New versions drop frequently with tangible improvements

Our position: If you're paying premium prices for commercial APIs for coding or research, you're likely overpaying. Qwen3's specialized models deliver better results for specific workloads at open-source costs.

Get Started in 60 Seconds

For all models:

Install SDK

1
pip install --upgrade fireworks-ai


Sending the first API Request

12345678910
from fireworks import LLM
# Basic usage - SDK automatically selects optimal deployment type
llm = LLM(model="Qwen3-Coder-480B-A35B-Instruct", deployment_type="auto", api_key="<FIREWORKS_API_KEY>")
response = llm.chat.completions.create(
messages=[{"role": "user", "content": "Say this is a test"}]
)
print(response.choices[0].message.content)


The Qwen3 release isn't just another model drop – it's proof that specialized open source models can outperform general commercial APIs for specific workloads. With purpose-built variants for every development need, the question isn't "Why open source?" – it's "Why would you limit yourself to closed APIs?"

Your move, developers. Stop paying premium prices for one-size-fits-all models. Try the new Qwen3 family models on Firework's model playground today and gain the flexibility to choose the right tool for each job.

P.S. The Coder-480B model is particularly impressive – it's setting new standards for what open-source coding models can achieve.

🔗 Resources