阿里巴巴最近开源了一个320亿参数的大语言模型Qwen1.5-32B,网上都说很强很强,那么它到底强在哪里呢?

更高的性价比

Qwen1.5-32B中的B是billion的意思,也就是10亿,32B就代表320亿参数量。

阿里之前还开源过一个大模型Qwen-1.5-72B,72B就代表720亿参数量。

相比之前开源的Qwen-1.5-72B,Qwen1.5-32B参数少了一多半,但是测试表现并没有相差多少。

大语言模型文件中的主要内容就是参数,参数少了一半,模型的文件大小也会小一半,那么加载到显存时占用的空间也会小一半。大家可能都知道现在显卡比较紧俏,我特地到京东查了一下,消费级的3090在8K左右,4090已经飙升到了1.5个W左右。

显存占用小一半就可以使用更少数量的显卡或者更低显存的显卡,这无疑会节省很多成本,而且模型的表现相比之前的大块头也没有多少明显的损失,所以用户能获得更高的性价比。

性能测试优良

上边提到Qwen1.5-32B的性能测试表现还不错,那么这个不错到底表现在哪里呢?

这里我找到一张测试结果的图表:

之前我看这些图表时都比较懵逼,主要就看谁的分数高,分高就是好,但是具体好在哪里也说不清楚。

这次我特地去查询了这些指标代表的含义,总算是搞明白了,特别分享给大家。

