Qwen2——阿里巴巴最新的多语言模型挑战 Llama 3 等 SOTA
引言

经过几个月的期待, 阿里巴巴 Qwen 团队终于发布了 Qwen2 – 他们强大的语言模型系列的下一代发展。 Qwen2 代表了一次重大飞跃,拥有尖端的进步,有可能将其定位为 Meta 著名的最佳替代品 骆驼3 模型。在本次技术深入探讨中,我们将探讨使 Qwen2 成为大型语言模型 (LLM) 领域强大竞争者的关键功能、性能基准和创新技术。
Qwen2 型号系列
核心是 Qwen2 拥有一系列多样化的模型,可满足不同的计算需求。该系列包含五种不同的型号:Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B、Qwen2-57B-A14B 和旗舰产品 Qwen2-72B。这一系列选项可满足广泛的用户需求,从拥有适度硬件资源的用户到能够使用尖端计算基础设施的用户。
Qwen2 的突出特点之一是它的多语言功能。虽然之前的 Qwen1.5 该模型在英语和中文方面表现出色,Qwen2 还接受了涵盖 27 种其他语言的数据的训练。这种多语言训练方案包括来自西欧、东欧和中欧、中东、东亚和南亚等不同地区的语言。

Qwen2 型号支持的语言(按地理区域分类)
通过扩展其语言库,Qwen2 展示了理解和生成多种语言内容的卓越能力,使其成为全球应用和跨文化交流的宝贵工具。

Qwen2 模型的规格包括参数、GQA 和上下文长度。
解决代码转换问题:多语言挑战
在多语言环境中,语码转换现象(即在一次对话或话语中交替使用不同语言的做法)很常见。 Qwen2 经过精心培训,可以处理语码转换场景,显着减少相关问题并确保语言之间的平滑转换。
使用通常会引起语码转换的提示进行的评估证实了 Qwen2 在该领域的实质性改进,这证明了阿里巴巴致力于提供真正的多语言语言模型。
擅长编码和数学
Qwen2 在编码和数学领域拥有卓越的能力,这些领域传统上对语言模型提出了挑战。通过利用广泛的高质量数据集和优化的训练方法,Qwen2-72B-Instruct(旗舰模型的指令调整变体)在解决数学问题和跨各种编程语言的编码任务方面表现出出色的性能。
扩展语境理解
Qwen2 最令人印象深刻的功能之一是它能够理解和处理扩展的上下文序列。虽然大多数语言模型都难以处理长文本,但 Qwen2-7B-Instruct 和 Qwen2-72B-Instruct 模型经过精心设计,可以处理长达 128K 个标记的上下文。
这种非凡的功能对于需要深入了解冗长文档(例如法律合同、研究论文或密集的技术手册)的应用程序来说是一个颠覆性的变化。通过有效地处理扩展上下文,Qwen2 可以提供更准确、更全面的响应,从而开辟自然语言处理的新领域。

Qwen2 模型从不同上下文长度和文档深度的文档中检索事实的准确性。
该图表显示了 Qwen2 模型从不同上下文长度和深度的文档中检索事实的能力。
分组查询注意力和优化嵌入
在底层,Qwen2 融合了多项架构创新,从而实现了卓越的性能。其中一项创新是在所有模型大小上采用组查询注意力(GQA)。 GQA 提供更快的推理速度并减少内存使用,使 Qwen2 更加高效并可支持更广泛的硬件配置。
此外,阿里巴巴还针对 Qwen2 系列中的小模型对嵌入进行了优化。通过绑定嵌入,团队成功减少了这些模型的内存占用,使其能够在性能较弱的硬件上部署,同时保持高质量的性能。
对 Qwen2 进行基准测试:超越最先进的模型
Qwen2 在各种基准测试中均表现出色。对比评估显示,该系列中最大的模型 Qwen2-72B 在自然语言理解、知识获取、编码能力、数学技能和多语言能力等关键领域均优于 Llama-3-70B 等领先竞争对手。

