跳到正文
原文
通义千问 Qwen:Blog·· 2024-09-19精选AI 评分74

通义千问发布 Qwen2.5 系列模型,涵盖通用、代码与数学专用版本

Qwen2.5: A Party of Foundation Models!

文章要点
  • 1通义千问发布 Qwen2.5 系列,0.5B 到 72B 共 7 个尺寸,另有 Coder 与 Math 专用模型
  • 2官方称预训练数据达 18 万亿 token,MMLU、HumanEval、MATH 分别达 85+、85+、80+
  • 3官方基准称 Qwen-Plus 显著超过 DeepSeek-V2.5,部分方面仍不及 GPT4-o 与 Claude-3.5-Sonnet
  • 4除 3B 和 72B 外均采用 Apache 2.0,支持 128K 上下文、8K 输出与 29 种以上语言
决策要点

阿里把通用、代码、数学模型一次性全尺寸开源,企业自部署可选的中文开源底座明显变多,跑分均为官方自评。

  • 影响:除 3B 和 72B 外均为 Apache 2.0,私有化部署的授权成本低;14B 与 32B 档位给出效果与算力成本的折中选项;官方基准为自评,采购选型前宜用自家业务数据复核。
  • 参考:可考虑把 14B 与 32B 档位加入私有化选型清单,用自有评测集与现用模型对比;走 API 路线的团队可先估算 Qwen-Plus 与 Qwen-Turbo 在目标场景的单次调用成本。
  • 依据:各项跑分与对比结论均出自 Qwen 官方博客自评,暂无独立验证;模型尺寸、许可证与上下文长度为官方发布信息。
正文 · AI 翻译

GITHUB HUGGING FACE MODELSCOPE 演示 DISCORD

简介

自 Qwen2 发布以来的三个月里,众多开发者基于 Qwen2 语言模型构建了新模型,并为我们提供了宝贵的反馈。在此期间,我们一直致力于打造更智能、知识更渊博的语言模型。今天,我们很高兴地推出 Qwen 家族的最新成员:Qwen2.5。 我们即将宣布的可能是史上最大规模的开源发布!让我们开始这场盛会吧!

我们的最新发布包括大语言模型 Qwen2.5,以及面向编程的专用模型 Qwen2.5-Coder 和面向数学的专用模型 Qwen2.5-Math。所有开放权重模型均为稠密(dense)、仅解码器(decoder-only)的语言模型,提供多种尺寸,包括:

  • Qwen2.5:0.5B、1.5B、3B、7B、14B、32B 和 72B
  • Qwen2.5-Coder:1.5B、7B,32B 即将推出
  • Qwen2.5-Math:1.5B、7B 和 72B。

除 3B 和 72B 版本外,我们所有开源模型均采用 Apache 2.0 许可证。你可以在各自的 Hugging Face 仓库中找到许可证文件。除这些模型外,我们还通过 Model Studio 为旗舰语言模型 Qwen-Plus 和 Qwen-Turbo 提供 API,欢迎你前来体验!此外,我们还开源了 Qwen2-VL-72B,其性能相比上个月的发布版本有所提升。

欲了解有关 Qwen2.5、Qwen2.5-Coder 和 Qwen2.5-Math 的更多详情,欢迎访问以下链接:

Qwen2.5 LLM Qwen2.5-Coder Qwen2.5-Math

准备好用我们丰富的模型阵容解锁无限可能吧!我们很高兴与你分享这些前沿模型,也迫不及待想看到你用它们创造的精彩成果!

要点

就语言模型 Qwen2.5 而言,所有模型都在我们最新的大规模数据集上进行了预训练,该数据集包含多达 18 万亿 个 token。与 Qwen2 相比,Qwen2.5 获得了显著更多的知识(MMLU:85+),并在编程(HumanEval 85+)和数学(MATH 80+)方面的能力大幅提升。此外,新模型在指令遵循、生成长文本(超过 8K token)、理解结构化数据(例如表格)以及生成结构化输出(尤其是 JSON)方面都取得了显著改进。Qwen2.5 模型总体上对系统提示的多样性更具鲁棒性,提升了聊天机器人的角色扮演和条件设定能力。与 Qwen2 一样,Qwen2.5 语言模型支持多达 128K token 的上下文,并可生成多达 8K token。它们还保持对超过 29 种语言的多语言支持,包括中文、英语、法语、西班牙语、葡萄牙语、德语、意大利语、俄语、日语、韩语、越南语、泰语、阿拉伯语等。下面,我们提供这些模型的基本信息以及所支持语言的详情。

