自清华大学数据挖掘实验室(THUDM)3月开源ChatGLM-6B已经过去了3个多月,最近他们又带来了性能全面提升的“船新”版本-ChatGLM2-6B。别看名字变化小,其实更新的模型性能是又有量又实用。不了解ChatGLM的小伙伴可以看我这篇文章(ChatGLM:一个开源的中英双语大语言模型)。

更新要点

惯例,我们先总结下本次的更新要点:

  • 上下文从2k扩展到了32k:这个更新在整个LLM开源届都是相当炸裂,目前绝大多数开源模型的上下文都只有2k,而GPT3.5已经升级到了16k,GPT4目前支持8K,Claude的特殊版本极限可以支持100k。因此仅就多轮对话能力来讲,开源模型和私有模型还存在代差。而这次ChatGLM2的上下文直接提升到了32k,直接到了私有模型水平,无疑是极大的提高了模型的多轮对话能力。当然,不出意外,很快开源模型的上下文能力就会有整体提升了,具体原因后面再展开说。

  • 性能极大提升,C-Eval超GPT4:ChatGLM2-6B 使用了 GLM 的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,基座模型获得了极大的提升。在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升。这里尤其耀眼的是CEval(这是一个由上海交通大学语言智能技术实验室提出的中文基础模型评估套件)成绩,ChatGLM2-6B目前已经超越了GPT4,跃居榜首。这里简单解释下,CEval并不是一个没有含金量的大模型评估套件,相反在中文评估能力上CEval还是我认为目前最权威的指标之一。所以ChatGLM2-6B的CEval成绩超过GPT4确实提升巨大。但是,经过实际体验后,客观的说ChatGLM2-6B依然还和GPT4有一定差距,但是提升也确实很大。这并不是说CEval评估的不准,主要是一个评估的侧重点问题,这个也放到后续具体讨论。

  • 推理效率提高:在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。说白了,使用门槛进一步降低了,本来ChatGLM就是入门显卡(如3060TI)玩大模型的最好选择,现在ChatGLM2-6B成了最好的上位替代。

  • 有条件的商业开源:ChatGLM2-6B 权重对学术研究完全开放,在获得官方的书面许可后,亦允许商业使用。虽然还是有条件的,但是还是开了商用的口子,下次说不定就完全商用开源了,在国内环境下,还是非常有魄力的。

简单谈谈GLM

这里我觉得还是有必要在简单介绍下GLM,虽然它和GPT都姓G,但实际上并不是一家子。GLM是清华大学和腾讯AI Lab联合提出的一种基于自回归空白填充的通用语言模型(GLM)。GLM的核心思想是,在预训练阶段,将输入文本中的一些连续或不连续的片段替换为特殊的空白符号,并按照任意顺序预测这些空白处的内容。这样做有两个好处:一是可以增加模型对文本结构和语义的理解能力;二是可以通过调整空白的数量和长度,适应不同类型的任务。例如,如果空白很少且很短,那么就相当于进行掩码语言建模(MLM),适合NLU任务;如果空白很多且很长,那么就相当于进行完全自回归建模(ARM),适合无条件生成任务;如果空白在文本前后分布不均匀,那么就相当于进行部分自回归建模(PARM),适合有条件生成任务。

GLM在多个数据集和任务上进行了实验验证,结果显示,在相同的模型大小和数据下,GLM均优于BERT、T5和GPT,并且使用比BERT Large少1.25倍的参数,就能达到单个预训练模型的最佳性能。这证明了GLM对不同下游任务的泛化能力和效率。

GLM本身模型构架上的优势还是很明显的,ChatGLM-6B 的性能几乎同等于很多开源的13B的模型。

更长的上下文

本次ChatGLM2-6B上下文从2k扩展到了32k主要是应用了一种叫做 FlashAttention 的技术。flash-attention是一种快速、高效、可扩展的注意力机制,它利用了一种称为哈希感知(hash-aware)的技术,可以根据它们的相似性将输入序列中的元素分配到不同的桶(bucket)中。这样,模型只需要计算桶内元素之间的注意力权重,而不是整个序列。这大大减少了计算量和内存需求,同时保持了较高的精度和表达能力。

ChatGLM2-6B虽然可以支持32k,但是在对话阶段使用 的8K 的上下文长度训练,因此其多轮对话能力大大增强了,但是对单轮超长文档的理解能力依然有限。整体测试下来确实比大部分开源模型的体感要强,尤其是在长文本问答和总结方面,优势明显。