Qwen2-72B-Instruct 与 Llama3-70B-Instruct 的编码和数学表现对比
Qwen1.5-110B 虽然参数比上一代 Qwen2-72B 少,但性能表现却更为出色,充分证明了阿里巴巴精心挑选的数据集和优化的训练方法的有效性。
安全与责任:与人类价值观相一致
Qwen2-72B-Instruct 已接受严格评估,以确认其处理与非法活动、欺诈、色情和侵犯隐私相关的潜在有害查询的能力。结果令人鼓舞:Qwen2-72B-Instruct 在安全性方面的表现可与备受推崇的 GPT-4 模型相媲美,与其他大型模型(如 Mistral-8x22B)相比,有害响应的比例明显较低。
这一成就凸显了阿里巴巴致力于开发符合人类价值观的人工智能系统,确保Qwen2不仅强大,而且值得信赖和负责。
许可和开源承诺
为了进一步扩大 Qwen2 的影响,阿里巴巴采用了开源的许可方式。虽然 Qwen2-72B 及其指令调整型号保留了原始的Qianwen 许可证,但其余型号 – Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B 和 Qwen2-57B-A14B – 已根据宽松的 Apache 2.0 许可证获得许可。
这种增强的开放性预计将加速 Qwen2 模型在全球的应用和商业使用,促进全球人工智能社区的协作和创新。
使用与实施
使用 Qwen2 模型非常简单,这得益于它们与流行框架的集成,例如Hugging Face。下面是使用 Qwen2-7B-Chat-beta 进行推理的示例:
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "cuda" # the device to load the model onto
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen1.5-7B-Chat", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen1.5-7B-Chat")
prompt = "Give me a short introduction to large language models."
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(device)
generated_ids = model.generate(model_inputs.input_ids, max_new_tokens=512, do_sample=True)
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]
print(response)
此代码片段演示了如何使用 Qwen2-7B-Chat 模型设置和生成文本。与的集成Hugging Face使其易于访问且易于实验。
Qwen2 与 Llama 3:比较分析
虽然 Qwen2 和 梅塔的羊驼 3都是强大的语言模型,它们表现出独特的优势和权衡。

