[DL]大模型简介

I-背景介绍

从技术上讲,语言模型(LM)是提高机器语言智能的主要方法之一。语言建模的研究此前最受关注的是预训练语言模型(PLM),基于Transformer架构的系列模型的提出,极大地提高了 NLP 任务的性能。并确立了pretrain和fine-tune学习范式作为解决NLP任务的主要方法。

然而随着2022年11月ChatGPT的发布,大语言模型(LLM),简称大模型开始进入公众视野,成为研究热点。简单来说,大模型就是扩展的PLM,扩展的是模型大小以及数据大小。

LLM与PLM的主要区别:

  1. LLM表现出PLM所没有的emergent abilities,这些能力是LLM在复杂任务上表现惊人的关键,使得人工智能算法前所未有的强大,但这些能力是如何获得的还不具有理论支持;
  2. LLM将彻底改变人类开发和使用人工智能算法的方式。与小型PLM不同,访问LLM的主要方法是通过接口API;
  3. LLM的发展不再明确区分研究和工程。训练LLM需要在大规模数据处理和分布式并行训练方面具有丰富的实践经验。

词语解释:

ChatGPT

ChatGPT是一种基于GPT模型的对话生成技术,用于模拟人类对话和生成对话回复。

AIGC(AI-generated content)

AIGC是指由人工智能生成的内容,可以包括文章、新闻、广告等各种类型的创作。它是一种自动化的创作方式,可以减少人工劳动,提高产出效率。

II-T5模型

T5(Text-to-Text Transfer Transformer)模型于2019年由提出,核心思想是将所有任务都看作是文本转换任务,下面对模型实现进行简要的介绍,细节实现参见论文Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer

T5为了对所有的文本任务进行统一,提出了输入序列前缀,区别于[CLS],这种前缀代表的是任务类型,如下

  • translate English to German: + [sequence]:翻译任务
  • cola sentence: + [sequence]: CoLA语料库,微调BERT模型。
  • stsb sentence 1:+[sequence]:语义文本相似基准。自然语言推理和蕴涵是类似的问题。
  • summarize + [sequence]:文本摘要问题。

这样,就得到了一种为广泛的NLP任务的统一格式:Prefix+Sequence A→Sequence B。这个统一的过程使得我们可以对广泛的任务使用相同的模型、超参数和优化器。

T5的模型架构仍是Transformer(base-12层),与原生的Transformer区别在于:

  1. 简化版的Layer Normalization,去除了Layer Norm的bias,将Layer Norm放在残差连接外面;
  2. 简化版的相对位置编码,即每个位置编码都是一个标量,被加到 logits 上用于计算注意力权重。各层共享位置编码,但是在同一层内,不同的注意力头的位置编码都是独立学习的。一定数量的位置Embedding,每一个对应一个可能的 key-query 位置差。作者学习了32个Embedding,至多适用于长度为128的位置差,超过位置差的位置编码都使用相同的Embedding。

T5的预训练任务与BERT的MLM的不同在于mask的是连续的span,而非某一个token。每个连续被mask的片段被一个token <X>替换。输出序列由被mask的span构成,由token <X> <Y> <Z>进行分隔和表示结尾。

在这里插入图片描述

III-GPT 系列模型的技术演进

随着Transformer架构的出现,OpenAI提出了两个初始的GPT(Generative Pre-Training)模型,即GPT-1和GPT-2,其属于PLM。GPT比BERT提出要早,是一个两阶段模型,第一阶段 pre-training,第二阶段 fine-tuning,采用的是 Transformer Decoder 结构。

GPT-1、2简要介绍

在这里插入图片描述

GPT-1模型如图所示,模型架构是12层Transformer Decoder结构,分为预训练阶段与微调阶段。

  1. 预训练阶段:将语言建模任务作为训练目标,就是根据已知的词预测未知的词。在这里设定一定的窗口大小,即根据有限的词预测下一个词。
  2. 微调阶段:给定一个有监督任务的数据集,给定输入序列x1,…,xm,经过Decoder作为下游任务表示的编码器,取Decoder的输出h作为嵌入表示,输入到线性层或softmax,预测标签y。

GPT-2模型实际上只是在GPT-1上做了一点简单的修改。GPT-2第一阶段同样也是预训练一个语言模型,但是48层 Decoder且数据集更大;而第二阶段,它采用的是zero-shot,即不再使用有标签的数据对模型进行fine-tuning,而是直接给出一个问题的描述,然后模型直接进行inference。但是,由于一个通用的模型会在许多任务上进行训练,那么对于同样的输入,可能会对应到多个输出,模型建模的概率是P(output|input),而在GPT-2中提出了任务建模,即P(output|input,task)。

