上新!支持100万Tokens上下文的Qwen2.5-1M 开源模型来了

简介: 上新!支持100万Tokens上下文的Qwen2.5-1M 开源模型来了

两个月前,Qwen团队升级了 Qwen2.5-Turbo,使其支持最多一百万个Tokens的上下文长度。今天,Qwen正式推出开源的 Qwen2.5-1M 模型及其对应的推理框架支持。


本次发布的亮

开源模型 本次发布了两个新的开源模型,分别是 Qwen2.5-7B-Instruct-1M 和 Qwen2.5-14B-Instruct-1M,这是Qwen首次将开源的 Qwen 模型的上下文扩展到 1M 长度。

推理框架: 为了帮助开发者更高效地部署 Qwen2.5-1M 系列模型,Qwen团队完全开源了基于 vLLM 的推理框架,并集成了稀疏注意力方法,使得该框架在处理 1M 标记输入时的速度提升了3倍到7倍。

技术报告: Qwen团队还分享了 Qwen2.5-1M 系列背后的技术细节,包括训练和推理框架的设计思路以及消融实验的结果。


另外,我们最近也推出了Qwen Chat(https://chat.qwenlm.ai/) ,一个基于 Qwen 系列的 AI 助手。你可以与他对话、编程、生成图像与视频,使用搜索以及调用工具等功能。你也可以在 Qwen Chat 中与使用上下文长度同样为 1M 的 Qwen2.5-Turbo 模型进行长序列处理。


模型性能


首先,来看看 Qwen2.5-1M 系列模型在长上下文任务和短文本任务中的性能表现。


  • 长上下文任务

在上下文长度为100万 Tokens 的大海捞针(Passkey Retrieval)任务中,Qwen2.5-1M 系列模型能够准确地从 1M 长度的文档中检索出隐藏信息,其中仅有7B模型出现了少量错误。



对于更复杂的长上下文理解任务,选择了RULER、LV-Eval 和 LongbenchChat测试集。



从这些结果中,可以得出以下几点关键结论:

显著超越128K版本:Qwen2.5-1M系列模型在大多数长上下文任务中显著优于之前的128K版本,特别是在处理超过64K长度的任务时表现出色。

性能优势明显:Qwen2.5-14B-Instruct-1M 模型不仅击败了 Qwen2.5-Turbo,还在多个数据集上稳定超越 GPT-4o-mini,为长上下文任务提供了开源模型的选择。


  • 短序列任务


可以发现:

Qwen2.5-7B-Instruct-1M 和 Qwen2.5-14B-Instruct-1M 在短文本任务上的表现与其128K版本相当,确保了基本能力没有因为增加了长序列处理能力而受到影响。


与 GPT-4o-mini 相比,Qwen2.5-14B-Instruct-1M 和 Qwen2.5-Turbo 在短文本任务上实现了相近的性能,同时上下文长度是GPT-4o-mini的八倍。


关键技术

  • 长上下文训练



长序列的训练需要大量的计算资源,因此采用了逐步扩展长度的方法,在多个阶段将Qwen2.5-1M的上下文长度从4K扩展到256K:

从预训练的Qwen2.5的一个中间Checkpoint开始,此时上下文长度为4K。


在预训练阶段,逐步将上下文长度从 4K 增加到 256K,同时使用Adjusted Base Frequency的方案,将 RoPE 基础频率从 10,000 提高到 10,000,000。


在监督微调阶段,分两个阶段进行以保持短序列上的性能:

第一阶段: 仅在短指令(最多32K长度)上进行微调,这里使用与 Qwen2.5 的 128K 版本相同的数据和步骤数。

第二阶段: 混合短指令(最多32K)和长指令(最多256K),实现在增强长任务的性能的同时,保持短任务的质量。


在强化学习阶段,在短文本(最多8K标记)上训练模型。我们发现,即使在短文本上进行训练,人类偏好的对齐的提升能够很好地泛化到长上下文任务中。 通过以上训练,我们最终获得的 Instruct 模型能够处理长达256K Tokens的序列。


通过以上训练,获得了256K上下文长度的指令微调模型。


  • 长度外推

在上述训练过程中,模型的上下文长度仅为 256K 个 Token。为了将其扩展到 1M Tokens,采用了长度外推的技术。


当前,基于旋转位置编码的大型语言模型在长上下文任务中会产生性能下降,这主要是由于在计算注意力权重时,Query 和 Key 之间的相对位置距离过大,在训练过程中未曾见过。为了解决这一问题,Qwen2.5-1M采用Dual Chunk Attention(DCA)的方法,该方法通过将过大的相对位置,重新映射为较小的值,从而解决了这一难题。



对 Qwen2.5-1M 模型及之前 128K 的版本进行了评估,分别测试了使用和不使用长度外推方法的情况。


结果表明:即使是仅在32K标记上训练的模型,如Qwen2.5-7B-Instruct,在处理1M标记上下文的 Passkey Retrieval 任务中也能达到近乎完美的准确率。这充分展示了 DCA 在无需额外训练的情况下,即可显著扩展支持的上下文长度的强大能力。


  • 稀疏注意力机制

对于长上下文语言模型,推理速度对于用户体验至关重要。为了加速预填充阶段,研究团队引入了基于 MInference 的稀疏注意机制。


此外,提出了几项改进:

分块预填充: 如果直接使用模型处理长度100万的序列,其中 MLP 层的激活权重会产生巨大的显存开销。以Qwen2.5-7B 为例,这部分开销高达 71GB。通过将分块预填充(Chunked Prefill)与稀疏注意力适配,可以将输入序列以 32768 长度分块,逐块进行预填充,MLP 层激活权重的显存使用量可减少 96.7%,因而显著降低了设备的显存需求。

集成长度外推方案: 我们在稀疏注意力机制中进一步集成了基于 DCA 的长度外推方案,这使我们的推理框架能够同时享受更高的推理效率和长序列任务的准确性。

稀疏性优化: 原始的 MInference 方法需要进行离线搜索以确定每个注意力头的最佳稀疏化配置。由于全注意力权重对内存的要求太大,这种搜索通常在短序列上进行,不一定能在更长序列下起到很好的效果。我们提出了一种能够在100万长度的序列上优化稀疏化配置的方法,从而显著减少了稀疏注意力带来的精度损失。

其他优化: 我们还引入了其他优化措施,如优化算子效率和动态分块流水线并行,以充分发挥整个框架的潜力。


通过这些改进,推理框架在不同模型大小和 GPU 设备上将 1M 个 token 长度的序列的预填充速度提高了 3.2 倍到 6.7 倍。



模型部署


  • 系统准备

为了获得最佳性能,建议使用支持优化内核的 Ampere 或 Hopper 架构的 GPU。


请确保满足以下要求

CUDA 版本:12.1 或 12.3

Python 版本:>=3.9 且 <=3.12


显存要求,对于处理 1M 长度的序列

Qwen2.5-7B-Instruct-1M:至少需要 120GB 显存(多 GPU 总和)。

Qwen2.5-14B-Instruct-1M:至少需要 320GB 显存(多 GPU 总和)。

如果 GPU 显存不满足以上要求,你仍然可以使用 Qwen2.5-1M 进行较短任务的处理。


  • 安装依赖项

暂时,你需要从自定义分支克隆 vLLM 仓库,并手动安装。研究团队正在努力将该分支提交到 vLLM 项目中。

git clone -b dev/dual-chunk-attn https://github.com/QwenLM/vllm.git
cd vllm
pip install -e . -v


  • 启动 OpenAI 兼容的 API 服务

指定模型从modelscope下载

export VLLM_USE_MODELSCOPE=True

发布OpenAI兼容的API服务

vllm serve Qwen/Qwen2.5-7B-Instruct-1M \
--tensor-parallel-size 4 \  
--max-model-len 1010000 \
-enable-chunked-prefill --max-num-batched-tokens 131072 \ 
--enforce-eager \
--max-num-seqs 1


参数说明:

--tensor-parallel-size

  • 设置为您使用的 GPU 数量。7B 模型最多支持 4 个 GPU,14B 模型最多支持 8 个 GPU。

--max-model-len

  • 定义最大输入序列长度。如果遇到内存不足问题,请减少此值。

--max-num-batched-tokens

  • 设置 Chunked Prefill 的块大小。较小的值可以减少激活内存使用,但可能会减慢推理速度。
  • 推荐值为 131072,以获得最佳性能。

--max-num-seqs

  • 限制并发处理的序列数量。


  • 与模型交互

可以使用以下方法与部署的模型进行交互:


选项 1. 使用 Curl


curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen2.5-7B-Instruct-1M",
"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
}'



