大模型算法演进

news2024/11/15 16:01:48

分布式训练系统包括多个组成部分,如AI集群架构、通信机制、并行技术等。基于这些内容,我们可以设计出不同的大模型算法。下面我们简单讲述下大模型的发展脉络,大模型的结构以及SOTA大模型算法。

大模型发展脉络

随着2017年Transformer结构的提出,使得深度学习模型参数突破了1亿,Transformer 取代RNN、CNN进入大模型时代。2018年谷歌发布了BERT,便一举击败 11 个 NLP 任务的 State-of-the-art (Sota)结果,成为了 NLP 界新的里程碑,同时为模型训练和NLP领域打开了新的思路,预训练模型逐渐成为自然语言处理(NLP)领域的主流;同时,网络模型参数量首次超过3亿规模。2020年,OpenAI发布GPT-3 全新语言模型,模型参数规模一举突破千亿参数(1750 亿)。2021年1月Google重磅推出的Switch Transformer首次突破万亿规模。2021年12月,Google再次推出1.2万亿参数GLaM通用稀疏语言模型,小样本学习打败GPT-3。

大模型结构

下面我们来看下大模型算法结构演进。

Transformer结构

Transformer 是Google Brain 2017年的提出的一篇工作,它针对RNN的弱点进行重新设计,解决了RNN效率问题和传递中的缺陷等,在很多问题上都超过了RNN的表现。

Transformer的详细结构如下图所示,他的核心组件就是Self-Attention。Self Attention就是句子中的某个词对于本身的所有词做一次Attention。算出每个词对于这个词的权重,然后将这个词表示为所有词的加权和。每一次的Self Attention操作,就像是为每个词做了一次Convolution操作或Aggregation操作。

image.png
image.png

MOE结构

现在的模型越来越大,训练样本越来越多,每个样本都需要经过模型的全部计算,这就导致了训练成本的平方级增长。

为了解决这个问题,一种方式是将大模型拆分成多个小模型,对于一个样本来说,无需经过所有的小模型去计算,而只是激活一部分小模型进行计算,这样就节省了计算资源。

那么如何决定一个样本去经过哪些小模型呢?这就引入了一个稀疏门机制,即样本输入给这个门,得到要激活的小模型索引,这个门需要确保稀疏性,从而保证计算能力的优化。

稀疏门控专家混合模型(Sparsely-Gated MoE):旨在实现条件计算,即神经网络的某些部分以每个样本为基础进行激活,作为一种显著增加模型容量和能力而不必成比例增加计算量的方法。

image.png
image.png

将大模型拆分成多个小模型,对于一个样本来说,无需经过所有的小模型去计算,而只是激活一部分小模型进行计算,这样就节省了计算资源。稀疏门控 MoE,实现了模型容量超过1000倍的改进,并且在现代 GPU 集群的计算效率损失很小。

如果说Transformer结构使得模型突破到上亿参数量,MoE 稀疏混合专家结构使模型参数量进一步突破,达到上千亿、万亿规模。

SOTA大模型算法

上面我们从Transformer和MOE结构看大模型发展,下面我们来具体看下在业界比较有名的SOTA大模型。

Bert

2018年谷歌发布了BERT,首次面世便一举击败 11 个 NLP 任务的 State-of-the-art (Sota)结果,成为了 NLP 界新的里程碑;

Bert是基于Transformer的模型,并且是一个迁移能力很强的通用语义表示模型,但是Bert只是运用了Transformer的Encoder部分。Bert的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder(其中,双向表示模型在处理某一个词的时候,能同时利用前面的词和后面的词两部分信息)。

Bert的结构如下图所示,左侧表示了预训练的过程,右边是对于具体任务的微调(Fine-tuning)过程。 其中, 微调阶段是后续用于一些下游任务的时候进行微调,例如:文本分类,词性标注,问答系统等,BERT 无需调整结构就可以在不同的任务上进行微调。Bert的出现为模型训练和NLP领域打开了新的思路,预训练模型逐渐成为自然语言处理(NLP)领域的主流;

image.png
image.png

GPT-3

2020年,OpenAI发布全新语言模型GPT-3,拥有1750亿参数的超大规模,使得语言模型具备了生成难辨真假的新闻文章的能力。

GPT-3是一个无监督的预训练模型。

image.png
image.png

GPT-3有96层 Transformer Encoder,而Bert-Large只有24 层 Transformer Encoder。

image.png
image.png

GPT-3是基于上下文的生成AI系统。当您向GPT-3提供提示或上下文时,它可以填写其余内容。如果您开始撰写文章,它将继续撰写文章。

毫无疑问GPT-3是NLP领域乃至AI领域取得重大突破的一项工作。

Switch Transformer

2021年1月,谷歌大脑团队重磅推出了超级语言模型Switch Transformer,有1.6万亿个参数。在开发Switch Transformer时,谷歌研究人员力求最大程度地增加参数数量,同时保持每个训练示例和相对少量的数据,训练的FLOPS数量不变。

