LLM主流开源代表模型

LLM主流开源大模型介绍


在这里插入图片描述

1 LLM主流大模型类别

随着ChatGPT迅速火爆,引发了大模型的时代变革,国内外各大公司也快速跟进生成式AI市场,近百款大模型发布及应用。

目前,市面上已经开源了各种类型的大语言模型,本章节我们主要介绍其中的三大类:

  • ChatGLM-6B:衍生的大模型(wenda、ChatSQL等)

  • LLaMA:衍生的大模型(Alpaca、Vicuna、BELLE、Phoenix、Chimera等)

  • Bloom:衍生的大模型(Bloomz、BELLE、Phoenix等)


2 ChatGLM-6B模型


ChatGLM-6B 是清华大学提出的一个开源、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。该模型使用了和 ChatGPT 相似的技术,经过约 1T 标识符的中英双语训练(中英文比例为 1:1),辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答(目前中文支持最好)。


2.1 训练目标

GLM是一种基于自回归空白填充目标的通用预训练框架。GLM 将 NLU 任务转化为包含任务描述的完形填空问题,可以通过自回归生成的方式来回答。自回归空白填充目标是指在输入文本中随机挖去一些连续的文本片段,然后训练模型按照任意顺序重建这些片段。完形填空问题是指在输入文本中用一个特殊的符号(如[MASK])替换掉一个或多个词,然后训练模型预测被替换掉的词。


GLM的实现思想(训练目标):

  1. 原始文本 x = [ x 1 , x 2 , . . . , x 6 ] x=[x_1, x_2,...,x_6] x=[x1,x2,...,x6]随机进行连续 mask,这里假设 mask 掉 [ x 3 ] [x_3] [x3] [ x 5 , x 6 ] [x_5,x_6] [x5,x6] .
  2. [ x 3 ] [x_3] [x3] [ x 5 , x 6 ] [x_5,x_6] [x5,x6] 替换为 [M] 标志,并打乱 Part B 的顺序。为了捕捉跨度之间的内在联系,随机交换跨度的顺序。
  3. GLM 自回归地生成 Part B。 每个片段在输入时前面加上 [S],在输出时后面加上 [E]。 二维位置编码表示不同片段之间和片段内部的位置关系。
  4. 自注意力掩码。 灰色区域被掩盖。Part A 的词语可以自我看到(图蓝色框),但不能看到 Part B。 Part B 的词语可以看到 Part A 和 Part B 中的前面的词语(图黄色和绿色框对应两个片段)。 [M] := [MASK],[S] := [START],[E] := [END]

注意:

  • Position1 和 Position2 是输入的二维编码,第一个维度表示片段在原始文本中的相对位置,第二个维度表示片段内部的相对位置。

  • 假设原始文本是 x = [ x 1 , x 2 , . . . , x 6 ] x=[x_1, x_2,...,x_6] x=[x1,x2,...,x6],其中 [ x 3 ] [x_3] [x3] [ x 5 , x 6 ] [x_5,x_6] [x5,x6] 被挖去。那么,被挖去的片段在第一个维度上的位置编码就是它们在原始文本中的索引,即 [ x 3 ] [x_3] [x3]来自片段 3, [ x 5 , x 6 ] [x_5,x_6] [x5,x6] 来自片段 5。在第二个维度上的位置编码就是它们在片段中的索引,即 0 和 1。因此, x 3 x_3 x3的二维位置编码是[3, 0], x 5 x_5 x5的二维位置编码是[5, 0], x 6 ​ x_6​ x6 的二维编码是[5, 1]。

  • 同样,我们可以得到 x 1 x_1 x1的二维位置编码是[1, 0], x 2 x_2 x2的位置编码是[2, 0], x 4 x_4 x4的位置编码是[4, 0]。


2.2 模型结构

ChatGLM-6B 采用了 prefix decoder-only 的 transformer 模型框架,在输入上采用双向的注意力机制,在输出上采用单向注意力机制。

相比原始Decoder模块,模型结构有如下改动点:

  • embedding 层梯度缩减:为了提升训练稳定性,减小了 embedding 层的梯度。梯度缩减的效果相当于把 embedding 层的梯度缩小了 10 倍,减小了梯度的范数。
  • layer normalization:采用了基于 Deep Norm 的 post layer norm。
  • 激活函数:替换ReLU激活函数采用了 GeLU 激活函数。
    • GeLU的特点:
      • 相比ReLU稳定且高效
      • 缓解梯度消失
  • 位置编码:去除了绝对位置编码,采用了旋转位置编码 RoPE。
2.3 模型配置(6B)
配置数据
参数6.2B
隐藏层维度4096
层数28
注意力头数32
训练数据1T
词表大小130528
最大长度2048

2.4 硬件要求
量化等级最低GPU显存(推理)最低GPU显存(高效参数微调)
FP16(无量化)13GB14GB
INT810GB9GB
INT46GB7GB

2.5 模型特点

优点:

  • 较低的部署门槛: INT4 精度下,只需6GB显存,使得 ChatGLM-6B 可以部署在消费级显卡上进行推理。

  • 更长的序列长度: 相比 GLM-10B(序列长度1024),ChatGLM2-6B 序列长度达32K,支持更长对话和应用。

  • 人类类意图对齐训练

缺点:

  • 模型容量小,相对较弱的模型记忆和语言能力。

  • 较弱的多轮对话能力。

2.6 衍生应用

LangChain-ChatGLM:基于 LangChain 的 ChatGLM 应用,实现基于可扩展知识库的问答。

闻达:大型语言模型调用平台,基于 ChatGLM-6B 实现了类 ChatPDF 功能


3 LLaMA模型

LLaMA(Large Language Model Meta AI),由 Meta AI 于2023年发布的一个开放且高效的大型基础语言模型,共有 7B、13B、33B、65B(650 亿)四种版本。

LLaMA训练数据是以英语为主的拉丁语系,另外还包含了来自 GitHub 的代码数据。训练数据以英文为主,不包含中韩日文,所有训练数据都是开源的。其中LLaMA-65B 和 LLaMA-33B 是在 1.4万亿 (1.4T) 个 token上训练的,而最小的模型 LLaMA-7B 和LLaMA-13B 是在 1万亿 (1T) 个 token 上训练的。


3.1 训练目标

在训练目标上,LLaMA 的训练目标是语言模型,即根据已有的上文去预测下一个词。

关于tokenizer,LLaMA 的训练语料以英文为主,使用了 Sentence Piece 作为 tokenizer,词表大小只有 32000。词表里的中文 token 很少,只有几百个,LLaMA tokenizer 对中文分词的编码效率比较低。

3.2 模型结构

