赞
踩
从技术上讲,语言模型(LM)是提高机器语言智能的主要方法之一。语言建模的研究此前最受关注的是预训练语言模型(PLM),基于Transformer架构的系列模型的提出,极大地提高了 NLP 任务的性能。并确立了pretrain和fine-tune学习范式作为解决NLP任务的主要方法。
然而随着2022年11月ChatGPT的发布,大语言模型(LLM),简称大模型开始进入公众视野,成为研究热点。简单来说,大模型就是扩展的PLM,扩展的是模型大小以及数据大小。
LLM与PLM的主要区别:
词语解释:
ChatGPT
ChatGPT是一种基于GPT模型的对话生成技术,用于模拟人类对话和生成对话回复。
AIGC(AI-generated content)
AIGC是指由人工智能生成的内容,可以包括文章、新闻、广告等各种类型的创作。它是一种自动化的创作方式,可以减少人工劳动,提高产出效率。
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区别在于:
T5的预训练任务与BERT的MLM的不同在于mask的是连续的span,而非某一个token。每个连续被mask的片段被一个token <X>替换。输出序列由被mask的span构成,由token <X> <Y> <Z>进行分隔和表示结尾。
随着Transformer架构的出现,OpenAI提出了两个初始的GPT(Generative Pre-Training)模型,即GPT-1和GPT-2,其属于PLM。GPT比BERT提出要早,是一个两阶段模型,第一阶段 pre-training,第二阶段 fine-tuning,采用的是 Transformer Decoder 结构。
GPT-1模型如图所示,模型架构是12层Transformer Decoder结构,分为预训练阶段与微调阶段。
GPT-2模型实际上只是在GPT-1上做了一点简单的修改。GPT-2第一阶段同样也是预训练一个语言模型,但是48层 Decoder且数据集更大;而第二阶段,它采用的是zero-shot,即不再使用有标签的数据对模型进行fine-tuning,而是直接给出一个问题的描述,然后模型直接进行inference。但是,由于一个通用的模型会在许多任务上进行训练,那么对于同样的输入,可能会对应到多个输出,模型建模的概率是P(output|input),而在GPT-2中提出了任务建模,即P(output|input,task)。
大模型随着时间的发展,不断被提出和应用,时间轴如图所示。下面只对几个较为熟知的大模型进行介绍。
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是一种基于GPT-3.5或GPT-4模型的对话语言模型,用于模拟人类对话和生成对话回复。到目前为止,它是 AI 历史上最强大的聊天机器人。
GPT-4于2023年3月发布,将文本输入扩展到多模态信号,在解决复杂能力上具有更强的能力。并且引入了一种red teaming的机制来减少有害生成或生成有毒内容的可能性。
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(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激活函数的计算可以表示为以下几个步骤:
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。详细的用法可以在它们的项目网站上找到。
ChatGLM是清华技术成果转化的公司智谱AI研发的支持中英双语的对话机器人。ChatGLM 是一个基于千亿基座模型 GLM-130B 开发的对话机器人,具有问答、多轮对话和代码生成功能。ChatGLM 有两个版本:千亿参数的 ChatGLM(内测版)和 62 亿参数的 ChatGLM-6B(开源版)。
下面对基础模型GLM进行简要介绍,细节问题可以参见论文GLM General Language Model Pretraining with Autoregressive Blank Infilling
目前预训练语言模型主要有三种类型:自回归模型(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,并做了几点修改:
大模型均是基于Transformer架构进行开发的,LLM架构可以分为以下三种类型:
不同架构的优缺点是
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。