这些分数对应的每一列都是一个数据集,所谓数据集就是一些问题的集合,用它们来考察大模型应对各种问题的处理能力。这些数据集通常是知名大语言模型研究机构发布的,比较权威。

  • MMLU(Massive Multitask Language Understanding): 多领域知识理解,考察的是综合能力。涵盖57个不同领域的多项选择题,包括历史、文学、科学、工程技术等多个学科。使用这个数据集能评估模型的泛化能力,就是用它解决没有训练过的问题,或者说新问题,看看它的表现如何。
  • CMMLU: 中文场景的多领域知识理解。由MBZUAI、上海交通大学、微软亚洲研究院共同推出,包含67个主题,涉及自然科学、社会科学、工程、人文以及常识等,专门用于评估语言模型在中文语境下的知识和推理能力。
  • C-Eval: 中文能力评估。由上海交通大学、清华大学和爱丁堡大学的研究人员在2023年5月联合推出。包含13948个多项选择题,涵盖了52个不同的学科和四个难度级别。
  • GSM8K (Google's Standard Math Dataset 8K): 解决数学问题的能力。Google开发的一个数学问题求解数据集,包含大约8,000个高中到大学水平的数学问题。
  • MATH: 解决数学问题的能力,类似于GSM8K。包含初等代数,代数,数论,计数和概率,几何,中等代数和微积分等领域的多种数学问题,用LaTeX格式编写。
  • MBPP (Mathematics Benchmarks for Pretrained Models): 数学推理和问题解决能力。包含一系列需要模型生成数学表达式或文字解答的数学问题。
  • HumanEval: 编程能力。由OpenAI创建,专为评估代码生成模型的有效性。包含数百个编程题目及其解决方案。
  • BBH (Big-Bench Hard): 复杂语言理解能力。由Google、斯坦福等研究人员开发的数据集,包含大量复杂语言理解任务的集合,可能包含需要深度推理、常识运用或复杂认知技能的任务。

有了对这几个指标的理解,我们可以看到Qwen1.5-32B和Qwen1.5-72B的能力相差无几,在理解复杂语言的能力上还略胜一筹,不知道是不是学习了百度弱智吧的问题。

在这个对比图表上还有几个模型,我特别介绍下:

  • Llama2-34B:Llama是Meta公司(也就是facebook)开源的一个大预言模型,有了Llama的开源,才有了国内大模型的百花齐放,否则大家还得摸索一阵。不过从这张图表上可以看出,Llama的这个模型已经落后了,普遍落后于其他模型,真是青出于蓝而胜于蓝。
  • Yi-34B:这个据称是自研成功的开源大语言模型,也是在Llama开源后推出的,自然是借鉴了Llama,只不过不清楚借鉴了多少。这个模型是李开复老师投资的零一万物开发出来的,也是300多亿的参数,综合能力还不错,只是数学能力和解决复杂问题的能力比Qwen差一点。
  • Mixtral-8x7B:一款高质量的稀疏专家混合模型,是一个欧洲公司开发的。这里的混合模型说的是其内部有多个子模型,比如有的擅长数学,有的擅长法语,有的擅长代码生成,等等。在生成Token时,Mixtral-8x7B会选择两个内部的专家子模型进行生成,每个专家子模型的参数是6B,所以它会比普通的300亿参数处理的更快。从图表对比可以看出其在数学和编程方面的能力还是挺不错的。

很多同学对国内大语言模型与GPT的差距也比较关心,我找到了一个Qwen1.5-72B和GPT-4的能力对比图,如下所示,可以看到差距还是很明显的,在数学、编程、复杂问题处理等方面都有着很大的提升空间。当然我们一直在追赶,只是别人也在进步,有人说这个差距是1年,也有人说是2年,你怎么看呢?

实测体验

指标上的表现并不能代表全部,我们用最近热议的“弱智吧”问题来测试一下。

“弱智吧”是一个百度贴吧,里边充满荒谬、离奇、不合常理的发言,研究者发现使用这里边的问题训练大语言模型能获得比较好的逻辑能力。

这里使用的工具是我在AutoDL上分享的一个镜像实例,这个镜像基于开源项目 text-generation webui,在这个webui中可以体验多种大语言模型。

创建实例

如果你也想实际测试一下,可以按照下面的步骤创建一个容器实例。

首先注册一个账号,AutoDL的访问地址:https://www.autodl.com

创建实例时:地区选择“西北B区”,网络比较稳定;因为镜像安装的大模型需要24G显存,所以显卡需要选择3090或者4090;GPU数量只需要1个就能跑起来。

镜像选择“社区镜像”,输入 yinghuoai-text-generation-webui ,即可找到这个镜像。

实例启动后,在服务器实例列表中点击“JupyterLab”,进入一个Web页面。

在JupyterLab页面中打开“启动器”,这个镜像会安装3个大模型,默认启动的是Qwen-32B,这实际上是一个4bit的量化模型,只需要24G的显存就能跑起来,但是相比原版的32B性能略有下降,不过也够用了。原版的32B需要数倍的显存,AutoDL上跑起来成本太高。

启动成功后,我们可以看到一个Gradio的链接,点击就会在浏览器打开 text-generation-webui。

另外 text-generation-webui 还支持通过API访问大模型,API定义兼容OpenAI协议,有兴趣的可以体验下。

体验Qwen-32B

进入后需要先设置一下角色,在参数(Parameters)页签中,选择“AI助理”。这个AI助理是我创建的,方便进行中文对话。

在聊天(Chat)页签的右侧,有一个“Mode”,定义了大模型处理提示词的模式,需要选择“chat-instruct”。

然后我们就可以和它聊天了,如下是弱智吧的3个经典问题。可以看到,只有“生鱼片是死鱼片”这个问题回答的不太好,大模型好像不太能理解生鱼片的生到底是什么意思。

正常应该怎么回答呢?我先到阿里的“通义千问”上问了一下,感觉也没太能回答到点上,毕竟师出同门,训练用的语料应该都差不多。

然后我又找了一个GPT-4的应用问了一下。GPT-4倒是准确把握住了“生”和“死”的含义,只是它回答的不是那么直接,大家看图片中的内容吧。

在测试数据集的评测中,Qwen1.5-32B的中文处理能力是明显高于GPT-4的,但是“生鱼片是死鱼片”这个问题的确没有回答好,这是模型的泛化能力不足,还是训练语料的问题呢?对于这个问题,你怎么看?

模型下载

Huggingface:

https://huggingface.co/Qwen

Huggingface镜像站:

https://hf-mirror.com/Qwen

AI快站:

https://aifasthub.com/models/Qwen


以上就是本文的主要内容。

阿里开源的32B大模型到底强在哪里?的更多相关文章

  1. 阿里开源新一代 AI 算法模型,由达摩院90后科学家研发

    最炫的技术新知.最热门的大咖公开课.最有趣的开发者活动.最实用的工具干货,就在<开发者必读>! 每日集成开发者社区精品内容,你身边的技术资讯管家. 每日头条 阿里开源新一代 AI 算法模型 ...

  2. 千亿参数开源大模型 BLOOM 背后的技术

    假设你现在有了数据,也搞到了预算,一切就绪,准备开始训练一个大模型,一显身手了,"一朝看尽长安花"似乎近在眼前 -- 且慢!训练可不仅仅像这两个字的发音那么简单,看看 BLOOM ...

  3. 对比7种分布式事务方案,还是偏爱阿里开源的Seata,真香!(原理+实战)

    前言 这是<Spring Cloud 进阶>专栏的第六篇文章,往期文章如下: 五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强? openFeign夺命连环9问,这谁受得了? 阿里面 ...

  4. 华为高级研究员谢凌曦:下一代AI将走向何方?盘古大模型探路之旅

    摘要:为了更深入理解千亿参数的盘古大模型,华为云社区采访到了华为云EI盘古团队高级研究员谢凌曦.谢博士以非常通俗的方式为我们娓娓道来了盘古大模型研发的"前世今生",以及它背后的艰难 ...

  5. AI大模型学习了解

    # 百度文心 上线时间:2019年3月 官方介绍:https://wenxin.baidu.com/ 发布地点: 参考资料: 2600亿!全球最大中文单体模型鹏城-百度·文心发布 # 华为盘古 上线时 ...

  6. JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码

    本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...

  7. Android热修复之 - 阿里开源的热补丁

    1.1 基本介绍 我们先去github上面了解它https://github.com/alibaba/AndFix 这里就有一个概念那就AndFix.apatch补丁用来修复方法,接下来我们看看到底是 ...

  8. 初识阿里开源诊断工具Arthas

    上个月,阿里开源了一个名为Arthas的监控工具.恰逢近期自己在写多线程处理业务,由此想到了一个问题. 如果在本机开发调试,IDE可以看到当前的活动线程,例如IntelliJ IDEA,线程是运行还是 ...

  9. 使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码 (jvm性能调优)

    技术交流群:233513714 本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 ...

  10. 重磅发布:阿里开源 OpenJDK 长期支持版本 Alibaba Dragonwell

    原文地址:https://yq.aliyun.com/articles/694603 本文作者:阿里开源  本文来自云栖社区合作伙伴"阿里系统软件技术",了解相关信息可以关注&qu ...

随机推荐

  1. 【小程序分包】小程序包大于2M,来这教你分包啊

    前言 缘由 该大的不大,小程序包超出2M,无法上传发布 前段时间项目迭代时,因版本大升级,导致uniapp打包后小程序后,包体积大于2M.虽然将图片等静态资源压缩,体积大的资源放置cdn,在不懈的努力 ...

  2. Java 属性赋值的先后顺序

    1 package com.bytezero.circle; 2 /** 3 * 4 * @Description 5 * @author Bytezero·zhenglei! Email:42049 ...

  3. ReentrantLock原理CAS+AQS队列

    ReentrantLock主要利用CAS+AQS队列来实现.它支持公平锁和非公平锁,两者的实现类似. CAS:Compare and Swap,比较并交换.CAS有3个操作数:内存值V.预期值A.要修 ...

  4. 完整塔建一个spring 注解版 mybaties 过程可供复制代码

    第一步引导包.新建工程maven模块 pom.xml 中导入相对应包 ++++++++++++++++++++++++++++++++++++++++++++       1      +++++++ ...

  5. prometheus 监控系统

    一. 安装docker环境 二. 安装prometheus 2.1 编辑配置文件 2.2 编辑docker-compose 三. grafana 展示 四 添加监控节点 五. 监控 java进程 六. ...

  6. 数据湖-Hudi/IceBerg

  7. 开发环境篇之HALCON数据结构

    开发环境篇之HALCON基础 目录 基本数据分类 图标类数据 Image(图片) Pixel:像素 Channel:通道 Domain:域 图片操作 Region(区域) Region操作 XLD(轮 ...

  8. 使用ScottPlot库在.NET WinForms中快速实现大型数据集的交互式显示

    前言 在.NET应用开发中数据集的交互式显示是一个非常常见的功能,如需要创建折线图.柱状图.饼图.散点图等不同类型的图表将数据呈现出来,帮助人们更好地理解数据.发现规律,并支持决策和沟通.本文我们将一 ...

  9. Java/Kotlin 实现控制台输出日志保存到文件

    原文:Java/Kotlin 实现控制台输出日志保存到文件 | Stars-One的杂货小窝 之前开发的几款软件,用户用着的过程中,偶尔会存在报错问题,想保留一份日志出来,之后可由用户发过来,进行问题 ...

  10. day07-Java方法01

    Java方法01 1.什么是方法? Java是语句的集合,它们在一起执行一个功能 方法是解决一类问题的步骤的有序集合 方法包含于类或者对象中 方法在程序中被创建,在其他地方被引用 设计方法的原则:方法 ...