但是 ,本次ChatGLM2-6B长上下文的先发优势可能也无法维持太久,因为最新在上下文领域的新技术也是层出不穷。尤其是Meta的新作《Extending Context Window of Large Language Models via Positional Interpolation》,该论文提出了一种位置插值(Position Interpolation,PI)的方法,可以在最小的微调(1000步以内)的情况下,将基于RoPE的预训练LLMs(如LLaMA模型)的上下文窗口大小扩展到32768,并保持整体性能几乎不变。不出意外,LLaMA家族的众多模型很快将会具备32k上下文能力。

性能极大提升

这里我直接放ChatGLM2-6B官方的对比,可以看出来本次版本的性能提升还是非常显著的。

数理逻辑

知识推理

长文档理解

C-Eval

这里还是再稍微多介绍几句C-Eval。C-Eval数据集包含13948个多选题,涵盖52个不同的学科领域,如语文、数学、物理、化学、生物、历史、地理、政治、经济、法律等。这些题目分为四个难度等级,分别对应小学、初中、高中和大学的教育阶段。每个题目都有四个选项,其中一个是正确答案,另外三个是干扰项。每个题目还有一个问题类型标签,表示该题目考察的是事实性知识、推理能力、应用能力还是创新能力。

C-Eval数据集旨在全面地评估基础模型在中文领域的表现,包括语言理解、知识获取、逻辑推理和跨领域迁移等方面。该数据集已经在Hugging Face平台上公开发布,并提供了一个可视化的网页,方便用户浏览和使用。该数据集也已经被用于测试了多个主流的基础模型,如BERT、RoBERTa、ERNIE等,发现它们在该数据集上的表现还有很大的提升空间。

下图是目前最新的C-Eval测评结果榜单:

首先,从测试结果上看,我认为ChatGLM2-6B超越GPT4是比较真实的,大家从榜单的具体成绩可以看出,ChatGLM2-6B主要赢在Social Science,Humanities 和 Others 这三项上。而这三项实际上和训练的语料关系是比较大的,其中的很多项目是和国家的国情相关的,而非世界通识。因此,虽然我们不知道GPT4的中文语料占比,但是按照GPT3.5来推测的话,中文语料应该不会超过2%。而ChatGLM2-6B的语料是以中文为主的,所以在这几项上ChatGLM2-6B也并不足为奇。

其次,ChatGLM2-6B的C-Eval评分高并不代表其中文能力已经超过GPT4了,因为大家看到了C-Eval测试其实就是单选题。做题做的好只能说明中文知识储备丰富,并不等于中文能力更强。这和我个人的测试体感也是相符的,即ChatGLM2-6B确实进步很大,但也就是类似Vicuna-13B英文这个级别的能力。如果加上多轮对话和更复杂的任务,GPT4还是完胜。

推理效率提高

加速推理方面,ChatGLM2-6B主要应用了Multi-Query Attention技术。Multi-Query Attention 是一种新颖的注意力机制,它可以有效地提高 Transformer 模型的推理速度,同时保持高质量的序列表示。它的核心思想是将多个注意力头的键和值合并为一个共享的张量,从而减少了内存访问的开销。这样,每个注意力头只需要计算自己的查询向量,然后与共享的键和值进行点积运算,得到输出向量。Multi-Query Attention 可以看作是一种权衡,它牺牲了一些模型的容量和表达能力,换取了更快的推理速度和更低的资源消耗。在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。

本次的效率提升还是挺大的,确实降低了其使用门槛。再加上其又放松了模型的开源限制,目前是可以有限制的商用的。因此,其实在很多类似客户或者文档问答的任务中,目前已经可以考虑用ChatGLM2-6B来代替GPT3.5了。

结语

ChatGLM2-6B的发布无疑震撼了表面歌舞升平,实际死气沉沉的国产开源LLM社区。希望在ChatGLM2-6B的鲶鱼效应下,我们能看到越来越多,也越来越好的国产开源LLM。

!