大模型发展

在这里插入图片描述

大模型随着时间的发展,不断被提出和应用,时间轴如图所示。下面只对几个较为熟知的大模型进行介绍。

GPT-3

GPT-3于2020年提出,将模型参数扩展到了更大规模,采用96层Decoder,达到了1750亿,它以小样本或零样本的方式使用LLM,因为其具有极强的ICL(In-Context Learning,上下文学习)能力,可以指导LLM理解以自然语言文本形式给出的任务。

GPT-3 可以被视为从 PLM 到 LLM 进化过程中的一个重要里程碑。它通过实证证明,将神经网络扩展到大的规模可以大幅增加模型的能力。

GPT-3.5是增加了代码数据作为训练集的模型。原始的 GPT-3 模型(在纯文本上进行预训练)的一个主要限制在于缺乏复杂任务的推理能力,例如完成代码和解决数学问题。为了增强这种能力,OpenAI提出了在大量GitHub代码上微调GPT模型Codex,GPT-3.5是在其基础上开发的。

chatGPT

ChatGPT是一种基于GPT-3.5或GPT-4模型的对话语言模型,用于模拟人类对话和生成对话回复。到目前为止,它是 AI 历史上最强大的聊天机器人。

GPT-4

GPT-4于2023年3月发布,将文本输入扩展到多模态信号,在解决复杂能力上具有更强的能力。并且引入了一种red teaming的机制来减少有害生成或生成有毒内容的可能性。

PaLM

2022年4月第一次被提出,该模型使用新的机器学习系统Pathways进行训练的,因此称新模型为Pathways Language Model(PaLM)。Pathways是Google新一代机器学习平台,能够跨越数千或数百万个任务进行泛化,理解不同类型的数据,实现多模态模型。

PaLM使用了标准Transformer架构的Decoder,但做了一些修改。对于MLP的中间激活函数使用SwiGLU激活函数。在每个Transformer块中使用"并行"的形式,而不是标准的"序列化"形,并行的方式将会为训练带来大约15%的提速式。标准的Transformer会使用k个注意力头,query,key,value均被投影为k个,但PaLM只将query投影为k个,每个头共享key,value。使用RoPE嵌入层,RoPE嵌入层是一种用于位置编码的改进方法,它允许模型动态地学习位置信息,有助于提高自然语言处理任务的性能。共享输入层和输出层参数。没有biaes。

LLaMA

LLaMA(Large Language Model Meta AI)是近期Meta AI发布的一种大型语言模型,和GPT一样都是由Transformer Decoder组成,在生成文本、进行对话、总结书面材料等复杂的任务方面表现出了巨大的潜力。LLaMA 的性能非常优异:具有 130 亿参数的 LLaMA 模型「在大多数基准上」可以胜过 GPT-3( 参数量达 1750 亿)。LLaMA 优势在于其只使用公开可用的数据,训练的token远高于其他大参数模型,在更多的token上训练的较小的模型,更容易重新训练并针对特定的下游任务使用情况进行调整。

与普通的Transformer Decoder不同之处在于,使用SwiGLU激活函数。为了提高训练稳定性,LLaMA 对每个 transformer 子层的输入进行归一化,使用RMSNorm归一化函数。使用RoPE嵌入层。

SwiGLU激活函数

SwiGLU激活函数的计算可以表示为以下几个步骤:

  1. 将输入向量分为两个部分。
  2. 对每个部分应用不同的线性变换,通常是通过矩阵乘法和偏置项来完成。
  3. 使用门控机制来选择两个变换的输出中的一个,通常是通过Sigmoid函数将输入的某些部分映射到0到1之间的范围,并将其用作两个输出之间的权重。
  4. 最后,将被选择的变换的输出相加,并将结果传递给下一层。

SwiGLU激活函数的引入旨在改进神经网络在捕捉输入之间复杂关系方面的性能。这种函数通常用于Transformer的不同变体中,以提高自然语言处理和语音处理任务的性能。