专门的专家语言模型,即用于编程的 Qwen2.5-Coder 和用于数学的 Qwen2.5-Math,相比其前代版本 CodeQwen1.5 和 Qwen2-Math 有了大幅增强。具体而言,Qwen2.5-Coder 在 5.5 万亿个代码相关数据 token 上进行了训练,使得即使是更小的编程专用模型,也能在编程评测基准上与更大的语言模型展开有竞争力的表现。与此同时,Qwen2.5-Math 同时支持中文和英文,并融合了多种推理方法,包括思维链、程序思维以及工具集成推理(TIR)。

Qwen2.5 Specification

性能

Qwen2.5

为了展示 Qwen2.5 的能力,我们将最大的开源模型 Qwen2.5-72B——一个 72B 参数的稠密 decoder-only 语言模型——与 Llama-3.1-70B 和 Mistral-Large-V2 等领先的开源模型进行基准测试。我们展示了指令微调版本在各种基准测试上的全面结果,同时评估模型能力和人类偏好。

Qwen2.5-72B Instruct Performance

除了指令微调的语言模型之外,我们发现旗舰开源模型 Qwen2.5-72B 的基础语言模型即使与 Llama-3-405B 这样更大的模型相比,也达到了顶尖的性能水平。

Qwen2.5-72B Base Model Performance

此外,我们将基于 API 的模型最新版本 Qwen-Plus 与领先的专有及开源模型进行基准测试,包括 GPT4-o、Claude-3.5-Sonnet、Llama-3.1-405B 和 DeepSeek-V2.5。这一对比展示了 Qwen-Plus 在当前大语言模型格局中的竞争地位。结果表明,Qwen-Plus 显著超越 DeepSeek-V2.5,与 Llama-3.1-405B 表现相当,但在某些方面仍不及 GPT4-o 和 Claude-3.5-Sonnet。这项基准测试不仅凸显了 Qwen-Plus 的优势,也指出了未来需要改进的领域,彰显了我们在大语言模型领域持续改进和创新的承诺。

Qwen-Plus Instruct Performance

Qwen2.5 的一项重要更新是重新推出我们的 14B 和 32B 模型,即 Qwen2.5-14B 和 Qwen2.5-32B。在多种任务中,这些模型的表现优于同等或更大规模的基线模型,例如 Phi-3.5-MoE-Instruct 和 Gemma2-27B-IT。它们在模型规模与能力之间实现了最佳平衡,其性能可媲美甚至超越某些更大的模型。此外,我们基于 API 的模型 Qwen-Turbo 与这两个开源模型相比提供了极具竞争力的性能,同时提供高性价比且快速的服务。

Qwen2.5-32B Instruct Performance

近来,小语言模型正成为一种显著趋势。尽管 SLM 在历史上一直落后于更大的同类模型,但性能差距正在迅速缩小。值得注意的是,如今即使是仅有 30 亿参数的模型也能取得极具竞争力的结果。配图展示了一个重要趋势:在 MMLU 中取得 65 分以上成绩的新模型正变得越来越小,凸显了语言模型知识密度的加速增长。值得注意的是,我们的 Qwen2.5-3B 就是一个典型例子,它仅用约 30 亿参数就取得了令人瞩目的性能,与前代模型相比展现了其效率和能力。

Qwen2.5 Small Model

除了在基准评测中取得的显著提升外,我们还改进了后训练方法。我们的四项关键更新包括:支持最长 8K token 的长文本生成、显著提升对结构化数据的理解能力、更可靠的结构化输出生成(尤其是 JSON 格式),以及在多样化系统提示词上的性能增强,从而实现有效的角色扮演。请查看 LLM 博客了解如何利用这些功能的详细信息。

Qwen2.5-Coder

自 CodeQwen1.5 发布以来,我们吸引了众多用户,他们依靠该模型完成各种编码任务,例如调试、解答编码相关问题和提供代码建议。我们的最新版本 Qwen2.5-Coder 专为编码应用而设计。在本节中,我们展示了 Qwen2.5-Coder-7B-Instruct 的性能结果,并与领先的开源模型进行了基准对比,其中包括参数规模明显更大的模型。

Qwen2.5-Coder Instruct Performance

我们相信 Qwen2.5-Coder 是您个人编程助手的绝佳选择。尽管体积更小,但它在多种编程语言和任务上的表现优于许多更大的语言模型,展示了其卓越的编码能力。

Qwen2.5-Math

