本文原文来自DataLearnerAI官方博客:
编程大模型是当前大语言模型里面最重要的一类。一般是基础大模型在预训练之后,加入代码数据集继续训练得到。在代码补全、代码生成方面一般强于常规的大语言模型。阿里最新开源的70亿参数大模型CodeQwen1.5-7B在HumanEval评测结果上超过了GPT-4早期版本(GPT-4发布的技术报告),表现异常地好!
CodeQwen1.5-7B模型简介CodeQwen1.5-7B-Chat在HumanEval评测上超过了GPT-4CodeQwen1.5-7B在现实复杂任务的评测结果CodeQwen1.5-7B模型的超长上下文CodeQwen1.5-7B模型开源情况CodeQwen1.5-7B模型简介千问系列大语言模型是阿里巴巴开源的一系列大模型。最新的Qwen1.5系列是Qwen2的beta版本,比第一代的Qwen模型提升很多。由于开源协议友好,能力强大在开源领域受到非常广泛的关注。
此前,Qwen1.5系列主要是不同参数规模的大语言模型(参考:重磅!第二代通义千问大模型开源,阿里巴巴一口气开源了30个不同参数规模的模型,其中Qwen1.5-72B仅次于GPT-4.)。这次开源的CodeQwen1.5-7B是千问系列首个针对编程优化的大语言模型,参数规模70亿。尽管参数量不大,但是评测结果表现非常优秀。
CodeQwen1.5-7B在大约3万亿tokens数据集上进行了预训练(官方说是代码相关数据集,但是没有披露详情)。支持92种编程语言以及超长上下文(64K)。
CodeQwen1.5-7B分为两个版本,一个是基础的预训练模型CodeQwen1.5-7B,一个是在此基础上做了聊天优化的版本,即Qwen1.5-7B-Chat,后者在各项评测数据上的得分大幅提高(按照目前业界类似的做法,应该是在类似评测格式的数据集上做了微调,注意只是格式类似,不是原始数据)。
CodeQwen1.5-7B-Chat在HumanEval评测上超过了GPT-4HumanEval是一个用于评估大模型编程性能的基准测试,HumanEval 包括各种不同的编程问题,如算法数据结构、字符串处理、数学问题等。这个数据集由OpenAI创建,是当前评估大模型编程性能最主要的基准之一。
MBPP是由Google Research创建的另一个大模型编程能力评测基准,包含1000个唯一的编程问题,覆盖了各种类型和难度的问题,从简单的字符串操作到复杂的算法问题。
在这两个评测基准上,CodeQwen1.5-7B表现都都非常亮眼。基座模型版本CodeQwen1.5-7B在同等参数规模的模型上得分最高,如下表所示:
模型名称
参数规模
HumanEval
HumanEval+
MBPP
MBPP+
MBPP(3-shot)
CodeLlama-Base
70亿
33.5
25.6
52.1
41.6
38.6
StarCoder2
70亿
35.4
29.9
54.4
45.6
51.0
DeepSeek-Coder-Base
67亿
47.6
39.6
70.2
56.6
60.6
CodeQwen1.5
70亿
51.8
45.7
72.2
60.2
61.8
而CodeQwen1.5-7B-Chat版本的HumanEval得分甚至超过了GPT-4早期版本,比GPT-4-Turbo(2023年11月版本)略低。
模型名称
参数规模
HumanEval
HumanEval+
MBPP
MBPP+
MBPP(3-shot)
GPT-3.5-Turbo
-
76.8
70.7
82.5
69.7
70.8
GPT-4-Turbo (Nov 2023)
-
85.4
81.7
83.5
70.7
80.0
DeepSeek-Coder-Instruct
67亿
78.6
70.1
73.2
63.4
65.4
CodeQwen1.5-Chat
70亿
83.5
78.7
77.7
67.2
70.6
不过MBPP相对困难一点点,与GPT-4-Turbo差距还是很明显的。
在DataLearnerAI收集大模型评测数据上,CodeQwen1.5-7B甚至排到了全球第三(按照HumanEval排序)。
数据来源:
而这个分数超过了Gemini-ultra!
CodeQwen1.5-7B在现实复杂任务的评测结果上述两类大模型评测基准是常规的评测。通过类似的评测数据集微调是可以提升模型的针对性评测结果的。而在真实的编程数据中,要复杂的多。这里Qwen官方团队也公开了它在LiveCodeBench上的评测结果。
LiveCodeBench的目的是做无污染的评测,收集最新的LeetCode等编程题目用以评测,所以相对更难针对性训练。这个平常的结果可以看出,CodeQwen1.5-7B的表现没那么靠前,但是以70亿参数规模来看,依然是非常优秀。
排在CodeQwen1.5-7B模型前面的模型都在300亿参数规模以上,且大多数是闭源模型,而它的得分是明显超过MetaAI开源的CodeLlama-34B的!后者的参数规模是340亿。
CodeQwen1.5-7B模型的超长上下文编程大模型如果可以支持超长上下文的输入和输出会大大提高编程大模型的应用水平。
Qwen1.5-7B的最高输入达到了64K,在70亿参数规模的大模型上非常少见。下图是Qwen团队收集的GitHub一些高质量代码仓测试的Qwen1.5-7B的困惑度指标结果。
大模型的困惑度(Perplexity)是评估语言模型性能的一种指标,用于量化模型对样本数据的处理能力。困惑度的计算基于模型对测试集中单词序列的概率估计。困惑度指标越低越好。随着输入序列的增长CodeQwen1.5-7B依然能保持下降,说明在长序列上依然效果不错。与DeepSeek-Coder-6.7B模型在“大海捞针”测试中对比更加明显:
CodeQwen1.5-7B模型开源情况如前所述,CodeQwen1.5-7B模型分为基础预训练版本和Chat版本。同时官方还开源了Chat的量化版本,一个是GGUF格式,一个是AWQ格式。以通义千问大模型的社区协议开源,可以免费商用!
具体开源信息参考:
阿里加油