Code前端首页关于Code前端联系我们

大模型算法开发:结构与SOTA算法

terry 2年前 (2023-09-27) 阅读数 118 #数据结构与算法

分布式训练系统包括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语言模型,模型参数规模一举突破1000亿参数(1750亿)。谷歌2021年1月推出的Switch Transformer首次突破万亿。 2021年12月,谷歌再次推出1.2万亿参数GLaM通用稀疏语言模型,在小样本学习中击败了GPT-3。

大模型结构

我们来看看大模型算法结构的发展。

Transformer结构

Transformer是Google Brain在2017年提出的作品,它重新设计了RNN的弱点,解决了RNN效率问题和传输缺陷等,在很多问题上都优于RNN。表现。

Transformer的详细结构如下图所示。它的核心组成部分是自我意识。自注意力是指句子中的一个单词能够意识到它的所有单词。计算每个词对于这个词的权重,然后将该词设为所有词的加权和。每个自注意力操作就像每个单词的卷积操作或聚合操作。 大模型算法演进:结构及SOTA算法

image.png

MOE结构

如今的模型越来越大,训练样本也越来越多。每个样本都必须经过模型的充分计算,导致训练成本成二次方增加。 。

要解决这个问题,一种方法是将大模型分成几个小模型。对于一个样本,不需要遍历所有小模型进行计算,而只激活一部分小模型进行计算,节省了计算资源。

那么您如何决定样本应该审查哪些小模型呢?这就引入了稀疏门机制,即将样本加载到这个门中以获得要激活的小模型索引。这个门必须保证稀疏性,以保证算力的优化。

稀疏门控混合专家模型(稀疏门控 MoE):旨在实现条件计算,其中神经网络的某些部分在每个样本的基础上被激活,作为一种显着增加模型容量和功能的方法,而无需成为按比例增加计算量的一种方法。 大模型算法演进:结构及SOTA算法

image.png

将大模型分成几个小模型。对于一个样本,不需要遍历所有的小模型进行计算,而只激活一部分小模型进行计算,从而节省了计算资源。 。稀疏门控 MoE 在现代 GPU 集群上的计算效率几乎没有损失的情况下,模型容量提高了 1000 倍以上。

如果说Transformer结构使得模型参数能够突破亿级,那么MoE的稀疏混合专家结构则进一步使得模型参数能够达到千亿甚至万亿。

SOTA 大模型算法

上面我们从 Transformer 和 MOE 结构来看大模型的发展。下面我们就来详细了解一下业内知名的SOTA大机型。

Bert

2018年,Google发布了BERT,首次击败了11个NLP任务的高级(Sota)结果,成为NLP世界的新里程碑;

Bert 基于 Transformer 的模型是通用语义表示模型,可迁移性很强,但 Bert 只使用了 Transformer 的 Encoder 部分。 Bert的全称是Bi Direction Encoder Representation from Transformers,即双向变换器的Encoder(其中双向表示模型在处理特定单词时可以同时使用前一个单词和后一个单词的信息)。

Bert的结构如下图所示。左侧显示预训练过程,右侧是针对特定任务的微调过程。其中,fine-tuning阶段是为了后续用于一些下游任务时的微调,比如文本分类、单词语音标注、问答系统等。BERT可以在不调整结构的情况下对各种任务进行微调。Bert的出现开辟了模型训练和NLP的新思路,预训练模型逐渐成为自然语言处理(NLP)的主流; 大模型算法演进:结构及SOTA算法

image.png

GPT-3

2020年,OpenAI发布了新的语言模型GPT-3,拥有1750亿个参数的超大规模,使得语言模型能够生成难度较大的新闻文章来辨别真假。

GPT-3 是一个无监督的预训练模型。 大模型算法演进:结构及SOTA算法

image.png

GPT-3 有 96 层 Transformer Decoder,而 Bert-Large 只有 24 层 Transformer Encoder。 大模型算法演进:结构及SOTA算法

image.png

GPT-3 是一个基于上下文的生成人工智能系统。当您提供 GPT-3 提示或上下文时,它可以填补其余部分。如果你开始写一篇文章,它就会继续写这篇文章。

毫无疑问,GPT-3是NLP乃至AI的重大突破。

Switch Transformer

2021年1月,Google Brain团队推出了拥有1.6万亿参数的超级语言模型Switch Transformer。在开发 Switch Transformer 时,Google 研究人员寻求最大化参数数量,同时保持每个训练 FLOPS 数恒定。训练示例和相对少量的数据。

虽然大型数据集和参数支持的简单架构可以胜过一些复杂的算法,但高效的大规模训练和密集的数据处理是关键。为此,Switch Transformer 使用混合专家(MoE,混合专家)模型。 MoE 将为每个输入示例选择不同的参数。多个专家被保存在一个更大的模型或专门用于不同任务的模型中,门控网络选择针对任何给定数据咨询哪些专家。结果是一个稀疏激活的模型 - 仅使用模型权重的子集,或者仅转换模型中输入数据的参数。参数的数量是惊人的,但计算成本是恒定的。 大模型算法演进:结构及SOTA算法

image.png

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

在分布式训练场景中,通过数据并行、模型并行、专家并行,减少训练通信量,提高训练性能;他们的模型为不同的实体分配不同的权重,因此权重遵循。设备数量增加,但每个设备都可以控制设备的内存和计算机占用空间。 大模型算法演进:结构及SOTA算法

image.png

总体而言,Switch Transformers 是一种可扩展、高效的自然语言学习模型。通过简化 MoE,结果是一个易于理解和易于训练的架构,并且比相同大小的密集模型具有更高的采样效率。这些模型在各种自然语言任务和不同的训练方案(包括预训练、微调和多任务训练)中表现良好。这些进步使得训练具有数千亿到数万亿个参数的模型成为可能,这可以在严格的 T5 基线上实现显着的加速。

GLaM

2021 年 12 月,Google 推出了具有数万亿权重的通用语言模型(GLaM)。该模型的一个显着特征是它是稀疏的,并且可以有效地训练和操作(在计算和资源消耗方面),在几个小样本学习任务上实现有竞争力的性能。

GLaM 是一种混合专家模型 (MoE),可以将其视为具有不同的子模型(或专家),每个子模型专门针对不同的输入。每层的专家都由门控网络控制,该网络根据输入数据激活专家。对于每个令牌(通常是一个单词或单词的一部分),门控网络选择两个最合适的专家来处理数据。完整的 GLaM 共有 1.2T 参数,每个参数 64 个专家MoE,总共32个MoE层,但是在推理过程中模型只激活了97B个参数,占总参数的8%。

GLaM 的架构,每个输入 token 都会动态路由到从 64 个专家网络中选出的两个专家网络进行预测,如下图所示。 大模型算法演进:结构及SOTA算法

image.png

综上所述,Google 的大型稀疏激活语言模型 GLaM 在零样本和单样本学习中取得了有竞争力的结果,并且是比之前的集成密集模型更高效的模型。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门