代码改变世界

阿里开源的32B大模型到底强在哪里?

2024-04-10 08:13  萤火架构  阅读(2128)  评论(4编辑  收藏  举报

阿里巴巴最近开源了一个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-34BLlama是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


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