尽管在大数据集和参数支撑下的简单的架构可以超越一些复杂的算法,然而,高效的大规模训练和密集的计算是关键。为此,Switch Transformer使用了Mixture of Experts (MoE,混合专家)模型。MoE会为每个输入的例子选择不同的参数。多个专家被保留在一个更大的模型中,或者说是专门处理不同任务的模型,针对任何给定的数据,由一个门控网络来选择咨询哪些专家。结果得到一个稀疏激活(sparsely activated)模型——仅使用模型的权值子集,或仅转换模型中输入数据的参数。该参数数量惊人,但计算成本恒定。

image.png
image.png

Switch Transformer的创新之处在于它有效地利用了为密集矩阵乘法设计的硬件,如GPU和谷歌的张量处理单元TPU。

在分布式训练设置中通过数据并行、模型并行、Expert并行的方式降低了训练通信量,提升训练性能;他们的模型将不同的权重分配到不同的设备上,这样权重就会随着设备数量的增加而增加,但是每个设备却可以管理设备的内存和计算足迹。

image.png
image.png

总的来说,Switch Transformers是一个可扩展的,高效的自然语言学习模型。通过简化MoE,得到了一个易于理解、易于训练的体系结构,该结构还比同等大小的密集模型具有更大的采样效率。这些模型在一系列不同的自然语言任务和不同的训练机制中,包括预训练、微调和多任务训练,都表现出色。这些进步使得使用数千亿到万亿参数训练模型成为可能,相对于密集的T5基准,这些模型可以实现显著的加速。

GLaM

2021年12月,谷歌推出了具有万亿权重的通用语言模型 (Generalist Language Model,GLaM),该模型的一大特点就是具有稀疏性,可以高效地进行训练和服务(在计算和资源使用方面),在多个小样本学习任务上取得有竞争力的性能。

GLaM  是混合专家模型 (MoE)  ,这种模型可以被认为具有不同的子模型(或专家),每个子模型都专门用于不同的输入。每一层的专家由一个门控网络控制,该门控网络根据输入数据激活专家。对于每个  token(通常是一个词或词的一部分),门控网络选择两个最合适的专家来处理数据。完整的 GLaM 总共有 1.2T 参数,每个 MoE 包含  64 个专家,总共 32 个 MoE 层,但在推理期间,模型只会激活 97B 的参数,占总参数的 8%。

GLaM 的体系架构,每个输入 token 都被动态路由到从 64 个专家网络中选择的两个专家网络中进行预测,如下图所示。

image.png
image.png

总之,Google的大规模稀疏激活语言模型 GLaM 在零样本和单样本学习方面取得了有竞争力的结果,并且是比之前的整体密集模型更有效的模型。

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

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

相关文章

中国区域创新能力指数《中国区域创新能力报告》

一、《中国区域创新能力评价报告》2002-2021年 《中国区域创新能力报告》旨在对中国各省、直辖市、自治区的创新能力做一个客观、动态和全面的评价。该报告通过大量的数字和科学的分析框架,对中国区域创新总的能力做了一个较全面的分析,并对各省、直辖市…

与 AI 生成的历史人物聊天是怎样的体验? #Hello History

采用 AI 技术的聊天机器人正在被越来越多的人熟知。近期,一款能够与历史人物对话的软件出现,与古今中外的历史人物对话成为现实!会有哪些令人惊叹的强大功能?Hello HistoryHello History 是一款基于人工智能的应用,用户可以与历史…

Redis6学习笔记【part1】安装与启动

redis6学习笔记 1.NoSQL数据库 NoSQL Not Only SQL,不仅仅是SQL,泛指非关系型数据库。NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。 特点:不遵循SQL标准、不支持ACID&…

力扣sql简单篇练习(一)

力扣sql简单篇练习(一) 1 大的国家 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT name,population,area FROM World WHERE area>3000000 OR population>250000001.3 运行截图 2 组合两个表 2.1 题目内容 2.1.1 基本题目信息 2.1.2…

【数据结构】速速收藏,一文带你参透双向链表各接口实现

目录 🥕前言🥕: 🌽一、双向链表概述🌽: 1.双向链表概念: 2.双向链表结构: 🍆二、双向链表接口实现🍆: 1.工程文件建立: 2.接口…

【Docker应用篇】Docker安装RocketMQ

【Docker应用篇】Docker安装RocketMQCentos 7.4安装DockerDocker安装RocketMQ技术架构安装Centos 7.4安装Docker 1、较旧版本的Docker被称为docker或docker-engine,如果已安装这些,请卸载它们: yum remove -y docker \docker-client \docke…

ubuntu18.04 cuda卸载及安装

1.若电脑上已经安装了其他版本的cuda及显卡驱动,需要完全卸载并删除相关文件,否则会导致安装不成功,执行如下: 1.1卸载cuda,步骤如下: cd /usr/local/cuda-xx.x/bin/ (进入你的cuda文件夹下) sudo ./cuda-…

流程控制|使用循环结构等完成重复性工作(文末附视频)

本节介绍Go语言中的程序流程控制结构,具体包括以下内容: 循环结构流程控制语句条件分支结构 经过前面两个小节的学习,我们初步掌握了Go语言的语法知识。本小节将介绍循环和条件分支,从而使用少量代码完成大量重复性的操作&#x…

NestJS 项目实战 需求分析(文末附视频)

前言 一般常规的项目立项之初会有一份 MRD(Market Requirements Document,市场需求文档)用来判断产品的必需性以及价值等。 对于基础项目开发来说,使用 MRD 可能有些重量级,但我们也需要对一个新的基建类型项目做一个…

【快速幂】875. 快速幂

875. 快速幂 文章目录题目描述输入格式:输出格式:数据范围输入样例输出样例方法:快速幂解题思路代码复杂度分析:题目描述 给定 nnn 组 ai,bi,pia_i,b_i,p_iai​,bi​,pi​,对于每组数据,求出 aibimodpia_i…

Numpy常用random随机函数

Numpy常用random随机函数 seed 向随机数生成器传递随机状态种子 只要random.seed( * ) seed里面的值一样,那随机出来的结果就一样。所以说,seed的作用是让随机结果可重现。也就是说当我们设置相同的seed,每次生成的 随机数相同。如果不设置…

冯 • 诺依曼体系结构与操作系统

目录 一、冯 • 诺依曼体系结构 1.1 冯 • 诺依曼体系结构推导 1.2 内存提高效率 1.3 具体案例理解冯 • 诺依曼体系结构 1.4 其他认识 二、操作系统 2.1 操作系统概念 2.2 操作系统的上下层 2.3 管理理念:先描述,再组织 一、冯 • 诺依曼体系结构 1.1 冯 …

Acwing - 算法基础课 - 笔记(数学知识 · 四)(补)

数学知识(四) 这一小节讲的是容斥原理和简单博弈论。 容斥原理 定义 最基本的,假设有3个两两相交的圆。那么三个圆所覆盖的面积大小为 S1S2S3−S1∩S2−S2∩S3−S1∩S3S1∩S2∩S3S_1S_2S_3 - S_1 \cap S_2 - S_2 \cap S_3 - S_1 \cap S_3…

【JavaEE】如何开始最基础的Servlet编程(借助Tomcat实现)

什么是Servlet我们知道服务器工作的三部曲:接收请求 -> 处理请求并计算响应 -> 发送响应Servlet是个接口,实现这个接口的类就是用来进行中间的一个步骤“处理请求并计算响应的”,应用于HTTP传输的中间层。借助Tomcat服务器进行Servlet编…

【论文速递】WACV2022 - 从边界框标注学习小样本分割

【论文速递】WACV2022 - 从边界框标注学习小样本分割 【论文原文】:Learning Few-shot Segmentation from Bounding Box Annotations 获取地址:https://openaccess.thecvf.com/content/WACV2023/papers/Han_Learning_Few-Shot_Segmentation_From_Bound…

Word文档和PDF文件如何互相转换?

工作中,有时候我们需要把Word转换成PDF格式,转换后不但更美观、专业,也可以防止文档被修改。 那Word文档如何转换成PDF文件呢?其实在Word里面就可以直接转换。 文档编辑好后,在菜单中点击【文件】选项,然…

搭建 Go 语言的开发环境(文末附视频讲解)

从本小节开始,我们就要正式动手实践了。 类比现实生活,我们若要钉钉子,就需要准备锤子;想要烧菜,就需要准备灶具和食材…… 类似地,若要在电脑上编写 Go 语言程序,便要先配置开发环境。 下载和…

干货 | 互联网广告数据的匿名化方案研究

以下内容整理自清华大学《数智安全与标准化》课程大作业期末报告同学的汇报内容。第一部分:背景介绍一、匿名化必要性互联网广告具有非常重要的商业价值,同时也是涉及数据处理十分密集的行业,出现了操作规范化、个人信息保护和商业数据安全等…

[GXYCTF2019]禁止套娃(无参数RCE)

目录 信息收集 知识讲解 涉及函数 PHP的正则表达式 无参rce 用到的函数 思路分析 方法一 方法二 信息收集 拿到这道题,抓包看了看,啥也没有,用dirsearch爆破目录发现.git目录,猜测存在.git源码泄露,用githac…

Web Spider XHR断点 堆栈跟值 逆向案例(四)

声明 此次案例只为学习交流使用,抓包内容、敏感网址、数据接口均已做脱敏处理,切勿用于其他非法用途; 文章目录声明前言一、任务说明二、网站分析三、XHR断点调试,扣JS加密代码四、代码实现1、JS加密代码:encode.js2、…