通义千问发布开源模型 Qwen1.5,全系支持 32K 上下文
Introducing Qwen1.5
- 1通义千问开源 Qwen1.5 系列 base 与 chat 模型,尺寸覆盖 0.5B 到 110B,另含一个 MoE 模型
- 2官方评测称 Qwen1.5-72B 在各基准全面超过 Llama2-70B,72B-Chat 的 MT-Bench 得分 8.61
- 3全系模型统一支持最长 32768 tokens 上下文,官方称 72B-Chat 在 L-Eval 上明显超过 GPT3.5-turbo-16k
- 4代码已合并进 Hugging Face transformers,4.37.0 以上版本无需 trust_remote_code 即可加载
Qwen1.5 把模型能力升级和接入成本下降打包在一起,官方将适配工作直接做进主流框架,换取开发者的迁移便利。
- 影响:全尺寸开源加 Int4、Int8、AWQ、GGUF 量化版本,私有化部署和多尺寸选型的空间变大;小模型在 RAG 与长文本任务上的官方成绩可观,本地部署成本有下探空间;官方数据仍明显落后 GPT-4-Turbo,高端场景需要留出替代预案。
- 参考:可考虑先拿业务测试题对比 Qwen1.5-72B-chat 与现有模型的表现;值得测算 7B 到 14B 量化版本在私有环境跑 RAG 的成本;接入前先核对 transformers 和 vLLM 等框架的版本要求。
- 依据:各项性能与得分均出自 Qwen 团队官方博客评测,官方口径,暂无独立验证;涉及 MMLU、MT-Bench、L-Eval、RGB、T-Eval 等基准。
GITHUB HUGGING FACE MODELSCOPE 演示 DISCORD
简介
最近几个月,我们一直专注于打造一个“好”的模型,同时优化开发者体验。随着我们向 Qwen 系列的下一代 Qwen1.5 迈进,本次更新恰好在农历新年前到来。

借助 Qwen1.5,我们以六个尺寸开源了基础与聊天模型:0.5B、1.8B、4B、7B、14B、32B、72B 和 110B,此外还有一个 MoE 模型(更多信息请参阅博客)。按照惯例,我们还提供了量化模型,包括 Int4 和 Int8 GPTQ 模型,以及 AWQ 和 GGUF 量化模型。为了提升开发者体验,我们已将 Qwen1.5 的代码合并进 Hugging Face transformers,现在只需 transformers>=4.37.0 即可使用,无需 trust_remote_code。
我们与多个框架展开了合作:部署方面的 vLLM 和 SGLang,量化方面的 AutoAWQ 和 AutoGPTQ,微调方面的 Axolotl 和 LLaMA-Factory,以及用于本地 LLM 推理的 llama.cpp,它们现在均已支持 Qwen1.5。Qwen1.5 系列已在 Ollama 和 LMStudio 等平台上架。此外,API 服务不仅提供于 DashScope,还提供于 together.ai,可在全球范围内访问。访问这里即可开始使用,我们推荐尝试 Qwen1.5-72B-chat。