在数学专用语言模型方面,我们于上个月发布了首批模型 Qwen2-Math。这一次,与 Qwen2-Math 相比,Qwen2.5-Math 使用了更大规模的数学相关数据进行预训练,其中包括由 Qwen2-Math 生成的合成数据。此外,我们这次还扩展了对中文的支持,并通过赋予其执行 CoT、PoT 和 TIR 的能力来加强其推理能力。Qwen2.5-Math-72B-Instruct 的整体性能超越了 Qwen2-Math-72B-Instruct 和 GPT4-o,甚至像 Qwen2.5-Math-1.5B-Instruct 这样的小型专家模型也能在与大型语言模型的对比中取得极具竞争力的表现。

Qwen2.5 Math Performance Across All Sizes

使用 Qwen2.5 开发

最简单的使用方式是通过 Hugging Face Transfomer,如 模型卡 中所示:

from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen2.5-7B-Instruct"
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "Give me a short introduction to large language model."
messages = [
    {"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
    **model_inputs,
    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]

要将 Qwen2.5 与 vLLM 一起使用,运行以下命令即可部署一个兼容 OpenAI API 的服务:

python -m vllm.entrypoints.openai.api_server \
    --model Qwen/Qwen2.5-7B-Instruct

或者使用 vllm serve(如果您使用的是 vllm>=0.5.3)。然后您就可以通过 curl 与 Qwen2.5 通信:

curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{
  "model": "Qwen/Qwen2.5-7B-Instruct",
  "messages": [
    {"role": "user", "content": "Tell me something about large language models."}
  ],
  "temperature": 0.7,
  "top_p": 0.8,
  "repetition_penalty": 1.05,
  "max_tokens": 512
}'

此外,Qwen2.5 支持 vllm 内置的工具调用。此功能需要 vllm>=0.6。如果您想启用此功能,请使用以下命令启动 vllm 的 OpenAI 兼容服务:

vllm serve Qwen/Qwen2.5-7B-Instruct --enable-auto-tool-choice --tool-call-parser hermes

然后您就可以像使用 GPT 的工具调用一样使用它。

Qwen2.5 也支持 Ollama 的工具调用。您可以通过启动 Ollama 的 OpenAI 兼容服务来使用它,使用方式与使用 GPT 的工具调用相同。

Qwen2.5 的聊天模板中也包含工具调用模板,这意味着您可以使用 Hugging Face transformers 的工具调用支持。

vllm / Ollama / transformers 的工具调用支持使用了一个受 Nous 的 Hermes 启发的工具调用模板。此前,Qwen-Agent 曾使用 Qwen2 自己的工具调用模板(该模板更难与 vllm 和 Ollama 集成)提供工具调用支持,而 Qwen2.5 同时保持了与 Qwen2 模板和 Qwen-Agent 的兼容性。

Qwen 的朋友们

💗 没有朋友们就没有 Qwen!非常感谢这些老伙伴和新朋友的支持 :

我们衷心感谢众多为 Qwen 做出贡献的团队和个人,即使他们未被特别提及。您的支持弥足珍贵,我们热忱欢迎更多朋友加入这段激动人心的旅程。携手同行,我们能够加强协作,推动开源 AI 社区的研究与发展,使其比以往更强大、更具创新力。

下一步计划?

尽管我们对能够同时发布众多高质量模型感到兴奋,我们也意识到仍然存在重大挑战。近期的发布展示了我们致力于在语言、视觉-语言和音频-语言领域开发强大基础模型的承诺。然而,将这些不同的模态整合到单一模型中,以实现对三者信息的无缝端到端处理至关重要。此外,尽管我们已经通过数据扩展在增强推理能力方面取得了进展,但我们从强化学习的最新进展(如 o1)中获得了启发,并致力于通过扩展推理计算来进一步提升模型的推理能力。我们期待尽快向您介绍下一代模型!敬请期待更多激动人心的进展!

引用

我们将很快发布 Qwen2.5 的技术报告。在发布之前,欢迎引用我们的 Qwen2 论文以及本篇博客

@misc{qwen2.5,
    title = {Qwen2.5: A Party of Foundation Models},
    url = {https://qwenlm.github.io/blog/qwen2.5/},
    author = {Qwen Team},
    month = {September},
    year = {2024}
}
@article{qwen2,
  title={Qwen2 technical report},
  author={Yang, An and Yang, Baosong and Hui, Binyuan and Zheng, Bo and Yu, Bowen and Zhou, Chang and Li, Chengpeng and Li, Chengyuan and Liu, Dayiheng and Huang, Fei and others},
  journal={arXiv preprint arXiv:2407.10671},
  year={2024}
}

来源:通义千问 Qwen:Blog · qwenlm.github.io