和 GPT 系列一样,LLaMA 模型也是 Decoder-only`架构,但结合前人的工作做了一些改进,比如:

  • Pre-normalization:为了提高训练稳定性,没有使用传统的 post layer norm,而是使用了 pre layer Norm,同时使用 RMSNorm归一化函数(RMS Norm的主要区别在于去掉了减去均值的部分,简化了Layer Norm 的计算,可以在减少约 7%∼64% 的计算时间)。

  • layer normalization:采用了基于 Deep Norm 的 post layer norm。

  • 激活函数:将 ReLU 非线性替换为 SwiGLU 激活函数。

  • 位置编码:去除了绝对位置编码,采用了旋转位置编码 RoPE。

3.3 模型配置(7B)
配置数据
参数6.7B
隐藏层维度4096
层数32
注意力头数32
训练数据1T
词表大小32000
最大长度2048

3.4 硬件要求

65B的模型,在2048个80G的A100 GPU上,可以达到380 tokens/sec/GPU的速度。训练1.4T tokens需要21天。


3.5 模型特点

优点:

  • 具有 130 亿参数的 LLaMA 模型「在大多数基准上」可以胜过 GPT-3( 参数量达 1750 亿)。

  • 可以在单块 V100 GPU 上运行;而最大的 650 亿参数的 LLaMA 模型可以媲美谷歌的 Chinchilla-70B 和 PaLM-540B。

缺点:

  • 会产生偏见性、有毒或者虚假的内容.

  • 在中文上效果差,训练语料不包含中文或者一个汉字切分为多个 token,编码效率低,模型学习难度大。

3.6 衍生应用

Alpaca: 斯坦福大学在 52k 条英文指令遵循数据集上微调了 7B 规模的 LLaMA。

Vicuna: 加州大学伯克利分校在 ShareGPT 收集的用户共享对话数据上,微调了 13B 规模的 LLaMA。

BELLE: 链家仅使用由 ChatGPT 生产的数据,对 LLaMA 进行了指令微调,并针对中文进行了优化。

Chinese LLaMA:

  • 扩充中文词表:常见做法:在中文语料上使用 Sentence Piece 训练一个中文 tokenizer,使用了 20000 个中文词汇。然后将中文 tokenizer 与原始的 LLaMA tokenizer 合并起来,通过组合二者的词汇表,最终获得一个合并的 tokenizer,称为 Chinese LLaMA tokenizer。词表大小为 49953。

4 BLOOM模型

BLOOM系列模型是由 Hugging Face公司的BigScience 团队训练的大语言模型。训练数据包含了英语、中文、法语、西班牙语、葡萄牙语等共 46 种语言,另外还包含 13 种编程语言。1.5TB 经过去重和清洗的文本,转换为 350B 的 tokens。训练数据的语言分布如下图所示,可以看到中文语料占比为 16.2%

按照模型参数量,BLOOM 模型有 560M、1.1B、1.7B、3B、7.1B 和 176B 这几个不同参数规模的模型。


4.1 训练目标

在训练目标上,LLaMA 的训练目标是语言模型,即根据已有的上文去预测下一个词。

关于tokenizer,BLOOM 在多语种语料上使用 Byte Pair Encoding(BPE)算法进行训练得到 tokenizer,词表大小为 250880。

4.2 模型结构

和 GPT 系列一样,LLaMA 模型也是 Decoder-only 架构,但结合前人的工作做了一些改进,比如:

  • embedding layer norm:在 embedding 层后添加了一个 layer normalization,来使训练更加稳定。
  • layer normalization:为了提升训练的稳定性,没有使用传统的 post layer norm,而是使用了 pre layer Norm。
  • 激活函数:采用了 GeLU 激活函数。
  • 位置编码:去除了绝对位置编码,采用了相对位置编码 ALiBi。相比于绝对位置编码,ALiBi 的外推性更好,即虽然训练阶段的最大序列长度为 2048,模型在推理过程中可以处理更长的序列。
4.3 模型配置(176B)
配置数据
参数176B
隐藏层维度14336
层数70
注意力头数112
训练数据366B
词表大小250880
最大长度2048

4.4 硬件要求

176B-BLOOM 模型在384 张 NVIDIA A100 80GB GPU上,训练于 2022 年 3 月至 7 月期间,耗时约 3.5 个月完成 (约 100 万计算时),算力成本超过300万欧元


4.5 模型特点

优点:

  • 具有良好的多语言适应性,能够在多种语言间进行切换,且无需重新训练

缺点:

  • 会产生偏见性、有毒或者虚假的内容.
4.6 衍生应用

轩辕: 金融领域大模型,度小满在 BLOOM-176B 的基础上针对中文通用领域和金融领域进行了针对性的预训练与微调。

BELLE: 链家仅使用由 ChatGPT 生产的数据,对 BLOOMZ-7B1-mt 进行了指令微调。


小结

主要介绍了LLM主流的开源大模型,对不同模型架构、训练目标、优缺点进行了分析和总结。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/847135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MATLAB源码-第220期】基于matlab的Massive-MIMO误码率随着接收天线变化仿真采用ZF均衡和QPSK调制。

操作环境: MATLAB 2022a 1、算法描述 1. 系统背景与目标 无线通信系统的发展极大地推动了现代通信技术的进步,从移动通信到无线局域网,甚至是物联网,均依赖于无线通信系统的高效和可靠性。在无线通信系统中,核心目…

【kafka】关于Kafka的入门介绍

为什么要使用kafka?kafka是什么东西? 案例场景 A服务向B服务发送消息,A服务传输数据很快,B服务处理数据很慢,这样B服务就会承受不住,怎么办?通过添加消息队列作为缓冲。kafka就是消息队列中的…

初识C++ · 模拟实现stack和Queue

目录 前言: 1 Stack 1.1 双端队列 2 Queue 前言: 经历了list三个自定义类型的洗礼,来个简单的放松放松,即栈和队列: 文档记录的,栈和队列是一种容器适配器,它们不属于stl,但是它…

低空经济发展报告

低空经济是指利用低空空间进行商业开发和经济活动的概念。随着航空技术的发展和无人机的普及,低空经济逐渐成为一个新兴的经济领域。 低空经济可以涵盖的领域非常广泛,包括但不限于物流配送、农业植保、城市交通、旅游观光等。利用无人机等飞行器进行物…

【算法】一文搞懂归并排序

概念 归并排序利用了分治思想,将待排序的数组范围层层划分,每次划分会得到两个大小相近的区间。当无法划分时,递归结束,自下而上进行区间合并merge操作,合并操作依次比较两个区间的元素,进而使合并后的区间…

【西瓜书】5.神经网络

1.概念 有监督学习正向传播:输入样本---输入层---各隐层---输出层反向传播:误差以某种形式在通过隐层向输入层逐层反转,并将误差分摊给各层的所有单元,以用于修正各层的权值激活函数:也叫阶跃函数,目的是引…

Maven 中的 classifier 属性用过没?

最近训练营有小伙伴问到松哥一个关于 Maven 依赖的问题,涉及到 classifier 属性,随机问了几个小伙伴,都说工作中没用到过,因此简单整篇文章和小伙伴们分享下。 Maven 大家日常开发应该都有使用,Maven 中有一个比较好玩…

最小二乘法算法(个人总结版)

最小二乘法(Least Squares Method)是一种通过最小化误差平方和来拟合数据的回归分析方法。它被广泛应用于线性回归、多元回归以及其他数据拟合问题中。以下是详细的教程,涵盖基本概念、数学推导、具体步骤和实现代码。 1. 最小二乘法基本概念…

装机必备——鲁大师安装教程

装机必备——鲁大师安装教程 软件下载 软件名称:鲁大师 软件语言:简体中文 软件大小:144.75M系统要求:Windows7或更高, 32/64位操作系统 硬件要求:CPU2GHz ,RAM2G或更高 下载通道①迅雷云盘丨…

p5开发helloworld

注意,执行的时候,后面不用带class的后缀

C语言(字符、字符串函数)2

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记,在这里撰写成文一…

Pinia(三): 了解和使用state

1.state state 就是我们要定义的数据, 如果定义 store 时传入的第二个参数是对象, 那么 state 需要是一个函数, 这个函数的返回值才是状态的初始值.这样设计的原因是为了让 Pinia 在客户端和服务端都可以工作 官方推荐使用箭头函数(()>{ })获得更好的类型推断 import { de…

最新张量补全论文收集【8篇】

目录 1、利用张量子空间先验:增强张量补全的核范数最小化和 2、基于可学习空间光谱变换的张量核范数多维视觉数据恢复 3、用于图像补全的增强型低秩和稀疏 Tucker 分解 4、多模态核心张量分解及其在低秩张量补全中的应用 5、 低秩张量环的噪声张量补全 6、 视…

三十四、openlayers官网示例Dynamic clusters解析——动态的聚合图层

官网demo地址: https://openlayers.org/en/latest/examples/clusters-dynamic.html 这篇绘制了多个聚合图层。 先初始化地图 ,设置了地图视角的边界extent,限制了地图缩放的范围 initMap() {const raster new TileLayer({source: new XYZ…

JAVA流程控制break,continue,goto

1.break在任何循环语句的主体成分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用) 如图:break语句强行退出循环,结果输出1~30便结束&#xf…

两数之和-第13届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第76讲。 两数之和&#xf…

Java面试八股之死锁和活锁的区别

死锁和活锁的区别 基本定义: 死锁(Deadlock):指两个或多个线程互相等待对方释放资源,从而导致所有线程都无法继续执行的状态。每个线程至少持有一个资源,并等待另一个由其他线程持有的资源,形…

初始操作系统

概念: 1.系统资源的管理者:实质控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机地工作和资源的分配 2.向上层提供方便易用的服务:以提供给用户和其他软件方便接口和环境 封装思想:操作系统把一些丑…

阿里云服务器接入百度云防护后显示502原因

最近,发现很多使用了阿里云服务器的网站出现502的情况 经百度云防护技术排查发现阿里云机房对百度云防护的IP进行了拦截,原因近期可能是百度云防护的IP请求过于频繁,导致阿里云机房策略把百度云的IP当成了攻击IP。 解决办法是提交工单让阿里…

第三方模块的下载与安装

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在进行Python程序开发时,除了可以使用Python内置的标准模块外,还有很多第三方模块可以被我们所使用。对于这些第三方模块&…