Qwen3-Coder 是由阿里巴巴云 Qwen 团队开发的一个开源大型语言模型系列,专注于代码生成与智能编程。它的核心产品是 Qwen3-Coder-480B-A35B-Instruct
,一个拥有480亿参数的混合专家模型(MoE),激活参数为35亿。它支持256K令牌的原生上下文长度,并可通过扩展方法达到100万令牌。Qwen3-Coder 在代码生成、代码修复和代理任务(如浏览器操作和工具使用)中表现出色,性能媲美 Claude Sonnet 4。它通过开源的命令行工具 Qwen Code
提供增强的编码支持,适合开发者处理复杂代码任务。模型支持100多种语言,特别在多语言代码生成和系统编程上有优异表现。所有模型在 Apache 2.0 许可下开源,开发者可自由下载和定制。
功能列表
- 代码生成:生成高质量代码,支持92种编程语言,包括 Python、C++、Java 等。
- 代码修复:自动检测和修复代码中的错误,提高编程效率。
- 代码补全:支持代码片段的填充补全,优化开发流程。
- 代理任务支持:集成外部工具,执行浏览器操作、处理复杂任务。
- 长上下文处理:原生支持256K令牌上下文,可扩展至1M令牌,适合处理大型代码库。
- 多语言支持:覆盖100多种语言和方言,适合多语言开发和翻译。
- 命令行工具:提供
Qwen Code
,优化解析器和工具支持,简化代码管理和自动化任务。 - 开源模型:提供多种模型规模(0.6B至480B),支持开发者定制和微调。
使用帮助
安装与部署
Qwen3-Coder 模型托管在 GitHub 上,开发者可通过以下步骤安装和使用:
- 克隆仓库
在终端运行以下命令克隆 Qwen3-Coder 仓库:git clone https://github.com/QwenLM/Qwen3-Coder.git
这会将项目文件下载到本地。
- 安装依赖
进入项目目录并安装必要的 Python 依赖:cd Qwen3-Coder pip install -e ./"[gui,rag,code_interpreter,mcp]"
如果只需要最小依赖,可以运行
pip install -e ./
。 - 配置环境变量
Qwen3-Coder 支持通过 Alibaba Cloud 的 DashScope API 或本地部署模型使用。- 使用 DashScope API:设置环境变量以使用云服务:
export OPENAI_API_KEY="your_api_key_here" export OPENAI_BASE_URL="https://dashscope-intl.aliyuncs.com/compatible-mode/v1" export OPENAI_MODEL="qwen3-coder-plus"
API 密钥可从 Alibaba Cloud 的 DashScope 平台获取。
- 本地部署:使用
llama.cpp
或Ollama
部署模型。- 使用 Ollama:安装 Ollama(版本0.6.6或更高),运行:
ollama serve ollama run qwen3:8b
设置上下文长度和生成参数:
/set parameter num_ctx 40960 /set parameter num_predict 32768
API 地址为
http://localhost:11434/v1/
。 - 使用 llama.cpp:运行以下命令启动服务:
./llama-server -hf Qwen/Qwen3-8B-GGUF:Q8_0 --jinja --reasoning-format deepseek -ngl 99 -fa -sm row --temp 0.6 --top-k 20 --top-p 0.95 --min-p 0 -c 40960 -n 32768 --no-context-shift --port 8080
这将启动一个本地服务,API 地址为
http://localhost:8080/v1
。
- 使用 Ollama:安装 Ollama(版本0.6.6或更高),运行:
- 使用 DashScope API:设置环境变量以使用云服务:
- 下载模型
模型权重可从 Hugging Face 或 ModelScope 下载。例如:- Hugging Face:
https://huggingface.co/Qwen/Qwen3-Coder-480B-A35B-Instruct
- ModelScope:
https://modelscope.cn/organization/qwen
使用transformers
库加载模型:
from transformers import AutoTokenizer, AutoModelForCausalLM device = "cuda" # 使用 GPU tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-Coder-480B-A35B-Instruct") model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-Coder-480B-A35B-Instruct", device_map="auto").eval()
- Hugging Face:
使用 Qwen3-Coder
Qwen3-Coder 提供多种功能,以下是主要功能的详细操作流程:
- 代码生成
Qwen3-Coder 可生成高质量代码。例如,生成快速排序算法:input_text = "#write a quick sort algorithm" model_inputs = tokenizer([input_text], return_tensors="pt").to(device) generated_ids = model.generate(model_inputs.input_ids, max_new_tokens=512, do_sample=False)[0] output = tokenizer.decode(generated_ids[len(model_inputs.input_ids[0]):], skip_special_tokens=True) print(output)
模型会返回完整的快速排序代码。支持的编程语言包括 C、C++、Python、Java 等,适合多种开发场景。
- 代码补全
Qwen3-Coder 支持代码填充补全(Fill-in-the-Middle)。例如,补全快速排序函数:input_text = """<|fim_prefix|>def quicksort(arr): if len(arr) <= 1: return arr pivot = arr[len(arr) // 2] <|fim_suffix|> middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quicksort(left) + middle + quicksort(right)<|fim_middle|>""" messages = [{"role": "system", "content": "You are a code completion assistant."}, {"role": "user", "content": input_text}] text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) model_inputs = tokenizer([text], return_tensors="pt").to(device) generated_ids = model.generate(model_inputs.input_ids, max_new_tokens=512, do_sample=False)[0] output = tokenizer.decode(generated_ids[len(model_inputs.input_ids[0]):], skip_special_tokens=True) print(output)
模型会自动补全缺失的代码部分。
- 代码修复
Qwen3-Coder 可检测并修复代码错误。用户可输入包含错误的代码,模型会返回修复后的版本。例如,在 Aider 基准测试中,Qwen3-Coder-480B-A35B-Instruct 得分与 GPT-4o 相当,适合复杂错误修复。 - 使用 Qwen Code 工具
Qwen Code
是一个命令行工具,优化了 Qwen3-Coder 的解析和工具支持。运行以下命令:cd your-project/ qwen
示例命令:
- 查看项目架构:
qwen > Describe the main pieces of this system's architecture
- 改进函数:
qwen > Refactor this function to improve readability and performance
- 生成文档:
qwen > Generate comprehensive JSDoc comments for this function
该工具支持自动化任务,如处理 git 提交和代码重构。
- 查看项目架构:
- 代理任务
Qwen3-Coder 支持代理任务,例如浏览器操作或工具调用。配置方法:- 设置 API 提供商为
OpenAI Compatible
。 - 输入 DashScope API 密钥。
- 设置自定义 URL:
https://dashscope-intl.aliyuncs.com/compatible-mode/v1
。 - 选择模型:
qwen3-coder-plus
。
模型可处理复杂的代理任务,如自动化脚本执行或浏览器交互。
- 设置 API 提供商为
注意事项
- 上下文长度:默认支持256K令牌,适合大型代码库分析。使用 YaRN 可扩展至1M令牌。
- 硬件要求:推荐使用 GPU(如 CUDA 设备)以提高推理速度。较小模型(如 Qwen3-8B)适合低资源环境。
- 许可:模型在 Apache 2.0 许可下开源,允许自由使用和修改,但商业用途需遵守许可协议。
应用场景
- 软件开发
开发者可使用 Qwen3-Coder 快速生成代码、修复错误或补全函数,适合从初学者到专业开发者的各种项目。例如,生成 Web 应用后端代码或优化嵌入式系统代码。 - 自动化工作流
通过Qwen Code
工具,开发者可自动化处理 git 提交、代码重构或文档生成,适合团队协作和 DevOps 场景。 - 多语言项目
Qwen3-Coder 支持100多种语言,适合开发多语言应用或进行代码翻译,如将 Python 代码转换为 C++。 - 大型代码库管理
256K令牌的上下文支持让模型能处理大型代码库,适合分析和优化复杂项目,如企业级软件或开源仓库。
QA
- Qwen3-Coder 支持哪些编程语言?
它支持92种编程语言,包括 Python、C、C++、Java、JavaScript 等,覆盖主流开发需求。 - 如何处理大型代码库?
模型原生支持256K令牌上下文,可通过 YaRN 扩展至1M令牌。使用Qwen Code
工具可直接查询和编辑大型代码库。 - Qwen3-Coder 是否免费?
模型在 Apache 2.0 许可下开源,免费下载和使用。商业用途需遵守许可协议。 - 如何优化模型性能?
使用 GPU 设备(如 CUDA)可提高推理速度。调整参数如max_new_tokens
和top_p
可优化生成质量。