阿里 Qwen2 模型开源,教你如何将 Qwen2 扩展到百万级上下文

news2024/11/17 5:57:18

本次开源的 Qwen2 模型包括 5 个尺寸,分别是 0.5B、1.5B、7B、72B、57B,其中 57B 的属于 MoE 模型(激活参数 14B),其余为 Dense 模型,本篇文章会快速介绍下各个尺寸模型的情况,然后重点介绍下如何利用 Qwen-Agent 将 Qwen2 模型的 8k 上下文扩展到 1M。

本文首发自博客 阿里 Qwen2 模型开源,教你如何将 Qwen2 扩展到百万级上下文

我的新书《LangChain编程从入门到实践》 已经开售!推荐正在学习AI应用开发的朋友购买阅读,此书围绕LangChain梳理了AI应用开发的范式转变,除了LangChain,还涉及其他诸如 LIamaIndex、AutoGen、AutoGPT、Semantic Kernel等热门开发框架。
LangChain编程从入门到实践

Qwen2 和 Qwen1.5 的模型结构基本一致,主要是模型预训练数据有所增加(大约在 7T 以上),Qwen2-0.5B、Qwen2-1.5B 模型支持最大上下文长度为 32K;Qwen2-57B-A14B MoE 模型支持最大上下文为 64K;Qwen2-7B、Qwen2-72B 模型支持最大上下文为 128K,代码和数学能力显著提升。

模型Qwen2-0.5BQwen2-1.5BQwen2-7BQwen2-57B-A14BQwen2-72B
参数量0.49B1.54B7.07B57.41B72.71B
非 Embedding 参数量0.35B1.31B5.98B56.32B70.21B
GQATrueTrueTrueTrueTrue
Tie EmbeddingTrueTrueFalseFalseFalse
上下文长度32K32K128K64K128K

在 Qwen1.5 系列中,只有 32B 和 110B 的模型使用了 GQA,Qwen2 所有尺寸的模型都使用了 GQA,GQA 显著加速推理,降低显存占用。

模型效果

Qwen2 系列模型效果不光整体超过 Qwen1.5 系列,相对于其他同级别参数开源模型也很亮眼,下面是指令微调模型 Qwen2-72B-Instruct 和 Qwen2-7B-Instruct 和常见开源 SOTA 模型比较。

Qwen2-72B-Instruct 在多项指标超过 Llama-3-70B-Instruct,特别是中文领域,大幅领先。

Qwen2-72B-Instruct 在多项指标超过 Llama-3-70B-Instruct

代码和数学方面都超过了 Llama-3-70B-Instruct

代码和数学方面都超过了 Llama-3-70B-Instruct

Qwen2-7B-Instruct 和 智谱最近开源的 GLM-4-9B-Chat水平相当。

Qwen2-7B-Instruct

最后说下开源 License,除了 Qwen2-72B 使用 Qianwen License(有使用范围限制)其余模型 4 个尺寸模型均采用 Apache 2.0 的许可。

更多详细内容,请前往官网博客查看 https://qwenlm.github.io/zh/blog/qwen2/

借助 Qwen-Agent 实现长文本理解

这个也是阿里开源的,特别是在本地使用 Qwen2-0.5B、Qwen2-1.5B 这类上下文长度有限的模型时,通过 Qwen-Agent 框架,能够把处理的上下文扩展到 1M,整体采用的是代理式 RAG(Agentic RAG)思路,具体的做法分为三步。

第一步查询转换

查询重写

将文本分成每块不超过 512 字短块,保留最相关在 8k 上下文,采用查询转换的方法:

  • 步骤 1:引导模型分离用户查询中的指令信息与非指令信息。例如,将用户查询转为{“信息”: [“自行车是什么时候发明的”], “指令”: [“回答时用 2000 字”, “尽量详尽”, “用英文回复”]}。
  • 步骤 2:从信息部分提取多语言关键词。例如,"自行车是什么时候发明的"转为{“关键词英文": [“bicycles”, “invented”, “when”], "关键词中文”: [“自行车”, “发明”, “时间”]}。
  • 步骤 3:利用 BM25 基于关键词的检索,找出最相关的块。

