海外访问:www.kdjingpai.com
Ctrl + D 收藏本站

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 上,开发者可通过以下步骤安装和使用:

  1. 克隆仓库
    在终端运行以下命令克隆 Qwen3-Coder 仓库:

    git clone https://github.com/QwenLM/Qwen3-Coder.git
    

    这会将项目文件下载到本地。

  2. 安装依赖
    进入项目目录并安装必要的 Python 依赖:

    cd Qwen3-Coder
    pip install -e ./"[gui,rag,code_interpreter,mcp]"
    

    如果只需要最小依赖,可以运行 pip install -e ./

  3. 配置环境变量
    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

  4. 下载模型
    模型权重可从 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()
    

使用 Qwen3-Coder

Qwen3-Coder 提供多种功能,以下是主要功能的详细操作流程:

  1. 代码生成
    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 等,适合多种开发场景。

  2. 代码补全
    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)
    

    模型会自动补全缺失的代码部分。

  3. 代码修复
    Qwen3-Coder 可检测并修复代码错误。用户可输入包含错误的代码,模型会返回修复后的版本。例如,在 Aider 基准测试中,Qwen3-Coder-480B-A35B-Instruct 得分与 GPT-4o 相当,适合复杂错误修复。
  4. 使用 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 提交和代码重构。
  5. 代理任务
    Qwen3-Coder 支持代理任务,例如浏览器操作或工具调用。配置方法:

    • 设置 API 提供商为 OpenAI Compatible
    • 输入 DashScope API 密钥。
    • 设置自定义 URL:https://dashscope-intl.aliyuncs.com/compatible-mode/v1
    • 选择模型:qwen3-coder-plus
      模型可处理复杂的代理任务,如自动化脚本执行或浏览器交互。

注意事项

  • 上下文长度:默认支持256K令牌,适合大型代码库分析。使用 YaRN 可扩展至1M令牌。
  • 硬件要求:推荐使用 GPU(如 CUDA 设备)以提高推理速度。较小模型(如 Qwen3-8B)适合低资源环境。
  • 许可:模型在 Apache 2.0 许可下开源,允许自由使用和修改,但商业用途需遵守许可协议。

应用场景

  1. 软件开发
    开发者可使用 Qwen3-Coder 快速生成代码、修复错误或补全函数,适合从初学者到专业开发者的各种项目。例如,生成 Web 应用后端代码或优化嵌入式系统代码。
  2. 自动化工作流
    通过 Qwen Code 工具,开发者可自动化处理 git 提交、代码重构或文档生成,适合团队协作和 DevOps 场景。
  3. 多语言项目
    Qwen3-Coder 支持100多种语言,适合开发多语言应用或进行代码翻译,如将 Python 代码转换为 C++。
  4. 大型代码库管理
    256K令牌的上下文支持让模型能处理大型代码库,适合分析和优化复杂项目,如企业级软件或开源仓库。

QA

  1. Qwen3-Coder 支持哪些编程语言?
    它支持92种编程语言,包括 Python、C、C++、Java、JavaScript 等,覆盖主流开发需求。
  2. 如何处理大型代码库?
    模型原生支持256K令牌上下文,可通过 YaRN 扩展至1M令牌。使用 Qwen Code 工具可直接查询和编辑大型代码库。
  3. Qwen3-Coder 是否免费?
    模型在 Apache 2.0 许可下开源,免费下载和使用。商业用途需遵守许可协议。
  4. 如何优化模型性能?
    使用 GPU 设备(如 CUDA)可提高推理速度。调整参数如 max_new_tokens 和 top_p 可优化生成质量。
0已收藏
0已赞

相关推荐

找不到AI工具?在这试试!

输入关键词,即可 无障碍访问 必应 搜索,快速找到本站所有 AI 工具。

邮箱

联系我们

回顶部

zh_CN简体中文