前几天Meta开源发布了新的Llama大语言模型:Llama-3系列,本次一共发布了两个版本:Llama-3-8B和Llama-3-70B,根据Meta发布的测评报告,Llama-3-8B的性能吊打之前的Llama-2-70B,也就是说80亿参数的模型干掉了700亿参数的模型,这个还真挺让人震惊的。

Llama-3-8B真的有这么强吗?

鉴于8B的模型可以在24G显存下流畅运行,成本不高,我就在AutoDL上实际测试了一下。

测试方案

使用的是我之前在AutoDL上发布的一个大语言模型WebUI镜像:yinghuoai-text-generation-webui (这个WebUI可以对大语言模型进行推理和微调),显卡选择的是 4090D 24G显存版本,使用三个问题分别测试了 Llama-3-8B-Instruct(英文问答)、Llama-3-8B-Instruct(中文问答)、llama3-chinese-chat、Qwen1.5-7B-Chat。其中llama3-chinese-chat是网友基于Llama-3-8B-Instruct训练的中文对话模型,项目地址:https://github.com/CrazyBoyM/llama3-Chinese-chat

三个问题分别是:

  1. 小明的妻子生了一对双胞胎。以下哪个推论是正确的?
    1. A.小明家里一共有三个孩子
    2. B.小明家里一共有两个孩子。
    3. C.小明家里既有男孩子也有女孩子
    4. D.无法确定小明家里孩子的具体情况
  1. 有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?
  2. 请使用C#帮我写一个猜数字的游戏。

这三个问题分别考察大语言模型的逻辑推理、数学计算和编码能力。当然这个考察方案不怎么严谨,但是也能发现一些问题。

因为Llama-3的中文训练语料很少,所有非英语的训练数据才占到5%,所以我这里对Llama-3-8B分别使用了中英文问答,避免因中文训练不足导致测试结果偏差。

测试结果

鸡兔同笼问题

Llama-3-8B-Instruct(中文问答)

首先模型没有搞清楚鸡和兔的脚的数量是不同的,其次模型解方程的能力也不怎么行,总是算不对。

另外还是不是飙几句英语,看来中文训练的确实不太行。

Llama-3-8B-Instruct(英文问答)

搞清楚了不同动物脚的数量问题,但是还是不会计算,有时候方程能列正确,但是测试多次还是不会解方程组。

llama3-chinese-chat

中文无障碍,数学公式也列对了,但是答案是错的,没有给出解答过程。实测结果稳定性也比较差,每次总会给出不一样的解答方式。

Qwen1.5-7B-Chat

中文无障碍,答案正确,解答过程也基本完整。

小明家孩子的情况

Llama-3-8B-Instruct(中文问答)

答案不正确,解释的也不全面,没有说明其它答案为什么不正确。

Llama-3-8B-Instruct(英文问答)

答案正确,但是分析的逻辑有缺陷,没有完全说明白,只谈到性别问题,数字逻辑好像有点绕不清。

llama3-chinese-chat

答案错误,逻辑是混乱的,前言不搭后语,没有逻辑性。

Qwen1.5-7B-Chat

答案是正确的,但是逻辑不太通顺,说着性别,就跳到数量上去了。

猜数字游戏编程

Llama-3-8B-Instruct(中文问答)

代码完整,没有明显问题,但是还是会冒英文。

Llama-3-8B-Instruct(英文问答)

代码完整,没有明显问题。

llama3-chinese-chat

代码正确,但是不够完整,还需要更多提示。

Qwen1.5-7B-Chat

代码完整,没有明显问题。

测试结论

根据上边的测试结果,有一些结论是比较明确的。

Llama-3-8B的中文能力确实不太行,最明显的是时不时会冒一些英文,更重要的是使用中文时输出的内容偏简单化,逻辑上不那么严谨。

网友训练的 llama3-chinese-chat 问题比较多,可能是训练数据不足,或者训练参数上不够优秀,回答问题过于简略,逻辑性不够,稳定性也不太行,经常输出各种不一样的答案。建议只是玩玩,可以学习下它的训练方法。

Llama-3-8B的逻辑分析和数学能力不太行?至少在回答上边的鸡兔同笼问题和小明家孩子的情况上表现不佳,这是什么原因呢?训练语料的问题?但是我使用Llama-3-70B时,它可以正确且圆满的回答这两个问题,这就是权重参数不够的问题了,8B参数的能力还是差点。

Llama-3-8B的英文能力总体感觉还可以,但实测也没有那么惊艳,总有一种缺少临门一脚的感觉,有点瑕疵。说它媲美或者超越百亿参数的模型,这个是存在一些疑虑的。

Qwen1.5-7B-Chat在这几个问题的表现上还不错,不过很可能是这几个问题都学的很熟练了,特别是鸡兔同笼问题,大语言模型刚刚火爆的时候在国内常常被拿来做比较使用。目前还没有完整的Llama-3和Qwen1.5的评测对比数据,Llama-3公开的基准测试很多使用了few-shot,也就是评估时先给出几个问答示例,然后再看模型在类似问题上的表现,关注的是学习能力。根据HuggingFace上公开的数据,仅可以对比模型在MMLU(英文综合能力)和HumanEval(编程)上的的表现,比较突出的是编程能力,如下面两张图所示:

企业或者个人要在业务中真正使用,感觉还得是百亿模型,准确性和稳定性都会更好,百亿之下目前还不太行,经常理解或者输出不到位,目前感觉70B参数的最好。