OpenAI 提供了七个主要的 GPT-3 系列模型接口:ada、babbage、curie、davinci(GPT-3 系列中最强大的版本)、text-ada-001、text-babbage-001和text-curie-001。其中前四个接口可以在 OpenAI 的主机服务器上进一步进行微调。babbage、curie 和 davinci 分别对应于 GPT-3 (1B)、GPT-3 (6.7B) 和 GPT-3 (175B) 模型。此外,还有两个与 Codex 有关的 API,分别称为code-cushman-001(Codex (12B) 的强大多语言本)和 code-davinci-002。GPT-3.5 系列包括一个基础模型code-davinci-002 和三个增强版本,即 text-davinci-002、text-davinci-003 和 gpt-3.5-turbo-0301。值得注意的是,gpt-3.5-turbo-0301是调用ChatGPT 的接口。最近,OpenAI 还发布了与 GPT-4 相应的 API,包括 gpt-4、gpt-4-0314、gpt-4-32k 和 gpt-4-32k-0314。详细的用法可以在它们的项目网站上找到。

IV-ChatGLM

ChatGLM是清华技术成果转化的公司智谱AI研发的支持中英双语的对话机器人。ChatGLM 是一个基于千亿基座模型 GLM-130B 开发的对话机器人,具有问答、多轮对话和代码生成功能。ChatGLM 有两个版本:千亿参数的 ChatGLM(内测版)和 62 亿参数的 ChatGLM-6B(开源版)。

下面对基础模型GLM进行简要介绍,细节问题可以参见论文GLM General Language Model Pretraining with Autoregressive Blank Infilling

GLM模型

目前预训练语言模型主要有三种类型:自回归模型(GPT等)、自编码模型(BERT等)和编码器-解码器模型(T5)。这三类语言模型各有优缺点,但没有一种框架能够在所有的自然语言处理任务中都表现出色。

清华大学提出了一种基于自回归空白填充的通用语言模型(GLM),来解决这个挑战。GLM 通过添加二维位置编码和允许任意顺序预测空白区域,改进了空白填充预训练,在自然语言理解任务上超越了 BERT 和 T5。

GLM的预训练方式基于T5模型提出了两点改进:自回归空白填充和二维位置编码。

在这里插入图片描述

  • 自回归空白填充

    给定输入文本x=[x1,…,xn],从中span多个文本片段s=[s1,…,sm],其中每个文本片段si对应于x中l个连续的词si=[si,1,…,si,l],这些s全部由一个[mask]标记替换,构成Part A,多个文本片段s构成Part B。

    模型的输入为Part A+[S]+si+[S]+sj+……,Part B的顺序是被打乱的。模型训练过程中,Part A 的词可以相互看到,但不能看到 Part B 中的任何词。Part B 的词可以看到 Part A 和 Part B 中的前置词,但不能看到 Part B 中的后续词(GLM自回归的生成Part B)。

    为了实现自回归生成,每个片段都用特殊的符号 [START] 和 [END] 进行填充,分别用于输入和输出。

    这样,模型就自动地在一个统一的模型中学习了一个双向编码器(用于 Part A)和一个单向解码器(用于 Part B)。

  • 二维位置编码

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

GLM模型的基础架构是单个Transformer,并做了几点修改:

  1. 重新排列了层归一化和残差连接的顺序;
  2. 使用了单层线性层来进行输出词的预测;
  3. 用 GeLUs 替换了 ReLU 激活函数。

V-大模型架构

大模型均是基于Transformer架构进行开发的,LLM架构可以分为以下三种类型:

  • Encoder-Decoder:输入双向注意力,输出单向注意力。目前,只有少数 LLM 是基于编码器-解码器架构构建的。(T5、BART)
  • Causal Decoder:因果解码器架构采用单向注意力掩码(从左到右),以确保每个输入 token 只能关注过去的 token 和它本身。GPT系列模型均是基于此架构。(GPT、LLaMA)
  • Prefix Decoder:输入双向注意力,输出单向注意力。前缀解码器架构(又称非因果解码器)修改了因果解码器的屏蔽机制,使其能够对前缀tokens进行双向关注,并仅对生成的tokens进行单向关注。(GLM)

不同架构的优缺点是

  • Encoder-Decoder:对输入问题的理解与编码能力更强,在偏理解的NLP任务上效果好,但长文本生成任务上效果较差,训练效率低。
  • Causal Decoder:自回归语言模型,预训练和下游应用是完全一致的,文本生成任务效果更好。训练效率高,zero-shot能力强,具备emergent abilities。
  • Prefix Decoder:上述两种架构的折中。训练效率低。

清华大学通用预训练模型:GLM

A Survey of Large Language Models

T5: 文本到文本统一建模,一个模型适用所有NLP任务

GPT-4 Technical Report

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值