Qwen2 是新一代的 Qwen 大型语言模型系列。在 Qwen2 中,我们发布了一系列基础语言模型和指令微调语言模型,参数规模从 0.50 亿到 720 亿不等,其中包括混合专家模型(Mixture-of-Experts)。本仓库包含的是 70 亿参数的 Qwen2 指令微调模型。
与当前最先进的开源语言模型(包括此前发布的 Qwen1.5)相比,Qwen2 在一系列针对语言理解、文本生成、多语言能力、代码编写、数学运算、推理等任务的基准测试中,普遍超越了大多数开源模型,并展现出与专有模型相竞争的实力。
Qwen2-7B-Instruct 支持最长 131,072 个 token 的上下文长度,能够处理大规模输入。关于如何部署 Qwen2 以处理长文本的详细说明,请参考本节。
Qwen2 是一个语言模型系列,包含不同规模的解码器语言模型。对于每个规模,我们都会发布基础语言模型和经过对齐的对话模型。该系列模型基于 Transformer 架构,采用 SwiGLU 激活函数、注意力 QKV 偏置、分组查询注意力(group query attention)等技术。此外,我们还对分词器进行了改进,使其能够更好地适应多种自然语言和代码。
我们使用海量数据对模型进行了预训练,并通过监督微调(supervised finetuning)和直接偏好优化(direct preference optimization)对模型进行了后续训练。
Qwen2 的代码已集成到最新版本的 Hugging Face Transformers 库中,建议您安装 transformers>=4.37.0,否则可能会遇到以下错误:
KeyError: 'qwen2'这里提供一个使用apply_chat_template的代码片段,向您展示如何加载分词器和模型以及如何生成内容。
python3 examples/inference.py --model_name_or_path=./我们简要对比了Qwen2-7B-Instruct与其他同规模指令微调LLM,包括Qwen1.5-7B-Chat。结果如下表所示:
| 数据集 | Llama-3-8B-Instruct | Yi-1.5-9B-Chat | GLM-4-9B-Chat | Qwen1.5-7B-Chat | Qwen2-7B-Instruct |
|---|---|---|---|---|---|
| 英文 | |||||
| MMLU | 68.4 | 69.5 | 72.4 | 59.5 | 70.5 |
| MMLU-Pro | 41.0 | - | - | 29.1 | 44.1 |
| GPQA | 34.2 | - | - | 27.8 | 25.3 |
| TheroemQA | 23.0 | - | - | 14.1 | 25.3 |
| MT-Bench | 8.05 | 8.20 | 8.35 | 7.60 | 8.41 |
| 代码 | |||||
| Humaneval | 62.2 | 66.5 | 71.8 | 46.3 | 79.9 |
| MBPP | 67.9 | - | - | 48.9 | 67.2 |
| MultiPL-E | 48.5 | - | - | 27.2 | 59.1 |
| Evalplus | 60.9 | - | - | 44.8 | 70.3 |
| LiveCodeBench | 17.3 | - | - | 6.0 | 26.6 |
| 数学 | |||||
| GSM8K | 79.6 | 84.8 | 79.6 | 60.3 | 82.3 |
| MATH | 30.0 | 47.7 | 50.6 | 23.2 | 49.6 |
| 中文 | |||||
| C-Eval | 45.9 | - | 75.6 | 67.3 | 77.2 |
| AlignBench | 6.20 | 6.90 | 7.01 | 6.20 | 7.21 |
如果您觉得我们的工作对您有帮助,欢迎引用。
@article{qwen2,
title={Qwen2 Technical Report},
year={2024}
}