人工智能已成为近年来最受关注的话题之一,由于神经网络的发展,曾经被认为纯粹是科幻小说中的服务现在正在成为现实。从对话代理到媒体内容生成,人工智能正在改变我们与技术互动的方式。特别是机器学习 (ML) 模型在自然语言处理 (NLP) 领域取得了重大进展。一个关键的突破是引入了“自注意力”和用于序列处理的Transformers架构,这使得之前主导该领域的几个关键问题得以解决。
在本文中,我们将研究革命性的Transformers架构以及它如何改变NLP,我们还将全面回顾从BERT到Alpaca的Transformers模型,重点介绍每种模型的主要特征及其潜在应用。
第一部分是基于Transformer编码器的模型,用于向量化、分类、序列标记、QA(问答)、NER(命名实体识别)等。
1、BERT Google / 2018
Transformer 编码器,wordpiece tokenization(30K 词汇量)。输入嵌入由三个向量组成:标记向量、可训练位置向量和片段向量(第一个文本或第二个文本)。模型输入是 CLS 标记嵌入、第一个文本的嵌入和第二个文本的嵌入。
BERT 有两个训练任务:Masked Language Modeling (MLM) 和 Next Sentence Prediction (NSP)。在 MLM 中,15% 的令牌被屏蔽,80% 被 MASK 令牌替换,10% 被随机令牌替换,10% 保持不变。模型会预测正确的 令牌,而损失仅在这 15% 的屏蔽令牌上计算。在 NSP 中,模型预测第二个文本是否跟在第一个文本之后。预测是在 CLS 令牌的输出向量上进行的。
为了加快训练速度,首先90%的训练在序列长度为 128 个标记上进行,然后剩下的10% 的时间在 512 个标记上训练模型以获得更有效的位置嵌入。
2、RoBERTa Facebook / 2019
BERT的改进版本,它只在MLM上训练(因为NSP被认为不太有用),训练序列更长(512个令牌)。使用动态屏蔽(当再次处理相同的数据时,不同的令牌被屏蔽),训练超参数是精心选择的。
3、XLM Facebook / 2019
训练多语言模型的方法之一是使用不同的基本模型(目前最流行的模型是基于RoBERTa的XLM-R)。在最初的XLM中,所有语言都有一个共享的BPE词汇表。
XLM 有两个训练任务:MLM和翻译。翻译本质上与一对文本上的 MLM 相同,但文本是彼此的平行翻译,具有随机掩码和段嵌入编码语言。
4、Transformer-XL Carnegie Mellon University / 2019
该模型设计用于处理长序列,主要有两个思想:片段的循环处理和相对位置编码。
长文本被分成几个片段,每次处理一个片段。前一段的输出被缓存,在计算当前段中的自我关注时,键和值是基于当前段和前一段的输出计算的(只是简单地连接在一起)。梯度也只在当前段内计算。
这种方法不适用于绝对位置。所以模型中重新参数化了注意力权重公式。绝对的位置编码向量被一个固定的矩阵取代,该矩阵基于标记位置之间距离的正弦值和对所有位置共有的可训练向量。
5、ERNIE 清华大学,华为 / 2019
将知识图谱中有关命名实体的信息嵌入到 BERT 中。输入由一组文本标记和一组实体标记组成(每个标记代表整个实体)。文本标记由 BERT 编码。在 BERT 之上,有一组 K 编码器块(约占网络参数的 3%)。在这些块中:
在预训练期间,计算三种损失:MLM、NSP 和来自令牌的实体预测(如自编码器),自编码器使用下面规则:
预训练模型可以像常规 BERT 模型一样进行微调(有 CLS 令牌)。也可以使用额外的程序进行微调以确定实体及其类型之间的关系。
6、XLNet Carnegie Mellon University / 2019
因为BERT训练过程存在问题:
XLNet 基于 Transformer-XL,除了替换语言建模 (PLM) 任务外,它学习在短的上下文中预测标记,而不是直接使用 MASK。这确保了梯度会计算所有标记并消除了对特殊掩码标记的需要。
上下文中的标记被打乱(比如:可以根据第 i-2个和第i+1个标记预测第 i 个标记),但它们的位置仍然是已知的。这无法通过当前的位置编码(包括 Transformer-XL)实现。当尝试在给定上下文的一部分的情况下预测令牌的概率时,模型不应该知道本身的令牌,但应该知道令牌在上下文中的位置。为了解决这个问题,他们将self-attention 分为两个流:
在微调期间,如果忽略查询向量,模型将像常规的 Transformer-XL 一样工作。
在实践中该模型的要求上下文必须足够长,以便模型能够正确学习。它在与 RoBERTa 相同数量的数据上学习,结果相似,但由于实现的复杂性,该模型并没有像 RoBERTa 那样流行。
7、ALBERT Google / 2019
在不牺牲质量的情况下简化BERT:
模型在MLM和句子顺序预测(SOP)上进行训练。
8、DistilBERT Google / 2019
另一种优化BERT的方法是蒸馏:
9、LaBSE Google / 2020
基于BERT的多语言矢量化模型。它在MLM和TLM上进行训练(20%的标记被屏蔽),然后对其进行微调。它支持100多种语言,包含500K个标记的词汇表。
10、ELECTRA Google, Stanford University / 2020
使用生成对抗方法加速BERT训练:
训练数据的数量与RoBERTa或XLNet相同,并且模型比BERT、RoBERTa和ALBERT更快地学习到相似的质量水平。训练时间越长,它的表现就越好。
11、DeBERTa Microsoft / 2020
另一种将标记向量的内容和位置分离为两个单独的向量的模型:
基于完整Transformers的模型。它的应用范围非常广泛:除了上一节的任务外,它还包括会话代理、机器翻译、逻辑和数学推理、代码分析和生成,以及基本上文本生成。最大和“最智能”的模型通常基于解码器架构。此类模型通常在 few-shot 和 zero-shot 模式下无需微调即可表现良好。
1、GPT-2 OpenAI / 2018
解码器在因果LM的任务上进行训练(根据左侧上下文预测下一个令牌)。从体系结构的角度来看,有一些小的变化:从每个解码器块中移除交叉注意层,并使用了LayerNorm
使用的标记器是字节级BPE (50K词汇表),没有使用类似的子字符串例如(“dog”、“dog!”、“dog.”)。最大序列长度为 1024。层输出缓存所有先前生成的标记。
2、T5 Google / 2019
在MLM上进行完整的预训练(15%的令牌被屏蔽),跨度由代码掩码(
LayerNorm在自注意力层和全连接层输入之前应用。使用相对位置编码:
位置由可学习的嵌入编码,其中每个“嵌入”只是在计算注意力权重时添加相应logit的标量
矩阵B是跨层共享的,但对于不同的自注意力注头是不同的。
每一层考虑令牌之间的128个距离,其余的归零,这样可以对比训练期间看到的序列更长的序列进行推理。
标记化使用sentencepece (32K词汇表)完成,在预训练期间最大序列长度为512。
3、BART Facebook / 2019
另一个完整的transformers,但是用GeLU取代了ReLU。训练它从噪声文本(AE去噪)中预测原始文本,噪声类型如下:
使用字节级BPE(词汇表大小为50K)
4、CTRL Salesforce / 2019
使用前缀代码令牌(例如,
4、GPT-3 OpenAI / 2020
这是一个具有Sparse Transformer架构的GPT-2模型,并且增加了2048个令牌的序列长度。还记的那句话吗:别问,问就是GPT3
5、mT5 Google / 2020
基于T5模型,具有类似的训练,但使用多语言数据。ReLU激活被替换为GeGLU,词汇表扩展到250K个标记。
6、GLAM Google / 2021
这个模型在概念上类似于Switch Transformer,但更侧重于在少样本的模式下工作,而不是微调。不同规模的模型使用32到256个专家层,K=2。使用来自Transformer-XL的相对位置编码。在处理令牌时,只有不到10%的网络参数被激活。
7、 LaMDA Google / 2021
类似gpt的模型。该模型是一个会话模型,在因果LM上进行了预训练,并在生成和判别任务上进行了微调。该模型还可以对外部系统(搜索、翻译)的调用。
8、GPT-NeoX-20B EleutherAI / 2022
这个模型类似于GPT-J,也使用旋转位置编码。模型权重使用float16表示。最大序列长度为2048。
9、BLOOM BigScience / 2022
这是46种语言和13种编程语言的最大开源模型。为了训练模型,使用一个名为ROOTS的大型聚合数据集,其中包括大约500个开放数据集。
10、PaLM Google / 2022
这是一个大型多语言解码器模型,使用Adafactor进行训练,在预训练时禁用dropout,在微调时使用0.1。
11、LLaMA Meta / 2023
用于科学研究的开源大型gpt类LM,已用于训练多个指令模型。该模型使用了pre-LayerNorm、SwiGLU激活和RoPE位置嵌入。因为开源所以这是弯道超车的主要模型之一。
这些模型抓哟用于校正模型输出(例如 RLHF)以提高对话和任务解决期间的响应质量。
1、InstructGPT OpenAI / 2022
这项工作调整GPT-3以有效地遵循指示。该模型在一个由提示和答案组成的数据集上进行微调,这些提示和答案是人类根据一套标准认为好的。基于InstructGPT,OpenAI 创建了一个被我们现在熟知的模型ChatGPT。
2、Flan-T5 Google / 2022
适用于T5的指导模型。在某些任务中,Flan-T5 11B在没有这种微调的情况下优于PaLM 62B。这些模型已经作为开源发布。
3、Sparrow DeepMind / 2022
基本模型是通过在选定的高质量对话上对Chinchilla进行微调获得的,前80%的层被冻结。然后该模型被进一步训练,使用一个大提示来引导它进行对话。有几个奖励模型也在Chinchilla的基础上进行训练。该模型可以访问搜索引擎并检索最多500个字符的片段,这些片段可以成为响应。
在推理过程中,奖励模型用于对候选人进行排序。候选项要么由模型生成,要么从搜索中获得,然后最好的一个成为响应。
4、Alpaca Stanford University / 2023
上面LLaMA 的指导模型。主要重点是使用GPT-3构建数据集的过程:
总共生成了52K个唯一的三元组,并对LLaMA 7B进行了微调。
5、Koala Berkeley University / 2023
这是在指令数据上对LLaMA进行微调,但与上面的Alpaca不同的是,它不仅在GPT-3等大型模型生成的数据上进行微调。还数据集的组成为:
与GPT-3相比,没有质量的增加。但是在盲测中,用户更喜欢Koala 的回答,而不是Alpaca 的回答。
基于文本描述的图像生成器。扩散模型与transformers 相结合在这一领域占据主导地位,不仅可以生成图像,还可以进行内容操作和分辨率增强。
1、DALL-E OpenAI / 2021
这项工作分两个阶段进行:对图像的标记进行训练,然后学习文本和图像的联合生成模型。
在第一阶段,训练dVAE,其中将图像从256x256x3空间转换为32x32xdim并返回,其中dim是隐藏表示向量的维度。总共有8192个这样的标记向量,这些标记向量将在模型中进一步使用。
使用的主要模型是稀疏transformer 解码器。文本令牌和图像令牌作为输入,模型学习联合分布(Causal LM),之后可以基于文本生成图像令牌。dVAE基于这些相同的令牌生成一个映像。文本标记的损失权重是1/8,图像标记的权重损失是7/8。
对于文本标记,有常规嵌入和位置嵌入,对于图像标记,有常规的、按列定位的和按行定位的嵌入。文本标记序列的最大长度为256,标记化为BPE (16K词汇表)。
2、GLIDE OpenAI / 2021
一种在像素级操作并由文本控制的扩散模型(DM)。它基于U-Net架构,具有卷积、注意和残差连接。使用不同的方法来控制生成。使用CLIP获得的图像向量和文本向量的标量积
3、Latent Diffusion [Stable Diffusion] CompVis [Stability AI] / 2021 [2022]
在像素空间中工作的扩散模型,主要包含2个模型:
自编码器以类似gan的方式进行训练,在其结果上使用鉴别器,并将额外的正则化表示与标准正态分布的接近程度。
结果在潜在空间中进入DM解码:如果条件是一个向量,则在步骤的输入处与潜在向量连接,如果是一个向量序列,则用于不同U-Net层的交叉注意。对于文本提示使用CLIP向量。
这个通用的模型可以被训练用于不同的任务:文本到图像,着色,绘画,超分辨率。
4、Imagen Google / 2022
Imagen背后的主要思想是增加文本编码器的大小比增加DM的大小可以给生成模型带来更多的好处。所以CLIP被替换为T5-XXL。
本节中的模型通常被称为多模态模型,因为它们在生成文本的同时能够分析不同性质的数据。生成的文本可以是自然语言,也可以是一组命令,例如机器人的命令。
1、CoCa Google / 2022
一个单独的图像编码器(ViT或CNN) +一个共享解码器,其中前半部分处理文本,后半部分与图像编码器的输出共同处理文本。
288x288的图像被切成18x18的块,编码器将其转换为向量+基于所有这些向量的共享注意力池向量。
解码器的前半部分的输出是文本向量和序列末尾的CLS标记向量,使用sentencepece (64K词汇表)进行标记化。文本和图像矢量通过交叉注意在解码器的后半部分合并。
两个损失的权重分别:
在微调过程中,图像编码器可以被冻结,只有注意力池可以被微调。
2、PaLM-E Google / 2023
图像由ViT编码,输出向量以及文本令牌和命令被输入PaLM, PaLM生成输出文本。
PaLM-E用于所有任务,包括 VQA、对象检测和机器人操作。
3、GPT-4 OpenAI / 2023
这是一个具有少量已知细节的封闭模型。据推测,它有一个具有稀疏注意力和多模态输入的解码器。它使用自回归训练和微调RLHF,序列长度从8K到32K。
它已经在人类考试中进行了零样本和少样本的测试,并达到了类似人类的水平。它可以立即和逐步解决基于图像的问题(包括数学问题),理解和解释图像,并可以分析和生成代码。还适用于不同的语言,包括小语种。
当前各种大型模型蜂拥而至,模型的基数一直在增长,但是简单的层的增加和数据集的增长被各种更好的技术替代,这些技术允许质量改进(使用外部数据和工具,改进网络结构和新的微调技术)。但是越来越多的工作表明训练数据的质量比数量更重要:正确选择和形成数据集可以减少训练时间并提高结果质量。
OpenAI现在正在走向闭源,他们已经尝试过不释放GPT-2的权重但没有成功。但是GPT4是黑盒,近几个月来改进和优化开源模型的微调成本和推理速度的趋势在很大程度上降低了大型私有模型作为产品的价值,开源模型在质量上也正迅速赶上巨头,这又可以弯道超车了。
最后开源模型的总结如下: