【AI大模型】LLM主流开源大模型介绍

简介: 【AI大模型】LLM主流开源大模型介绍

学习目标

🍀 了解LLM主流开源大模型.

🍀 掌握ChatGLM、LLaMA、Bloom等基础大模型的原理

🍔 LLM主流大模型类别

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

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

  • ChatGLM-6B:衍生的大模型(wenda、ChatSQL等)
  • LLaMA:衍生的大模型(Alpaca、Vicuna、BELLE、Phoenix、Chimera等)
  • Bloom:衍生的大模型(Bloomz、BELLE、Phoenix等)

🍔 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]$随机进行连续 mask,这里假设 mask 掉$[x_3]$和 $[x_5,x_6]$ .
  2. 将$[x_3]$和 $[x_5,x_6]$ 替换为 [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_3]$和 $[x_5,x_6]$ 被挖去。那么,被挖去的片段在第一个维度上的位置编码就是它们在原始文本中的索引,即$[x_3]$来自片段 3,$[x_5,x_6]$ 来自片段 5。在第二个维度上的位置编码就是它们在片段中的索引,即 0 和 1。因此, $x_3$的二维位置编码是[3, 0], $x_5$的二维位置编码是[5, 0],$x_6$ 的二维编码是[5, 1]。
  • 同样,我们可以得到$x_1$的二维位置编码是[1, 0], $x_2$的位置编码是[2, 0], $x_4$的位置编码是[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(无量化) 13GB 14GB
INT8 10GB 9GB
INT4 6GB 7GB

2.5 模型特点

优点:

  • 较低的部署门槛: INT4 精度下,只需6GB显存,使得 ChatGLM-6B 可以部署在消费级显卡上进行推理。
  • 更长的序列长度: 相比 GLM-10B(序列长度1024),ChatGLM2-6B 序列长度达32K,支持更长对话和应用。
  • 人类类意图对齐训练

缺点:

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

2.6 衍生应用

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

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


🍔 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。

🍔 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主流的开源大模型,对不同模型架构、训练目标、优缺点进行了分析和总结。
相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
13天前
|
人工智能 安全 数据安全/隐私保护
文档智能 & RAG让AI大模型更懂业务测评
文档智能 & RAG让AI大模型更懂业务
141 73
|
3天前
|
人工智能
AniDoc:蚂蚁集团开源 2D 动画上色 AI 模型,基于视频扩散模型自动将草图序列转换成彩色动画,保持动画的连贯性
AniDoc 是一款基于视频扩散模型的 2D 动画上色 AI 模型,能够自动将草图序列转换为彩色动画。该模型通过对应匹配技术和背景增强策略,实现了色彩和风格的准确传递,适用于动画制作、游戏开发和数字艺术创作等多个领域。
47 16
AniDoc:蚂蚁集团开源 2D 动画上色 AI 模型,基于视频扩散模型自动将草图序列转换成彩色动画,保持动画的连贯性
|
1天前
|
人工智能 Linux API
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
PromptWizard 是微软开源的 AI 提示词自动化优化框架,通过自我演变和自我适应机制,迭代优化提示指令和上下文示例,提升大型语言模型(LLMs)在特定任务中的表现。本文详细介绍了 PromptWizard 的主要功能、技术原理以及如何运行该框架。
33 8
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
|
6天前
|
机器学习/深度学习 人工智能
Leffa:Meta AI 开源精确控制人物外观和姿势的图像生成框架,在生成穿着的同时保持人物特征
Leffa 是 Meta 开源的图像生成框架,通过引入流场学习在注意力机制中精确控制人物的外观和姿势。该框架不增加额外参数和推理成本,适用于多种扩散模型,展现了良好的模型无关性和泛化能力。
44 11
Leffa:Meta AI 开源精确控制人物外观和姿势的图像生成框架,在生成穿着的同时保持人物特征
|
11天前
|
人工智能 API 语音技术
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
TEN Agent 是一个开源的实时多模态 AI 代理框架,集成了 OpenAI Realtime API 和 RTC 技术,支持语音、文本和图像的多模态交互,具备实时通信、模块化设计和多语言支持等功能,适用于智能客服、实时语音助手等多种场景。
97 15
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
|
4天前
|
机器学习/深度学习 人工智能 算法
X-AnyLabeling:开源的 AI 图像标注工具,支持多种标注样式,适于目标检测、图像分割等不同场景
X-AnyLabeling是一款集成了多种深度学习算法的图像标注工具,支持图像和视频的多样化标注样式,适用于多种AI训练场景。本文将详细介绍X-AnyLabeling的功能、技术原理以及如何运行该工具。
33 2
X-AnyLabeling:开源的 AI 图像标注工具,支持多种标注样式,适于目标检测、图像分割等不同场景
|
12天前
|
人工智能 安全 PyTorch
SPDL:Meta AI 推出的开源高性能AI模型数据加载解决方案,兼容主流 AI 框架 PyTorch
SPDL是Meta AI推出的开源高性能AI模型数据加载解决方案,基于多线程技术和异步事件循环,提供高吞吐量、低资源占用的数据加载功能,支持分布式系统和主流AI框架PyTorch。
46 10
SPDL:Meta AI 推出的开源高性能AI模型数据加载解决方案,兼容主流 AI 框架 PyTorch
|
10天前
|
人工智能 自然语言处理 前端开发
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
CodeArena 是一个在线平台,用于测试和比较不同大型语言模型(LLM)的编程能力。通过实时显示多个 LLM 的代码生成过程和结果,帮助开发者选择适合的 LLM,并推动 LLM 技术的发展。
42 7
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
|
12天前
|
人工智能 安全 测试技术
EXAONE 3.5:LG 推出的开源 AI 模型,采用 RAG 和多步推理能力降低模型的幻觉问题
EXAONE 3.5 是 LG AI 研究院推出的开源 AI 模型,擅长长文本处理,能够有效降低模型幻觉问题。该模型提供 24 亿、78 亿和 320 亿参数的三个版本,支持多步推理和检索增强生成技术,适用于多种应用场景。
64 9
EXAONE 3.5:LG 推出的开源 AI 模型,采用 RAG 和多步推理能力降低模型的幻觉问题
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
AI自己长出了类似大脑的脑叶?新研究揭示LLM特征的惊人几何结构
近年来,大型语言模型(LLM)的内部运作机制备受关注。麻省理工学院的研究人员在论文《The Geometry of Concepts: Sparse Autoencoder Feature Structure》中,利用稀疏自编码器(SAE)分析LLM的激活空间,揭示了其丰富的几何结构。研究发现,特征在原子、大脑和星系三个尺度上展现出不同的结构,包括晶体结构、中尺度模块化结构和大尺度点云结构。这些发现不仅有助于理解LLM的工作原理,还可能对模型优化和其他领域产生重要影响。
47 25

热门文章

最新文章