这也是比较成熟的方案,详细可以看我半年前介绍的完整工程化实现使用这个工具后,我将 RAG 的准确性和召回率都提高了两倍!

第二步 查询重写

在相关块与用户查询关键词重叠程度不足时,可能导致遗漏相关内容未被检索到,采用二次查询的方式:

步骤 1:对于每个 512 字块,让模型先评估其与用户查询的相关性。若认为不相关,则输出"无";若相关,则输出相关句子。
步骤 2:筛选出相关句子,将其用作搜索查询词,通过 BM25 检索出最相关的块(检索结果长度控制在 8k 上下文限制内)。
步骤 3:基于检索到的上下文生成最终答案。

查询重写

第三步 自问提示(Self*-*Ask)

当遇到问题:“与第五交响曲创作于同一世纪的交通工具是什么?”模型需先回答子问题:“第五交响曲创作于哪个世纪?”即 19 世纪,接着,才能识别到包含信息“自行车于 19 世纪发明”与原问题相关。

通过让 LLM 自问自答生成多跳问题与答案,然后再生成最终的答案。

向 LLM1 提出一个问题?

while (LLM1 无法根据其记忆回答问题) {

​ LLM1 提出一个新的子问题待解答。

​ LLM1 向 LLM2 提问这个子问题。

​ 将 LLM2 的回答添加到 LLM1 的记忆中。

}

LLM1 提供原始问题的最终答案。

通过这种方式就可以让较弱上下文长度的开源模型具备长上下文能力,对于构建完全本地化的 RAG 应用十分有益,下节我将结合 Ollama 在本地部署好 Qwen2-7B,构建高效的笔记搜索软件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1800040.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构初阶 堆(一)

一. 堆的概念和性质 我们在上一篇博客介绍存储二叉树的两种方式 分别是顺序结构和链式结构 数据结构初阶 初识二叉树-CSDN博客 1. 堆的概念 这里注意!!! 这里说的堆和操作系统里面的堆没有半点关系!!! …

环 境 变 量

如果希望某一个文件在 CMD 窗口的任意路径下都可以打开,则需要将该文件的路径存放在环境变量中。 在 CMD 中运行该文件时,优先查看当前路径下的文件,如果没有找到,则进入环境变量中记录的路径下寻找该文件,如果能找到…

kafka的副本机制

目录 Producer的ACKs参数 配置 acks配置为0 acks配置为1 acks配置为-1或者all 副本的目的就是冗余备份,当某个Broker上的分区数据丢失时,依然可以保障数据可用。因为在其他的Broker上的副本是可用的。 Producer的ACKs参数 对副本关系较大的是&…

Go源码--sync库(2)

简介 这边文章主要讲解 Sync.Cond和Sync.Rwmutex Sync.Cond 简介 sync.Cond 经常用来处理 多个协程等待 一个协程通知 这种场景, 主要 是阻塞在某一协程中 等待被另一个协程唤醒 继续执行 这个协程后续的功能。cond经常被用来协调协程对某一资源的访问 ants协程池…

Android存储空间不足?试试这8个快速解决方案!

在当今的科技时代,Android智能手机已成为我们日常生活的重要组成部分,因为它们保存着我们大量的关键数据。然而,随着我们的使用模式不断扩大,手机内部存储的可用性经常变得有限。手机存储空间不足不仅会损害设备的功能和响应能力&…

数据库系统概论(超详解!!!)第十节 过程化SQL

1.Transact-SQL概述 SQL(Structure Query Language的简称,即结构化查询语言) 是被国际标准化组织(ISO)采纳的标准数据库语言,目前所有关系数据库管理系统都以SQL作为核心,在JAVA、VC、VB、Delphi等程序设计语言中也可使用SQL,它是…

Angular 由一个bug说起之六:字体预加载