Qwen2-72B、Llama3-70B、Mixtral-8x22B 和 Qwen1.5-110B 在各种基准(包括 MMLU、MMLU-Pro、GPQA 等)上的性能比较图表。
以下是一个比较分析,可以帮助您了解它们的主要区别:
多语言能力:Qwen2在多语言支持方面具有明显优势。其对除英语和中文之外的另外 27 种语言的数据进行训练,使 Qwen2 在跨文化交流和多语言场景中表现出色。相比之下,Llama 3 的多语言能力不太明显,可能限制其在不同语言环境中的有效性。
编码和数学能力:Qwen2 和 骆驼3表现出令人印象深刻的编码和数学能力。然而,Qwen2-72B-Instruct 似乎略有优势,因为它在这些领域对大量高质量数据集进行了严格的训练。阿里巴巴专注于增强 Qwen2 在这些领域的能力,这可能会让它在涉及编码或数学问题解决的专业应用中占据优势。
长上下文理解:Qwen2-7B-Instruct 和 Qwen2-72B-Instruct 模型拥有处理高达 128K 令牌的上下文长度的令人印象深刻的能力。此功能对于需要深入理解冗长文档或密集技术材料的应用程序尤其有价值。 Llama 3 虽然能够处理长序列,但在该特定领域的性能可能无法与 Qwen2 相媲美。
虽然 Qwen2 和 Llama 3 都表现出了最先进的性能,但 Qwen2 的模型阵容多样化,从 0.5B 到 72B 参数,提供了更大的灵活性和可扩展性。这种多功能性使用户可以选择最适合其计算资源和性能要求的模型大小。此外,阿里巴巴正在努力将 Qwen2 扩展到更大的模型,这可能会进一步增强其功能,未来可能会超越 Llama 3。
简化 Qwen2 采用
为了促进Qwen2的广泛采用和集成,阿里巴巴采取了积极措施,确保跨各种平台和框架的无缝部署。 Qwen 团队与众多第三方项目和组织密切合作,使 Qwen2 能够与各种工具和框架结合使用。
微调和量化:Axolotl、Llama-Factory、Firefly、Swift 和 XTuner 等第三方项目已经过优化,支持 Qwen2 模型的微调,使用户能够根据其特定任务和数据集定制模型。此外,量化工具如 自动GPTQ, 自动AWQ、Neural Compressor 已适应与 Qwen2 配合使用,有助于在资源受限的设备上进行高效部署。
部署和推理:Qwen2 模型可以使用各种框架进行部署和服务,包括 法学硕士、SGL、SkyPilot、 TensorRT-法学硕士, 打开维诺和 TGI。这些框架提供了优化的推理管道,支持在生产环境中高效、可扩展地部署 Qwen2。
API 平台和本地执行:对于希望将 Qwen2 集成到其应用程序中的开发人员,Together、Fireworks 和 OpenRouter 等 API 平台提供了访问模型功能的便捷方式。或者,通过 MLX、Llama.cpp 等框架支持本地执行, 奥拉马和 LM Studio,允许用户在本地计算机上运行 Qwen2,同时保持对数据隐私和安全的控制。
代理和 RAG 框架:Qwen2 对工具使用和代理功能的支持得到了诸如骆驼指数、CrewAI 和 开放的Devin.这些框架支持创建专门的AI代理,并将Qwen2集成到 检索增强生成(RAG)管道,扩大应用范围和用例。
未来的发展和机遇
阿里巴巴对 Qwen2 的愿景远不止于当前版本。该团队正在积极训练更大的模型,以探索模型扩展的前沿,并辅以持续的数据扩展工作。此外,他们正在计划将 Qwen2 扩展到多模态 AI 领域,实现视觉和音频理解能力的整合。
随着开源人工智能生态系统的不断蓬勃发展,Qwen2 将发挥关键作用,为寻求推进自然语言处理和人工智能技术发展的研究人员、开发人员和组织提供强大的资源。
相关文章:
Qwen2——阿里巴巴最新的多语言模型挑战 Llama 3 等 SOTA
引言 经过几个月的期待, 阿里巴巴 Qwen 团队终于发布了 Qwen2 – 他们强大的语言模型系列的下一代发展。 Qwen2 代表了一次重大飞跃,拥有尖端的进步,有可能将其定位为 Meta 著名的最佳替代品 骆驼3 模型。在本次技术深入探讨中,我…...
等级考试3-2021年3月题
作业: #include <iostream> using namespace std; int chonghe(int,int,int,int); int main(){int a[1000],b[1000];int n,ma0;cin>>n;for(int i0;i<n;i){cin>>a[i]>>b[i];}for(int i0;i<n;i){for(int ji1;j<n;j){mamax(ma,chongh…...
Web前端开发PPT:深入探索与实战应用
Web前端开发PPT:深入探索与实战应用 在数字化时代,Web前端开发已成为构建丰富、交互性强的网页应用的关键环节。本次分享旨在通过PPT的形式,带领大家深入探索Web前端开发的精髓,并分享一些实战应用的经验。接下来,我们…...
liunx常见指令
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 二、安装环境 1.租借服务器 2.下载安装 XShell 3.使用xshll登录服务器 三、Linux基础命令 一、文件和命令 编辑1、cd 命令 2、pwd 命令 3、ls 命令 4、cp 命令 …...
vscode设置成中文界面
在Visual Studio Code(VSCode)中设置中文界面,你可以采用以下几种方法,以下是详细步骤: 方法一:通过设置菜单设置中文 打开VSCode:首先,确保你已经打开了VSCode软件。进入设置&…...
python命名空间详解
Python中的命名空间是编程语言设计的一个核心概念,它负责存储变量名与其对应的值之间的映射关系,确保了程序中变量的唯一性和可访问性。命名空间不仅关乎变量的生命周期和作用范围,也是Python中实现封装、避免命名冲突的重要机制。 1. 命名空…...
【日常记录】【vue】vite-plugin-inspect 插件的使用
文章目录 1、vite-plugin-inspect2、安装3、使用4、链接 1、vite-plugin-inspect vite-plugin-inspect 可以让开发者在浏览器端就可以看到vue文件编译后的代码、vue文件的相互依赖关系 2、安装 npm i -D vite-plugin-inspect// vite.config.ts import Inspect from vite-plugi…...
mini web框架示例
web框架: 使用web框架专门负责处理用户的动态资源请求,这个web框架其实就是一个为web服务器提供服务的应用程序 什么是路由? 路由就是请求的url到处理函数的映射,也就是说提前把请求的URL和处理函数关联好 管理路由可以使用一个…...
基于C#开发web网页管理系统模板流程-主界面统计功能完善
点击返回目录-> 基于C#开发web网页管理系统模板流程-总集篇-CSDN博客 前言 紧接上篇->基于C#开发web网页管理系统模板流程-主界面管理员入库和出库功能完善_c#web程序设计-CSDN博客 统计功能是管理系统很常见的功能,例如仓库管理系统要统计某时间段的出入库以…...
chromedriver114以后版本下载地址汇总chromedriver所有版本下载地址汇总国内源下载
谷歌浏览器版本经常会升级,chromedriver 也得下载匹配的版本 chromedriver 114以前版本下载地址https://registry.npmmirror.com/binary.html?pathchromedriver/ 但是自从115版本及其以后网站就找不到了,因此整理了截止2024年6月16日前所有在windows x6…...
x86计算机的启动初期流程 Linux 启动流程
x86计算机的启动初期流程 CPU: step1,加点开机,cpu自己初始化 step2,cpu 从物理地址 0xFFFFFFF0h 取指令执行;此处存放BIOS代码,这些代码可以是由主板自动从 EEPROM中拷贝至此内存地址处;即下…...
P450Rdb: CYP450数据库--地表最强系列--文献精读24
P450Rdb: A manually curated database of reactions catalyzed by cytochrome P450 enzymes P450Rdb: 一个人工整理的细胞色素P450酶催化反应数据库 http://www.cellknowledge.com.cn/p450rdb/ 还有一篇类似CYP450综述-20年-地表最强系列-文献精读-4 要点: P450…...
ubuntu 22.04下载和安装
ubuntu镜像: https://www.releases.ubuntu.com/22.04/ 然后下载vmwareworkstation16 密钥 ZF3R0-FHED2-M80TY-8QYGC-NPKYF...
Fegin如何传参form-data文件
Form-data传输file参数,这个大家都比较清楚,那么针对于Fegin参数file参数该如何操作呢!下面截图来找到对应的参数关系。 一、之前我们在postMan中是这种传参的,那么如果使用Feigin来传输文件File 二、在Fegin中传form-data参数&a…...
解决 Visual C++ 17.5 __cplusplus 始终为 199711L 的问题
目录 软件环境问题描述查阅资料解决问题参考文献 软件环境 Visual Studio 2022, Visual C, Version 17.5.4 问题描述 在应用 https://github.com/ToniLipponen/cpp-sqlite 的过程中,发现源代码文件 sqlite.hpp 中,有一处宏,和本项目的 C L…...
Mac M3 Pro安装Hadoop-3.3.6
1、下载Hadoop安装包 可以到官方网站下载,也可以使用网盘下载 官网下载地址:Hadoop官网下载地址 网盘地址:https://pan.baidu.com/s/1p4BXq2mvby2B76lmpiEjnA?pwdr62r提取码: r62r 2、解压并添加环境变量 # 将安装包移动到指定目录 mv …...
mac下Xcode在iphone真机上测试运行iOS软件
最近一个需求需要在iPhone真机上测试一个视频直播的项目。 需要解决如何将项目 app 安装到真机上 在进行真机调试。 安装Xcode 直接在App Store上搜索Xcode安装即可。 关键是要安装Simulator。项目需要安装iOS17.5但是由于安装包太大,并且网络不稳定的原因。在Xco…...
Mysql(一):深入理解Mysql索引底层数据结构与算法
众所众知,MySql的查询效率以及查询方式,基本上和索引息息相关,所以,我们一定要对MySql的索引有一个具体到数据底层上的认知。 这一次也是借着整理的机会,和大家一起重新复习一下MySql的索引底层。 本节也主要有一下的…...
WebMvcConfigurer配置不当导致鉴权失败
最近同事说他们有个新需求,需要对接口进行加解密,所以他给项目配置了一个拦截器,但这个拦截器直接导致了所有接口鉴权失败,每次调用接口都是提示没有session信息。 公司内的所有java项目是公用同一套基础依赖,所以我也…...
微信小程序毕业设计-实验室管理系统项目开发实战(附源码+论文)
大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