本次发布对聊天模型与人类偏好的对齐带来了显著改进,并增强了多语言能力。所有模型现在均统一支持最长 32768 tokens 的上下文长度。基础语言模型的质量也有小幅提升,这可能有助于您的微调工作。这一步是我们朝着打造真正“好”的模型这一目标迈出的一小步。
性能
为了帮助大家更好地了解 Qwen1.5 的性能,我们对基础模型和聊天模型在不同能力上进行了全面评估,包括语言理解、编程、推理等基础能力,以及多语言能力、人类偏好、智能体、检索增强生成(RAG)等。
基础能力
为了评估语言模型的基础能力,我们在传统基准上进行了评测,包括 MMLU(5-shot)、C-Eval、Humaneval、GS8K、BBH 等。
| 模型 | MMLU | C-Eval | GSM8K | MATH | HumanEval | MBPP | BBH | CMMLU |
|---|---|---|---|---|---|---|---|---|
| GPT-4 | 86.4 | 69.9 | 92.0 | 45.8 | 67.0 | 61.8 | 86.7 | 71.0 |
| Llama2-7B | 46.8 | 32.5 | 16.7 | 3.3 | 12.8 | 20.8 | 38.2 | 31.8 |
| Llama2-13B | 55.0 | 41.4 | 29.6 | 5.0 | 18.9 | 30.3 | 45.6 | 38.4 |
| Llama2-34B | 62.6 | - | 42.2 | 6.2 | 22.6 | 33.0 | 44.1 | - |
| Llama2-70B | 69.8 | 50.1 | 54.4 | 10.6 | 23.7 | 37.7 | 58.4 | 53.6 |
| Mistral-7B | 64.1 | 47.4 | 47.5 | 11.3 | 27.4 | 38.6 | 56.7 | 44.7 |
| Mixtral-8x7B | 70.6 | - | 74.4 | 28.4 | 40.2 | 60.7 | - | - |
| Qwen1.5-7B | 61.0 | 74.1 | 62.5 | 20.3 | 36.0 | 37.4 | 40.2 | 73.1 |
| Qwen1.5-14B | 67.6 | 78.7 | 70.1 | 29.2 | 37.8 | 44.0 | 53.7 | 77.6 |
| Qwen1.5-32B | 73.4 | 83.5 | 77.4 | 36.1 | 37.2 | 49.4 | 66.8 | 82.3 |
| Qwen1.5-72B | 77.5 | 84.1 | 79.5 | 34.1 | 41.5 | 53.4 | 65.5 | 83.5 |
在每个模型尺寸上,Qwen1.5 都在各项评估基准中展现出强劲的性能。其中,Qwen1.5-72B 在所有基准上都优于 Llama2-70B,展现了其在语言理解、推理和数学方面的卓越能力。
鉴于近期小型语言模型备受关注,我们将参数量小于 70 亿的 Qwen1.5 与社区中最出色的小规模模型进行了比较。结果如下所示:
| 模型 | 非嵌入参数量 | MMLU | C-Eval | GSM8K | MATH | HumanEval | MBPP | BBH | CMMLU |
|---|---|---|---|---|---|---|---|---|---|
| Tinyllama-1.1B | 1.1B | 24.3 | 25.0 | 2.3 | 0.7 | 6.7 | 19.9 | 28.8 | 24.0 |
| Gemini-Nano-3B | - | - | - | 22.8 | - | - | 27.2 | 42.4 | - |
| StableLM-Zephyr-3B | 2.7B | 45.9 | 30.3 | 52.5 | 12.5 | 35.4 | 31.9 | 37.7 | 30.9 |
| Phi-2 | 2.5B | 52.7 | 23.4 | 57.2 | 3.5 | 47.6 | 55.0 | 43.4 | 24.2 |
| MiniCPM-2B | 2.4B | 53.5 | 51.1 | 53.8 | 10.2 | 50.0 | 47.3 | 36.9 | 51.1 |
| Gemma-2B | 2.0B | 42.3 | - | 17.7 | 11.8 | 22.0 | 29.2 | 35.2 | - |
| Qwen1.5-0.5B | 0.3B | 39.2 | 50.5 | 22.0 | 3.1 | 12.2 | 6.8 | 18.3 | 46.6 |
| Qwen1.5-1.8B | 1.2B | 46.8 | 59.7 | 38.4 | 10.1 | 20.1 | 18.0 | 24.2 | 57.8 |
| Qwen1.5-4B | 3.1B | 56.1 | 67.6 | 57.0 | 10.0 | 25.6 | 29.2 | 32.5 | 66.7 |
| Qwen1.5-MoE-A2.7B | 2.0B | 62.5 | 79.2 | 61.5 | 21.9 | 34.2 | 36.6 | 39.1 | 79.2 |
我们可以自信地断言,参数量在70亿以下的Qwen1.5基础模型与社区领先的小规模模型相比极具竞争力。未来,我们将继续提升小模型的质量,并探索如何有效地将大型模型固有的先进能力迁移到小模型中。
与人类偏好对齐
对齐旨在增强LLMs遵循指令的能力,帮助其提供与人类偏好紧密相符的回复。我们认识到将人类偏好融入学习过程的重要性,因而在最新Qwen系列的对齐中有效采用了直接策略优化(DPO)和近端策略优化(PPO)等技术。
然而,评估这类聊天模型的质量是一项重大挑战。 诚然,全面的人工评估是最优方法,但它在可扩展性和可复现性方面面临重大挑战。 因此,我们首先在两个广泛使用的基准上评估我们的模型,并利用先进的LLM作为评判:MT-Bench和Alpaca-Eval。结果如下所示:

我们注意到MT-Bench上的分数存在不可忽视的方差。因此,我们在结果中进行了三次不同随机种子的运行,并报告带有标准差的平均分。
| 模型 | MT-Bench | AlpacaEval 2.0 | |
|---|---|---|---|
| 平均分 | 胜率 | 长度 | |
| Qwen1.5-72B-Chat | 8.610.04 (8.67/8.61/8.56) | 27.181.30 | 1600 |
| Qwen1.5-14B-Chat | 7.910.11 (7.99/7.99/7.77) | 19.71.12 | 1608 |
| Qwen1.5-7B-Chat | 7.600.05 (7.58/7.55/7.66) | 13.201.43 | 1606 |
尽管仍显著落后于GPT-4-Turbo,但最大的开源Qwen1.5模型Qwen1.5-72B-Chat在MT-Bench和Alpaca-Eval v2上均展现出卓越的性能,超越了Claude-2.1、GPT-3.5-Turbo-0613、Mixtral-8x7b-instruct和TULU 2 DPO 70B,与Mistral Medium不相上下。
此外,尽管LLM评判的打分似乎与回复长度存在相关性,但我们的观察表明,我们的模型并不会通过生成长回复来利用LLM评判的偏差。Qwen1.5-Chat在AlpacaEval 2.0上的平均长度仅为1618,与GPT-4的长度相当,且短于GPT-4-Turbo。此外,我们在网页服务和应用上的实验也表明,用户更喜欢新聊天模型的大多数回复。
基础模型的多语言理解能力
我们精心挑选了来自欧洲、东亚和东南亚的12种多样化语言,以全面评估我们基础模型的多语言能力。为此,我们从社区的开源仓库中整理了测试集,涵盖四个不同的维度:考试、理解、翻译和数学。下表提供了每个测试集的详细信息,包括评估设置、指标及其涵盖的语言:
| 数据集 | 类别 | 方法/指标 | 语言 |
|---|---|---|---|
| MMLU-multi | 考试 | 5-shot/Acc | ar, es, fr, pt, de, it, ru, ja, ko, id |
| M3Exams | 考试 | 5-shot/Acc | pt, it, vi, th |
| BELEBELE | 理解 | 5-shot/Acc | ar, es, fr, pt, de, it, ru, ja, ko, vi, th, id |
| XWinograd | 理解 | 5-shot/Acc | fr, pt, ru, ja |
| XCOPA | 理解 | 5-shot/Acc | vi, id, th |
| PAWS-X | 理解 | 5-shot/Acc | es, fr, de, ja, ko |
| XStoryCloze | 理解 | 0-shot/Acc | ar, es, ru, id |
| Flores(zh/en↔xx) | 翻译 | 5-shot/BLEU | ar, es, fr, pt, de, it, ru, ja, ko, vi, th, id |
| MGSM | 数学 | 8-shot/Acc | es, fr, ru, de, ja, th |
详细结果如下所示:
| 模型 | 考试 | 理解 | 数学 | 翻译 |
|---|---|---|---|---|
| GPT-3.5 | 52.24 | 71.84 | 32.80 | 31.85 |
| GPT-4 | 71.64 | 83.82 | 80.13 | 34.37 |
| Llama2-7B | 34.03 | 50.13 | 9.40 | 22.19 |
| Llama2-13B | 39.55 | 57.26 | 16.80 | 25.89 |
| Llama2-70B | 55.88 | 73.19 | 40.20 | 31.56 |
| Mistral-7B | 47.12 | 63.30 | 26.33 | 23.33 |
| Mixtral-8x7B | 56.08 | 70.70 | 45.00 | 29.78 |
| Qwen1.5-0.5B | 26.98 | 44.08 | 3.13 | 9.17 |
| Qwen1.5-1.8B | 33.57 | 48.37 | 6.47 | 16.19 |
| Qwen1.5-4B | 41.43 | 59.76 | 21.33 | 23.34 |
| Qwen1.5-MoE-A2.7B | 44.54 | 61.08 | 30.20 | 27.35 |
| Qwen1.5-7B | 47.70 | 67.63 | 37.27 | 28.36 |
| Qwen1.5-14B | 55.72 | 74.10 | 49.93 | 31.69 |
| Qwen1.5-72B | 66.35 | 78.16 | 61.67 | 35.57 |
Qwen1.5 的基础模型展现了令人印象深刻的多语言能力,这一点从它在 12 种不同语言上的表现可见一斑。在涵盖考试、理解、翻译和数学等多个维度的评测中,Qwen1.5 始终交出了强劲的成绩。从阿拉伯语、西班牙语、法语,到日语、韩语和泰语,Qwen1.5 展现了在不同语言环境下理解和生成高质量内容的能力。 我们将 Qwen1.5-72B-Chat 与 GPT-3.5 进行了对比,结果如下所示:

这些结果表明 Qwen1.5 对话模型具有强大的多语言能力,可以支撑翻译、语言理解和多语言对话等下游应用。同时,我们相信多语言能力的提升也能带动整体能力的提升。
长上下文支持
随着对长文本理解需求的不断增长,我们扩展了所有模型的能力,使其支持最长 32K tokens 的上下文。我们在 L-Eval 基准上评估了 Qwen1.5 模型的表现,该基准用于衡量模型基于长上下文生成回复的能力。结果如下所示:
| 模型 | Coursera | GSM | QuALITY | TOEFL | SFiction | 平均 |
|---|---|---|---|---|---|---|
| GPT3.5-turbo-16k | 63.51 | 84.00 | 61.38 | 78.43 | 64.84 | 70.43 |
| Claude1.3-100k | 60.03 | 88.00 | 73.76 | 83.64 | 72.65 | 75.62 |
| GPT4-32k | 75.58 | 96.00 | 82.17 | 84.38 | 74.99 | 82.62 |
| Qwen-72B-Chat | 58.13 | 76.00 | 77.22 | 86.24 | 69.53 | 73.42 |
| Qwen1.5-0.5B-Chat | 30.81 | 6.00 | 34.16 | 40.52 | 49.22 | 32.14 |
| Qwen1.5-1.8B-Chat | 39.24 | 37.00 | 42.08 | 55.76 | 44.53 | 43.72 |
| Qwen1.5-4B-Chat | 54.94 | 47.00 | 57.92 | 69.15 | 56.25 | 57.05 |
| Qwen1.5-7B-Chat | 59.74 | 60.00 | 64.36 | 79.18 | 62.50 | 65.16 |
| Qwen1.5-14B-Chat | 69.04 | 79.00 | 74.75 | 83.64 | 75.78 | 76.44 |
| Qwen1.5-72B-Chat | 71.95 | 82.00 | 77.72 | 85.50 | 73.44 | 78.12 |
在性能方面,即使是像 Qwen1.5-7B-Chat 这样的小模型,在 5 项任务中的 4 项上也展现出与 GPT-3.5 相当的竞争力。我们最好的模型 Qwen1.5-72B-Chat 显著超越 GPT3.5-turbo-16k,仅略微落后于 GPT4-32k。这些结果凸显了我们在 32K tokens 内的出色表现,但并不意味着我们的模型仅支持 32K tokens。你可以将 config.json 中的 max_position_embedding 和 sliding_window 修改为更大的值,看看模型性能对你的任务是否仍然令人满意。
与外部系统连接的能力
大语言模型(LLM)之所以广受欢迎,部分原因在于它们能够整合外部知识和工具。检索增强生成(RAG)日益受到关注,因为它能缓解幻觉、实时数据不足和隐私信息处理等 LLM 常见问题。此外,强大的 LLM 通常擅长通过函数调用使用 API 和工具,使其成为担任 AI 智能体的理想选择。
我们首先在 RGB(一个 RAG 基准)上评估了 Qwen1.5-Chat 的表现,我们并未针对该基准进行任何专门优化:
| 面向检索增强生成的 RGB 英文基准 | ||||
|---|---|---|---|---|
| 模型 | 噪声 0.8(准确率↑) | 拒答 1.0(准确率↑) | 整合 0.4(准确率↑) | 反事实(准确率↑) |
| GPT4-Turbo | 85.67 | 47.33 | 60.00 | 90.00 |
| GPT3.5-Turbo | 74.33 | 27.67 | 47.00 | 21.00 |
| Llama2-70B-Chat | 82.00 | 31.00 | 56.00 | 15.00 |
| Mistral-7B-Instruct-v0.2 | 82.00 | 31.00 | 56.00 | 15.00 |
| Mixtral-8x7B-Instruct-v0.1 | 82.67 | 37.00 | 67.00 | 8.00 |
| Qwen1.5-7B-Chat | 77.67 | 25.00 | 52.00 | 9.00 |
| Qwen1.5-14B-Chat | 80.67 | 24.00 | 60.00 | 8.00 |
| Qwen1.5-72B-Chat | 81.67 | 48.67 | 61.00 | 28.00 |
| 面向检索增强生成的 RGB 中文基准 | ||||
| 模型 | 噪声 0.8(准确率↑) | 拒答 1.0(准确率↑) | 整合 0.4(准确率↑) | 反事实(准确率↑) |
| GPT4-Turbo | 75.00 | 38.67 | 63.00 | 90.00 |
| GPT3.5-Turbo | 69.00 | 13.00 | 55.00 | 25.00 |
| Llama2-70B-Chat | 28.00 | 17.00 | 32.00 | 8.00 |
| Mistral-7B-Instruct-v0.2 | 54.67 | 28.67 | 37.00 | 4.00 |
| Mixtral-8x7B-Instruct-v0.1 | 27.33 | 4.00 | 24.00 | 4.00 |
| Qwen1.5-7B-Chat | 71.00 | 10.33 | 54.00 | 20.00 |
| Qwen1.5-14B-Chat | 75.00 | 16.67 | 55.00 | 22.00 |
| Qwen1.5-72B-Chat | 76.00 | 51.00 | 66.00 | 44.00 |
随后,我们在 T-Eval 基准上测试了 Qwen 作为通用智能体的能力。所有 Qwen 模型均未针对该基准进行任何专门优化:
| T-Eval 英文智能体性能 | |||||||
|---|---|---|---|---|---|---|---|
| 模型 | 总体 | Instruct | Plan | Reason | Retrieve | Understand | Review |
| GPT4-Turbo | 86.4 | 96.3 | 87.8 | 65.3 | 88.9 | 85.8 | 94.5 |
| Llama-2-70B-Chat | 58.59 | 77.80 | 63.75 | 39.07 | 51.35 | 50.34 | 69.20 |
| Mistral-7B-Instruct-v0.2 | 46.68 | 63.57 | 60.88 | 32.59 | 17.58 | 38.08 | 67.35 |
| Mixtral-8x7B-Instruct-v0.1 | 62.15 | 42.39 | 46.48 | 60.35 | 76.69 | 73.70 | 73.31 |
| Qwen1.5-7B-Chat | 59.67 | 71.12 | 62.95 | 37.60 | 61.17 | 53.75 | 71.46 |
| Qwen1.5-14B-Chat | 71.77 | 86.16 | 73.09 | 49.51 | 72.07 | 66.03 | 83.78 |
| Qwen1.5-72B-Chat | 76.69 | 80.96 | 83.12 | 56.89 | 80.17 | 76.68 | 82.34 |
| 智能体在 T-Eval 中文上的表现 | |||||||
| 模型 | 总体 | 指令 | 规划 | 推理 | 检索 | 理解 | 审查 |
| GPT4-Turbo | 85.9 | 97.6 | 87.0 | 68.4 | 89.2 | 86.8 | 86.0 |
| Llama-2-70B-Chat | 51.15 | 53.78 | 56.65 | 34.27 | 48.24 | 50.49 | 63.45 |
| Mistral-7B-Instruct-v0.2 | 46.26 | 49.64 | 61.82 | 36.17 | 20.26 | 47.25 | 62.42 |
| Mixtral-8x7B-Instruct-v0.1 | 62.77 | 26.38 | 60.79 | 62.02 | 76.60 | 77.74 | 73.10 |
| Qwen1.5-7B-Chat | 53.15 | 60.56 | 62.31 | 42.07 | 55.28 | 55.76 | 42.92 |
| Qwen1.5-14B-Chat | 64.85 | 84.25 | 64.77 | 54.68 | 72.35 | 68.88 | 44.15 |
| Qwen1.5-72B-Chat | 72.88 | 97.50 | 80.83 | 58.11 | 76.14 | 71.94 | 52.77 |
为了测试工具使用(也称为函数调用)的能力,我们遵循以往的做法,使用我们开源的评测基准来评估模型恰当地选择和使用工具的能力:
| 工具使用基准 | |||
|---|---|---|---|
| 模型 | 工具选择 (Acc.↑) | 工具输入 (Rouge-L↑) | 误报 (Acc.↑) |
| GPT-4 | 98.0 | 95.3 | 76.1 |
| GPT-3.5 | 74.5 | 80.7 | 19.4 |
| Llama-2-70B-Chat | 88.54 | 70.36 | 0.37 |
| Mistral-7B-Instruct-v0.2 | 94.79 | 82.81 | 6.34 |
| Mixtral-8x7B-Instruct-v0.1 | 99.31 | 94.46 | 31.34 |
| Qwen1.5-7B-Chat | 95.83 | 89.48 | 92.54 |
| Qwen1.5-14B-Chat | 93.06 | 88.74 | 92.91 |
| Qwen1.5-72B-Chat | 95.14 | 91.14 | 98.51 |
最后,鉴于 Python 代码解释器已成为先进大语言模型日益强大的工具,我们还在此前开源的基准上评估了我们的模型使用这一工具的能力:
| 代码解释器基准 | ||||
|---|---|---|---|---|
| 模型 | 代码执行结果准确率 (%) | 代码可执行率 (%) | ||
| 数学↑ | 可视化-困难↑ | 可视化-简单↑ | 通用↑ | |
| GPT-4 | 82.8 | 66.7 | 60.8 | 82.8 |
| GPT-3.5 | 47.3 | 33.3 | 55.7 | 74.1 |
| Mistral-7B-Instruct-v0.2 | 25.5 | 19.1 | 44.3 | 62.1 |
| Mixtral-8x7B-Instruct-v0.1 | 47.8 | 33.3 | 54.4 | 60.3 |
| Qwen1.5-7B-Chat | 54.0 | 35.7 | 36.7 | 65.5 |
| Qwen1.5-14B-Chat | 62.1 | 46.4 | 48.1 | 70.6 |
| Qwen1.5-72B-Chat | 73.1 | 52.3 | 50.6 | 87.9 |
更大的 Qwen1.5-Chat 模型总体上优于较小的模型,在工具使用性能上接近 GPT-4。然而,在数学问题求解和可视化等代码解释器任务中,即使是最大的 Qwen1.5-72B-Chat 模型,由于编码能力的限制,也明显落后于 GPT-4。我们计划在未来的版本中,在预训练和对齐阶段增强所有 Qwen 模型的编码能力。
使用 Qwen1.5 进行开发
Qwen1.5 最大的变化是与 Hugging Face transformers 的集成。自 4.37.0 版本起,无需我们的自定义代码即可使用 Qwen1.5,这意味着你可以像下面这样加载模型:
from transformers import AutoModelForCausalLM
# This is what we previously used
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="auto", trust_remote_code=True)
# This is what you can use now
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen1.5-7B-Chat", device_map="auto")
Qwen1.5 的对话用法与之前的版本有所不同。你可以使用以下代码与 Qwen1.5 对话:
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "cuda" # the device to load the model onto
model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen1.5-14B-Chat-AWQ",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen1.5-14B-Chat-AWQ")
prompt = "Give me a short introduction to large language model."
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": prompt}
]
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
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
对于对话模型,我们不再使用特定的 model.chat() 方法,而是使用 model.generate() 配合以 tokenizer_config.json 编写的对话模板,这样我们便可以使用 tokenizer.apply_chat_template() 来生成输入,并使用 eos_token 来控制何时停止生成。
我们还提供了 AWQ 模型和 GPTQ 模型(包括 Int4 和 Int8 模型),方便你在低资源或部署场景中使用 Qwen1.5。由于 Huggingface transformers 支持 AWQ 和 GPTQ,你只需使用相应的模型名称,即可按照上述相同方式使用它们。
此外,我们已将我们的代码集成到流行的推理框架中,方便你轻松部署模型。现在 vLLM>=0.3.0 和 SGLang>=0.1.11 已官方支持 Qwen1.5。请查阅它们的官方 GitHub 仓库和文档以了解详细用法。这里我们演示一个示例,展示如何使用 vLLM 为我们的模型构建兼容 OpenAI-API 的接口:
python -m vllm.entrypoints.openai.api_server --model Qwen/Qwen1.5-7B-Chat
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen1.5-7B-Chat",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Tell me something about large language models."}
]
}'
对于希望在本地运行大语言模型的用户,llama.cpp 也提供了对 Qwen1.5 的支持,并且我们在 HF 模型中心官方提供了 GGUF 格式的量化模型。你可以使用以下代码在 llama.cpp 中运行 Qwen1.5:
./main -m qwen1.5-7b-chat-q2_k.gguf -n 512 --color -i -cml -f prompts/chat-with-qwen.txt
此外,你可以将 GGUF 文件与 Ollama 一起使用。得益于 Ollama 的支持,你现在可以直接使用一行命令:
ollama run qwen
或者,你可以使用 GGUF 文件配合 llamafile,用单个文件来运行我们的模型。
要在本地搭建网页演示,我们建议你使用 Text generation web UI,它非常易于使用。
对于希望为自己训练更好或更适合的模型(例如后训练)的高级开发者来说,Qwen1.5 已得到 Hugging face trainer 和 Peft 的支持。此外,还有一些易用的框架,同时支持有监督微调(SFT)和对齐(PPO、DPO 等)。目前,LLaMA-Factory 和 Axolotl 均已支持 Qwen1.5 的训练。我们建议你前往它们的官方 github 仓库和文档,了解更多高级用法。
如果你想将 Qwen1.5 用于下游应用,例如 RAG、工具使用、agent,你现在可以构建兼容 OpenAI-API 的 API,或运行本地模型来对接知名框架,例如 LlamaIndex、LangChain、CrewAI。
总的来说,由于我们重视你的开发体验,我们不仅尽力为社区提供优秀的模型,还努力让一切对大家而言都更加简单。我们希望你能享受使用 Qwen1.5 的过程,并希望它能在你的研究或应用任务中助你一臂之力。
结论
我们很高兴地介绍 Qwen1.5,即 Qwen 系列的下一个版本。在此次发布中,我们开源了 6 种尺寸的 base 和 chat 模型,包括 0.5B、1.8B、4B、7B、14B 和 72B,并且还提供了量化模型。我们已将 Qwen1.5 的代码合并到 Hugging face transformers 中,你可以直接通过 transformers>=4.37.0 使用而无需 trust_remote_code。此外,我们还让 vLLM、SGLang、AutoGPTQ 等框架支持了 Qwen1.5。我们相信,从现在开始,使用我们的模型会容易得多。我们相信,这次发布虽然是模型质量上的一小步,却是开发者体验上的一大步。希望你喜欢它并享受使用它的过程。欢迎加入我们的 Discord 或 WeChat,与我们分享你的经验、评论或任何你想聊的内容。我们期待收到你的消息。
引用
@misc{qwen1.5,
title = {Introducing Qwen1.5},
url = {https://qwenlm.github.io/blog/qwen1.5/},
author = {Qwen Team},
month = {February},
year = {2024}
}
来源:通义千问 Qwen:Blog · qwenlm.github.io