选项 2. 使用 Python


from openai import OpenAI、
openai_api_key = "EMPTY" 
openai_api_base = "http://localhost:8000/v1%3C/span%3E%3C/span%3E%3Cspan%20class="lake-preview-line">from openai import OpenAIopenai_api_key = "EMPTY" openai_api_base = "http://localhost:8000/v1client%20=%20OpenAI(%20api_key=openai_api_key,%20base_url=openai_api_base,%20)%20prompt%20="""There is an important info hidden inside a lot of irrelevant text. Find it and memorize them. I will quiz you about the important information there.\n\nThe pass key is 28884. Remember it. 28884 is the pass key.\n " + \ "The grass is green. The sky is blue. The sun is yellow. Here we go. There and back again. " * 800 + \ "\nWhat is the pass key?"""# The prompt is 20k long. You can try longer prompt by replacing 800 by 40000.
# The prompt is 20k long. You can try longer prompt by replacing 800 by 40000.
chat_response = client.chat.completions.create(
  model="Qwen/Qwen2.5-7B-Instruct-1M", 
  messages=[ {"role": "user", "content": prompt}, ], 
  temperature=0.7, 
  top_p=0.8,
  max_tokens=512,
  extra_body={ "repetition_penalty": 1.05, }, 
   )
print("Chat response:", chat_response)


您还可以探索其他框架,例如Qwen-Agent,以使模型能够读取 PDF 文件等。

未来可期


虽然 Qwen2.5-1M 系列为长序列处理任务带来了优秀的开源选择,我们也充分认识到长上下文模型仍有很大的提升空间。


我们的目标是打造在长短任务中均能表现卓越的模型,确保它们在实际应用场景中真正发挥作用。为此,研究团队正深入研究更高效的训练方式、模型架构和推理方法,力求使这些模型即使在资源有限的环境中也能高效部署并且获得最佳的性能效果。


我们坚信,这些努力将为长上下文模型开启全新的可能性,大幅拓展其应用范围,并将持续突破这一领域的边界,敬请期待!


模型链接:

https://www.modelscope.cn/collections/Qwen25-1M-d6cf9fd33f0a40

技术报告:

https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen2.5-1M/Qwen2_5_1M_Technical_Report.pdf

体验链接:

https://modelscope.cn/studios/Qwen/Qwen2.5-1M-Demo

相关文章
|
3月前
|
人工智能 自然语言处理 IDE
模型微调不再被代码难住!PAI和Qwen3-Coder加速AI开发新体验
通义千问 AI 编程大模型 Qwen3-Coder 正式开源,阿里云人工智能平台 PAI 支持云上一键部署 Qwen3-Coder 模型,并可在交互式建模环境中使用 Qwen3-Coder 模型。
815 109
|
3月前
|
分布式计算 测试技术 Spark
科大讯飞开源星火化学大模型、文生音效模型
近期,科大讯飞在魔搭社区(ModelScope)和Gitcode上开源两款模型:讯飞星火化学大模型Spark Chemistry-X1-13B、讯飞文生音频模型AudioFly,助力前沿化学技术研究,以及声音生成技术和应用的探索。
358 2
|
3月前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
1738 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
2月前
|
人工智能 搜索推荐 程序员
当AI学会“跨界思考”:多模态模型如何重塑人工智能
当AI学会“跨界思考”:多模态模型如何重塑人工智能
320 120
|
3月前
|
机器学习/深度学习 数据采集 人工智能
通义实验室Mobile-Agent-v3开源,全平台SOTA的GUI智能体,支持手机电脑等多平台交互
近日,通义实验室MobileAgent团队正式开源全新图形界面交互基础模型 GUI-Owl,并同步推出支持多智能体协同的自动化框架 Mobile-Agent-v3。该模型基于Qwen2.5-VL打造,在手机端与电脑端共8个GUI任务榜单中全面刷新开源模型性能纪录,达成全平台SOTA。
1159 2
|
3月前
|
人工智能 Java 开发者
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
JManus是阿里开源的Java版OpenManus,基于Spring AI Alibaba框架,助力Java开发者便捷应用AI技术。支持多Agent框架、网页配置、MCP协议及PLAN-ACT模式,可集成多模型,适配阿里云百炼平台与本地ollama。提供Docker与源码部署方式,具备无限上下文处理能力,适用于复杂AI场景。当前仍在完善模型配置等功能,欢迎参与开源共建。
1772 58
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
AI Compass前沿速览:Qwen3-Max、Mixboard、Qwen3-VL、Audio2Face、Vidu Q2 AI视频生成模型、Qwen3-LiveTranslate-全模态同传大模型
AI Compass前沿速览:Qwen3-Max、Mixboard、Qwen3-VL、Audio2Face、Vidu Q2 AI视频生成模型、Qwen3-LiveTranslate-全模态同传大模型
722 13
AI Compass前沿速览:Qwen3-Max、Mixboard、Qwen3-VL、Audio2Face、Vidu Q2 AI视频生成模型、Qwen3-LiveTranslate-全模态同传大模型

热门文章

最新文章