对于Llama-3-8B,如果你使用英文开展业务,又不想太高的成本,不妨试试,但是需要做更多增强确定性的工作,比如优化提示词、做些微调之类的,至于中文能力还得等国内的厂商们再努力一把,目前还不太行。


Llama-3的在线体验地址请移步这里:性能直逼GPT4,Llama3的三种在线体验方式。

Llama3-8B到底能不能打?实测对比的更多相关文章

  1. PYTHON解析XML的多种方式效率对比实测

    在最初学习PYTHON的时候,只知道有DOM和SAX两种解析方法,但是其效率都不够理想,由于需要处理的文件数量太大,这两种方式耗时太高无法接受. 在网络搜索后发现,目前应用比较广泛,且效率相对较高的E ...

  2. 横向对比分析Python解析XML的四种方式

    横向对比分析Python解析XML的四种方式 在最初学习PYTHON的时候,只知道有DOM和SAX两种解析方法,但是其效率都不够理想,由于需要处理的文件数量太大,这两种方式耗时太高无法接受. 在网络搜 ...

  3. GPS学习笔记

    预备知识 1. 卫星发送信号时,是以特定频率的电磁波为载波,调整信号到载波上的.多普勒效应就是,卫星和接收机是相对运动的,那么载波的频率会随运动距离发生改变.(<GPS测量与数据处理>p3 ...

  4. 不要再问我 in,exists 走不走索引了

    微信搜『烟雨星空』,获取最新好文. 前言 最近,有一个业务需求,给我一份数据 A ,把它在数据库 B 中存在,而又比 A 多出的部分算出来.由于数据比较杂乱,我这里简化模型. 然后就会发现,我去,这不 ...

  5. Arduino 极速入门系列 - 光控灯(3) - 光敏电阻、与电阻分压那些事

    继续是讲解基础原理,新手专用部分.这次讲光敏电阻,和用电阻分压.光电元器件有好几种,其中测光相关的元器件,常见的有光敏三极管和光敏电阻,我们这次光控灯用光敏电阻.在我们光控灯里面,将会使用它搭建出分压 ...

  6. 一场完美的“秒杀”:API加速的业务逻辑

    清晨,我被一个客户电话惊醒,客户异常焦急,寻问CDN能不能帮助他们解决“秒杀”的问题,他们昨天刚刚进行了“整点秒杀活动”,结果并发量过大,导致服务宕机,用户投诉. 为了理清思路,我问了对方三个问题: ...

  7. 设备指纹识别之User Agent 解析

    设备指纹识别之User Agent 解析User Agent 解析 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-4- ...

  8. Identity Server 4 - Hybrid Flow - MVC客户端身份验证

    预备知识 可能需要看一点点预备知识 OAuth 2.0 不完全简介: https://www.cnblogs.com/cgzl/p/9221488.html OpenID Connect 不完全简介: ...

  9. Yii2中mongodb使用ActiveRecord的数据操作

    概况  Yii2 一个高效安全的高性能PHP框架.mongodb 一个高性能分布式文档存储NOSQL数据库. 关于mongodb与mysql的优缺点,应该都了解过. mysql传统关系数据库,安全稳定 ...

  10. Python开发【笔记】:探索Python F-strings

    F-strings 在python3.6.2版本中,PEP 498 提出一种新型字符串格式化机制,被称为“字符串插值”或者更常见的一种称呼是F-strings(主要因为这种字符串的第一个字母是f) 简 ...

随机推荐

  1. config.baseUrl.dev 变量 转移到 .env.local 中

    config.baseUrl.dev 变量 转移到 .env.local 中 上下文 vue前端开发 问题 多人写代码的时候,会提交config.js里面的配置文件 解决方案 在根目录创建 .env. ...

  2. window.showModalDialog与opener及returnValue

    首先来看看 window.showModalDialog 的参数 vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatu ...

  3. 观展新体验!3DCAT助力青桔 “未来之见”线上发布会炫酷亮相

    在"未来之见"滴滴青桔2021新品发布会现场,青桔推出概念车"青桔X","X"代表了无限可能和憧憬,街边的共享单车?这只是其中一面,青桔为您 ...

  4. Bootstrap前端开发框架

    一 Bootstrap 简介 Bootstrap 来自 Twitter(推特),是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS 和 JAVASCRIPT 的,它简洁灵活,使得 ...

  5. 记录--组件库的 Table 组件表头表体是如何实现同步滚动?

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 在使用 Vue 3 组件库 Naive UI 的数据表格组件 DataTable 时碰到的问题,NaiveUI 的数据表格组件 Da ...

  6. python pyzbar 批量识别二维码

    1.安装pyzbar pip install pyzbar 2.代码 import os import cv2 as cv from pyzbar import pyzbar # 目录路径 path ...

  7. verilog之时钟信号的编写2

    verilog之时钟信号的编写2 1.时钟信号的特点 时钟信号除了可以根据时序一个个变化列举出来,还可以利用其循环的变化的特点,使用循环执行语句always来实现.这种方法实现的时钟信号可以一直执行且 ...

  8. SpringBoot集成LDAP同步数据

    1.pom引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...

  9. MarkDown常用语法Typora

    一级标题:左右分别 # 二级标题:左右分别 ## 三级标题 四级标题 五级标题 六级标题 加粗:左右分别 ** 斜体:左右分别 * 斜体加粗:左右分别 *** 删除:左右分别 ~~ "> ...

  10. C++ 通用锁管理

    lock_guard 类 lock_guard 是互斥体包装器,为在作用域块期间占有互斥提供便利 RAII 风格机制. 创建 lock_guard 对象时,它试图接收给定互斥的所有权.控制离开创建 l ...