ChatGLM2-6B发布,C-Eval超GPT4,支持32k上下文!相关推荐

  1. 最新AI创作系统V5.0.2+支持GPT4+支持ai绘画+实时语音识别输入+文章资讯发布功能+用户会员套餐

    最新AI创作系统V5.0.2+支持GPT4+支持ai绘画+实时语音识别输入+文章资讯发布功能+用户会员套餐! AI创作系统 一.源码系统介绍 二.AI创作系统程序下载 三.安装教程 四.主要功能展示 ...

  2. 谷歌一雪前耻,全新PaLM 2反超GPT-4,办公全家桶炸裂升级,Bard史诗进化

    [新智元导读]新版PaLM 2超强进化,办公全家桶Workspace全面升级,Bard全面增强.所有人可用--可以看出,这届I/O大会,谷歌是真的憋出不少大招. 谷歌I/O 2023大会,仿佛又给谷歌 ...

  3. 闪游浏览器0.45发布下载:超多细节改进,更稳更强

    Vista之家(www.vista123.com):闪游浏览器 0.45发布下载:超多细节改进,更稳更强 又到周末,发布一下闪游浏览器的0.45版本,这次修正了很多的细节,主要是针对底层内存占用.插件 ...

  4. ARMS V4.3发布,应用监控全新支持内存快照分析,全息排查等功能。

    信息摘要: ARMS V4.3发布,应用监控全新支持内存快照分析,全息排查等功能. 适用客户: 企业开发和运维人员. 版本/规格功能: 1. 支持内存快照分析,内存对象分布一览无遗,内存泄露秒级定位. ...

  5. 微信发布Windows PC 测试版,支持电脑与手机互迁聊天记录

    现在大家在工作和日常生活的时候,都离不开微信,本身当年用户最多的软件的腾讯的QQ,但是现在微信已经后来居上了,已经压住了腾讯QQ一头,但是在日常使用的时候,微信的移动端和PC端使用的,记录并不是互通的 ...

  6. 红米k30支持html,红米K30S至尊纪念版发布:骁龙865+支持144Hz高刷

    根据官方官宣的消息,正如此前传闻的,Redmi将于10月27日也就是今天正式推出爆料依旧的RedmiK30S旗舰,不过在命名上延续了此前小米10至尊纪念版和Redmi K30至尊纪念版的方式,同样加上 ...

  7. 6月份智能手机市场份额发布:联想超华为第二逼近三星

    2012年6月分中国手机市场份额前十 2012年6月份中国智能手机市场份额前十   2012年6月份中国智能手机市场份额发布:联想超华为份额第二逼近三星 7月23日国内第三方市场调研公司赛诺发布6月份 ...

  8. PyQt 5.2 发布,此版本完全支持Qtv5.2.0

    PyQt 5.2 发布,此版本完全支持Qtv5.2.0 :包括了新的 QtBluetooth,QtPositioning,QtMacExtras,QtWinExtras 和 Qt11Extras 模板 ...

  9. 鸿蒙手表esim,华为Watch 3最早或于5月发布 采用鸿蒙系统并支持eSIM

    原标题:华为Watch 3最早或于5月发布 采用鸿蒙系统并支持eSIM 除了智能手机外,华为的智能手表也有着不小的业务规模,不过原本华为Watch系列采用的是谷歌的WearOS系统.但2017年推出华 ...

最新文章

  1. 为利用 QT 制作的项目设置图标
  2. 5-简单选择排序C实现(递增递减的简单转换)
  3. 基于水色图像的水质评价
  4. C#读书笔记:线程,任务和同步
  5. WeakReference与SoftReference
  6. bzoj3631: [JLOI2014]松鼠的新家
  7. c++ 删除二叉树的子树_数据结构—树|二叉树|前序遍历、中序遍历、后序遍历【图解实现】...
  8. Hystrix 线程池隔离与接口限流
  9. 在linux环境中配置tomcat
  10. mdk系列 Adsl 成功上网指南(非USB ADSL)
  11. 母机修改了文件,虚拟机复制到的可能不是预期的
  12. Phonegap 之 iOS银联在线支付(js调用ios端银联支付控件
  13. 计算机控制鼠标,键盘控制鼠标,详细教您如何使用键盘来控制鼠标
  14. 北京计算机专业考研录取分数线,2018北京航空航天大学计算机考研复试分数线_计算机考研分数线...
  15. 成为快乐高产的程序员的小诀窍。
  16. 放荡不羁SVG讲解与实战之Android高级UI
  17. ios设置阴历或农历生日(以iPhone X为例)
  18. python selenium 处理悬浮窗口(baidu tj_more)
  19. css案例,注册页面_基础案例
  20. 一到放假就稀里糊涂过

热门文章

  1. HIVE删除分区内选取特定内容
  2. python实现sql宽字节注入+布尔盲注
  3. 汇编语言及程序设计(51单片机)
  4. memcpy 引出的 chunk size 计算与内存对齐
  5. matlab 计算图像质量因数,matlab科学计算-中国大学mooc-试题题目及答案
  6. 2021-10-21 Laplace分布和指数分布,相同参数的两个指数分布之差是Laplace分布
  7. js-xlsx js处理excel 通过sheetJSON生成Excel文件
  8. Games101笔记——Lecture6:Rassterization 2(Antialiasing and Z-Buffering)
  9. 全球与中国卫浴安全产品市场深度研究分析报告
  10. JAVA8中forEach不能使用break和continue跳出循环用Rerun