浏览器在加载一个页面时,会解析网页中的html和css,并开始加载字体文件。字体文件可以通过css中的font-face规则指定,并使用url()函数指定字体文件的路径。 比如下面这样: css font-face {font-family: MyFont;src: url(path/to/font.woff2…

Docker的安装、启动和配置镜像加速

前言: Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 而企业部署一般都是采用Linux操作系统,而…

电脑找不到mfc140udll怎么修复,总结几种靠谱的修复方法

在日常使用电脑娱乐工作的过程中,我们可能会遇到一些错误提示或程序无法正常运行的情况。其中,一个常见的问题是计算机缺失mfc140u.dll文件。这个问题可能会导致某些应用程序无法启动或运行,给工作和学习带来不便。本文将介绍5种解决计算机缺…

RPC框架原理(一)

RPC框架原理 网络和IO的关系,IO(input和output)面向的是谁?OSI 7层参考模型,TCP/IP协议为什么会出现一个会话层三次握手socket心跳keep alive四次挥手 网络IO(IO模型) IO框架底层 学习顺序&…

SpringCloud整合Seata简易使用(注册中心Nacos)

SpringCloud整合Seata解决分布式事务(注册中心Nacos) Seata下载与配置在Nacos中配置seata相关配置持久化为db时,需要提前在数据库中创建seata数据库,SpringCloud整合Seata服务GlobalTransactional注解使用 本案例是在windows中运行…

抢人!抢人!抢人! IT行业某岗位已经开始抢人了!

所谓抢滩鸿蒙,人才先行。鸿蒙系统火力全开后,抢人已成鸿蒙市场的主题词! 智联招聘数据显示,春节后首周,鸿蒙相关职位数同比增长163%,是去年同期的2.6倍,2023年9-12月鸿蒙相关职位数同比增速为3…

长文预警:自动驾驶の核燃料库!Tesla数据标注系统解析

长文预警:自动驾驶の核燃料库!Tesla数据标注系统解析 前言 本文整理自原文链接,写的非常好,给了博主很多启发,投原创是因为平台机制,希望能被更多人看到。 掐指一算,又到了该学习的时间&#…

【权威出版/投稿优惠】2024年机器视觉与自动化技术国际会议(MVAT 2024)

2024 International Conference on Machine Vision and Automation Technology 2024年机器视觉与自动化技术国际会议 【会议信息】 会议简称:MVAT 2024截稿时间:(以官网为准)大会地点:中国重庆会议官网:www.icmvat.co…

北京崇文门中医医院贾英才与行业共进——第二届海峡两岸中西医结合肾脏病学术大会

第二届海峡两岸中西医结合肾脏病学术大会授牌仪式于2024年6月7号在北京前门国医堂举行。 第二届海峡两岸中西医结合肾脏病学术大会的主要议程可能包括以下内容: 学术讲座:来自海峡两岸的专家学者发表演讲,分享肾脏病防治、透析技术等方面的研…

鸿蒙全栈开发-浅谈鸿蒙~线程模型

前言 如果你现在正巧在找工作,或者琢磨着换个职业跑道,鸿蒙开发绝对值得你考虑一下。 为啥?理由很简单: 市场需求大:鸿蒙生态还在持续扩张,应用开发、系统优化、技术支持等岗位需求旺盛,找工作…

【Text2SQL 论文】C3:使用 ChatGPT 实现 zero-shot Text2SQL

论文:C3: Zero-shot Text-to-SQL with ChatGPT ⭐⭐⭐⭐ arXiv:2307.07306,浙大 Code:C3SQL | GitHub 一、论文速读 使用 ChatGPT 来解决 Text2SQL 任务时,few-shots ICL 的 setting 需要输入大量的 tokens,这有点昂贵…

LabVIEW阀性能试验台测控系统

本项目开发的阀性能试验台测控系统是为满足国家和企业相关标准而设计的,主要用于汽车气压制动系统控制装置和调节装置等产品的综合性能测试。系统采用工控机控制,配置电器控制柜,实现运动控制、开关量控制及传感器信号采集,具备数…

计算机SCI期刊,中科院2区,IF=6.9,收稿范围非常广泛

一、期刊名称 Journal of King Saud University—Computer and Information Sciences 二、期刊简介概况 期刊类型:SCI 学科领域:计算机科学 影响因子:6.9 中科院分区:2区 三、期刊征稿范围 《沙特国王大学计算机与信息科学杂…

如何让tracert命令的显示信息显示*星号

tracert命令如果在中间某一个节点超时,只会在显示信息中标识此节点信息超时“ * * * ”,不影响整个tracert命令操作。 如上图所示,在DeviceA上执行tracert 10.1.2.2命令,缺省情况下,DeviceA上的显示信息为:…