CodeQwen1.5

义项:代码大语言模型
CodeQwen1.5

CodeQwen1.5 是阿里巴巴通义千问团队推出的一款代码专用大语言模型,属于 Qwen1.5 开源系列的成员。它基于 Qwen1.5 语言模型初始化,参数量为 70 亿,使用约 3 万亿个代码相关词元(token)进行预训练,支持 92 种编程语言,上下文长度可达 64K 词元,提供基础版与对话版(Chat)两种形态。[1] 该模型在代码生成、长上下文建模、代码修改与文本转 SQL 等任务上公开发布了评测结果,是开源代码模型方向的一个代表性发布。[2]

目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

CodeQwen1.5 是 通义千问团队为 Qwen1.5 系列开发的代码专用版本,采用仅解码器(decoder-only)的 Transformer 结构,在大规模代码数据上预训练而成。[1][3] 它并非从零训练的新模型,而是以 Qwen1.5 语言模型为初始化起点,再经代码语料继续预训练得到,因此继承了该系列的分词与推理框架。

该模型公开的规格为 70 亿参数、约 3 万亿代码相关词元的训练量、92 种编程语言支持以及最长 64K 词元的上下文窗口,并提供基础模型与对话模型两种检查点。[1][2]

原理

CodeQwen1.5 沿用自回归语言建模方式:模型根据已给定的词元序列预测下一个词元,代码文件在其中被视为由标识符、关键字、缩进与注释构成的文本序列,因而可以通过大规模语料学习语法结构与常见写法。[1] 有研究认为代码的相对规范化与可验证性,使这类任务适合用语言模型处理。[3]

在结构上,模型引入分组查询注意力(GQA),让多个查询头共享同一组键值头,以降低推理阶段键值缓存的显存占用,官方说明此举用于提升推理效率。[1] 长上下文能力来自训练数据的组织方式:团队收集并构造了仓库级的长序列代码数据,通过调整数据配比,使模型能够接收最长 64K 词元的输入。

对话版本使用 ChatML 模板组织消息,在输入中写入系统提示与用户轮次标记,再由模型生成回复,解码时通过设置最大新词元数控制输出长度。[3] 量化版本则以 AWQ 等后训练量化方法压缩权重,以便在显存较小的设备上部署。[4]


flowchart LR

A[代码与自然语言混合语料] --> B[Qwen1.5 初始化]

B --> C[约 3 万亿代码词元继续预训练]

C --> D[基础模型 CodeQwen1.5-7B]

D --> E[指令微调与对齐]

E --> F[对话模型 CodeQwen1.5-7B-Chat]

F --> G[代码生成、补全、修复、文本转 SQL]

发展历程

2024 年 4 月 16 日,模型代码仓库完成初始提交,随后团队在 4 月 17 日前后发布 CodeQwen1.5,并将其定位为 Qwen1.5 开源家族中的代码专家成员。[3][5] 发布时同步提供 70 亿参数的基础模型与对话模型两个版本。[2]

发布之后,模型被接入多种推理与部署工具,官方博客列出了 Transformers、vLLM、llama.cpp、Ollama 等使用途径,社区也提供了 GGUF 等多种量化格式的权重。[6][7] 模型采用通义千问研究许可发布,权重可在 Hugging Face、ModelScope 等平台获取。[1]

应用

最直接的应用是代码生成:用户以自然语言描述需求,模型输出可执行的函数或脚本,官方在 HumanEval、MBPP 等基准上给出过对比数据,其中基础模型 0-shot HumanEval 得分为 51.8,对话模型为 83.5。[3] 基础模型还支持代码中间填充(infilling),可在已有文件中续写缺失片段,适合作为编辑器补全功能的后端。[1]

由于上下文可达 64K 词元,模型可用于仓库级任务,官方在 SWE Bench 上将其作为开源模型参赛,用于在真实代码库中定位问题并生成能通过单元测试的补丁。[6] 代码修改是另一类用途,官方在 CodeEditorBench 的调试、翻译、语言切换与代码润色四个维度上进行了评测。[6]

在数据交互场景中,模型可把自然语言问题转换为 SQL 查询,官方在 Spider 与 Bird 两个文本转 SQL 基准上测试了对话版本,并说明合成数据在预训练和微调阶段均有使用。[6] 团队将这类能力的目标描述为降低非编程人员查询数据库的门槛。[6]

局限

参数规模决定了能力上限。模型仅有 70 亿参数,在 HumanEval 等基准上与同期闭源大模型仍有明显差距,官方公布的对话模型 0-shot HumanEval 为 83.5,而 GPT-4-Turbo 为 85.4,基础模型则更低。[3] 官方博客同时说明,评测主要集中在 Python,其他语言的表现只能参考 MultiPL-E 的有限结果。

评测结果本身也存在数据污染风险。团队明确指出,预训练语料中包含 LeetCode 数据,这可能对 LiveCodeBench 的成绩有帮助,因此该榜排名不宜直接视为泛化能力的证明。 长上下文方面,官方对仓库级长序列的验证依赖合成任务与困惑度曲线,并未给出覆盖各类真实工程的结论。[2]

使用方式上也有约束。官方不建议把基础模型直接用于对话,它更适合微调、代码填充与生成,且生成时需要谨慎设置停止条件,否则输出可能越界。[1] 部署时还需注意依赖版本,Qwen1.5 系列要求 Transformers 4.37.0 及以上,否则会出现键名错误。[1]

参见

  • 通义千问 —— CodeQwen1.5 所属的模型系列及其开发团队。

  • Qwen1.5 —— CodeQwen1.5 初始化所依据的基础语言模型系列。

  • 大语言模型 —— CodeQwen1.5 所属的技术类别。

  • Transformer —— 模型采用的神经网络架构。

  • SQL —— 模型文本转 SQL 能力所面向的查询语言。

  • HumanEval —— 用于衡量代码生成能力的公开评测基准。

参考资料

  1. README.md · Qwen/CodeQwen1.5-7B at main [引用日期2026-10-29]
  2. Code with CodeQwen1.5 [引用日期2026-10-29]
  3. CodeQwen1 [引用日期2026-10-29]
  4. license: other [引用日期2026-10-29]
  5. 通义千问开源基于Qwen1.5的代码模型CodeQwen1.5 [引用日期2026-10-29]
  6. github.com 上的网页 [引用日期2026-10-29]
  7. codeqwen1.5-chat [引用日期2026-10-29]
词条评价
词条统计

浏览次数:0 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-28T18:27:04Z

历史版本

本条目引用的词条
通义千问 SQL Qwen1.5 大语言模型 Transformer HumanEval