×

注意!页面内容来自https://www.zhihu.com/tardis/zm/art/637382548,本站不储存任何内容,为了更好的阅读体验进行在线解析,若有广告出现,请及时反馈。若您觉得侵犯了您的利益,请通知我们进行删除,然后访问 原网页

BrandImg
清华大学通用预训练模型:GLM
148 赞同
8 评论
411 收藏

背景

论文:GLM: General Language Model Pretraining with Autoregressive Blank Infilling

github:github.com/THUDM/GLM

博客:ChatGLM

OpenAI 借助 ChatGPT 所点燃的大语言模型(LLM)之火已在全球范围内燃烧了半年有余,而在此期间,OpenAI 与微软所推出的一系列基于 GPT3.5 或 GPT4 模型的 AI 产品也纷纷在不同领域取得了亮眼的表现。

然而令人略感失望的是,作为如今 LLM 圈内绝对的领头羊,OpenAI 并没有遵从其创立初衷,无论是 ChatGPT 早期所使用的的 GPT3、GPT3.5 还是此后推出的 GPT4 模型,OpenAI 都因“暂无法保证其不被滥用”为由拒绝了对模型开源,开启了订阅付费模式。

对于大型科技企业而言,不管是出于秀肌肉还是出于商业竞争目的,自研 LLM 都是一条几乎无可避免的道路。但对于缺少算力和资金的中小企业以及希望基于 LLM 开发衍生产品的开发者来说,选择开源显然是更理想的一条路线。

好在还是有一些选择了开源,那么就目前来看,在LLM领域,都有哪些优质的开源模型可供选择?

表1:开源大模型

开源模型机构
GLM清华大学
LLaMAMeta
Alpaca斯坦福大学
DollyDatabricks
BLOOMHugging Face
MiniGPT4阿卜杜拉国王科技大学
StableLMStability AI

在这些开源大模型中,GLM 由于效果出众而受到大众关注,而且清华大学开源了基于 GLM 架构研发的基座模型:ChatGLM-6B、GLM-130B。

截止到5月26号,ChatGLM-6B 全球下载达到200万,数百垂直领域模型和国内外应用基于该模型开发。联想、中国民航信息网络公司、360、美团都选择了 GLM-130B 作为基座模型。

[2023.05.28]科技部在中关村论坛上发布的《中国人工智能大模型地图研究报告》显示 ChatGLM-6B 位列大模型开源影响力第一名,千亿基座 GLM-130B、代码模型 CodeGeeX、文生视频模型 CogVideo、GLM 模型同时入围开源影响力前十
[2023.05.26]ChatGLM-6B 全球下载达到200万,数百垂直领域模型和国内外应用基于该模型开发
[2023.05.25]联想接入 ChatGLM-130B API 开发智能打印产品
[2023.05.15]中国民航信息网络公司基于接入 ChatGLM-130B API 开发航旅智能产品
[2023.04.25]清华研究生会基于 ChatGLM-130B 开发的【水木ChatGLM】上线,服务全校同学
[2023.04.24]360基于 ChatGLM-130B 联合研发千亿级大模型【360GLM
[2023.04.15]值得买部署 ChatGLM-130B 私有化实例用于电商平台产品
[2023.04.14]美团私有化部署 ChatGLM-130B,联合研发【美团GLM
[2023.04.13]ChatGLM-6B 开源30天内,全球下载量达到75万,GitHub 星标数达到1.7万
[2023.03.31]ChatGLM-6B 推出基于 P-Tuning-v2 的高效参数微调,最低只需7GB显存即可进行模型微调
[2023.03.18]ChatGLM-6B 登上 Hugging Face Trending 榜第一,持续12天
[2023.03.16]ChatGLM-6B 登上 GitHub Trending 榜第一
[2023.03.14]千亿对话模型 ChatGLM 开始内测,60亿参数 ChatGLM-6B 模型开源
[2023.03.10]竹间智能科技接入 ChatGLM-130B API 开发智能客服产品

GLM 模型到底和 GPT 有什么区别,有哪些创新?这篇文章将详细介绍 GLM 的技术细节。

1. 大模型

NLP 任务通常分为三类:

  • NLU(文本分类、分词、句法分析、信息抽取等)
  • 有条件生成任务(seq-seq,如翻译任务、QA)
  • 无条件生成任务(用预训练模型直接生成内容)

预训练模型也分为三类,分别是:自编码自回归编码解码。三种训练模型分别在前面三种任务中表现良好。

自回归(比如 GPT):从左往右学习的模型,根据句子中前面的单词,预测下一个单词。例如,通过“LM is a typical task in natural language ____”预测单词“processing”。在长文本的生成能力很强,缺点就是单向的注意力机制在 NLU 任务中,不能完全捕捉 token 的内在联系。

自编码(比如 BERT):通过覆盖句中的单词,或者对句子做结构调整,让模型复原单词和词序,从而调节网络参数。例如,可以把 BERT 看成一种自编码器,它通过 Mask 改变了部分 Token,然后试图通过其上下文的其它Token 来恢复这些被 Mask 的 Token。自编码在语言理解相关的文本表示效果很好。缺点是不能直接用于文本生成。

编码解码(比如T5):编码器使用双向注意力,解码器使用单向注意力,并且有交叉注意力连接两者,在有条件生成任务(seq-seq)中表现良好(文本摘要,回答生成)。

这些训练框架都不足以在所有 NLP 中具有竞争力任务。以往的工作(T5)试图通过多任务学习统一不同的框架。然而,由于自编码和自回归的目标性质不同,一个简单的统一的优点不能完全继承这两个框架。

2. GLM 介绍

相比其它大语言模型,GLM 具有以下3个特点:

  • 自编码,随机 MASK 输入中连续跨度的 token
  • 自回归,基于自回归空白填充的方法重新构建跨度中的内容
  • 2维的编码技术,来表示跨间和跨内信息

通常预训练语言模型是指利用大量无标注的文本数据,学习语言的通用知识和表示,然后在特定的下游任务上进行微调或者零样本学习。预训练语言模型在自然语言理解(NLU)和文本生成等多个任务上都取得了显著的效果提升。随着预训练语言模型的发展,模型的参数规模也不断增大,以提高模型的性能和泛化能力。

目前预训练语言模型主要有三种类型:自回归模型、自编码模型和编码器-解码器模型。

自回归模型从左到右学习语言模型,适合于长文本生成和少样本学习,但不能捕捉上下文词之间的双向依赖关系。

自编码模型通过去噪目标学习双向上下文编码器,适合于自然语言理解任务,但不能直接用于文本生成。

编码器-解码器模型结合了双向注意力和单向注意力,适合于有条件的生成任务,如文本摘要和回复生成。

这三类语言模型各有优缺点,但没有一种框架能够在所有的自然语言处理任务中都表现出色。一些先前的工作尝试通过多任务学习的方式,将不同框架的目标结合起来,但由于自编码和自回归目标本质上的不同,简单的结合不能充分继承两者的优势。因此,清华大学提出了一种基于自回归空白填充的通用语言模型(GLM),来解决这个挑战。GLM 通过添加二维位置编码和允许任意顺序预测空白区域,改进了空白填充预训练,在自然语言理解任务上超越了 BERT 和 T5。

GLM 从输入文本中随机挖掉一些连续的词语,然后训练模型按照一定的顺序逐个恢复这些词语。这种方法结合了自编码和自回归两种预训练方式的优点。GLM 还有两个改进点,一个是打乱空白区域的预测顺序,另一个是使用二维位置编码。实验表明,GLM 在参数量和计算成本相同的情况下,能够在 SuperGLUE 基准测试中显著超越BERT,并且在使用相似规模的语料(158GB)预训练时,能够超越 RoBERTa 和 BART。GLM 还能够在自然语言理解和生成任务上显著超越 T5,而且使用的参数和数据更少。

GLM 是基于模式利用训练(PET),将自然语言理解(NLU)任务转化为人工设计的完形填空问题,模仿人类的语言。与 PET 使用的基于 BERT 的模型不同,GLM 可以自然地处理完形填空问题中的多个词答案,通过自回归的空白填充。模式利用训练(PET)是一种半监督的训练方法,它利用模式来帮助语言模型理解给定的任务。这些模式是用自然语言写的,表示任务的语义。例如,情感分类任务可以转化为“{句子}。这真的很[MASK]”。候选标签也被映射为完形填空问题的答案,称为 verbalizer。在情感分类中,标签“正面”和“负面”被映射为单词“好”和“坏”。

3. GLM预训练架构

清华大学提出了一种基于自回归空白填充目标的通用预训练框架 GLM。GLM 将 NLU 任务转化为包含任务描述的完形填空问题,可以通过自回归生成的方式来回答。自回归空白填充目标是指在输入文本中随机挖去一些连续的文本片段,然后训练模型按照任意顺序重建这些片段。完形填空问题是指在输入文本中用一个特殊的符号(如[MASK])替换掉一个或多个词,然后训练模型预测被替换掉的词。

3.1 预训练目标

3.1.1 自回归空白填充

GLM 是通过优化一个自回归空白填充目标来训练的。给定一个输入文本 \bm{x}=\left[ x_1,...,x_n  \right] ,从中采样多个文本片段 \left\{ \bm{s}_1,...,\bm{s}_m \right\} ,其中每个片段 \bm{s}_i 对应于 \bm{x} 中的一系列连续的词 \left[ s_{i,1},...,s_{i,l_i} \right] 。每个片段都用一个单独的 [MASK] 符号替换,形成一个损坏的文本 \bm{x}_{\text{corrupt}}。模型以自回归的方式从损坏的文本中预测缺失的词,这意味着在预测一个片段中的缺失词时,模型可以访问损坏的文本和之前预测的片段。为了充分捕捉不同片段之间的相互依赖关系,我们随机打乱片段的顺序,类似于排列语言模型。令 Z_m 为长度为 m 的索引序列 \left[ 1,2,...,m \right] 的所有可能排列的集合,令 \bm{s}_{z<i}\in\left[ \bm{s}_{z_1},...,\bm{s}_{z_{i-1}} \right] ,于是 pretrain 目标函数可以表示为: \underset{\theta}{\text{max}}\space \mathbb{E}_{z\sim Z_m}\left[ \sum_{i=1}^{m}\text{log} \space p_{\theta}\left( \bm{s}_{z_i}|\bm{x}_{\text{corrupt}},\bm{s}_{z_{<i}} \right) \right]\tag1 按照从左到右的顺序生成每个空白中的词,即生成片段 \bm{s}_i 的概率可以分解为:

\begin{align} &p_{\theta}\left( \bm{s}_i|\bm{x}_{\text{corrupt}},\bm{s}_{z_{<i}} \right)\\ =&\prod_{j=1}^{l_i}p\left( s_{i,j}|\bm{x}_{\text{corrupt}},\bm{s}_{z_{<i}},\bm{s}_{i,<j} \right)\tag2 \end{align}

使用以下方式实现了自回归空白填充目标。

输入 \bm{x} 被分成两部分:Part A 是损坏的文本 \bm{x}_{\text{corrupt}},Part B 是被遮盖的片段。Part A 的词可以相互看到,但不能看到 Part B 中的任何词。Part B 的词可以看到 Part A 和 Part B 中的前置词,但不能看到 Part B 中的后续词。为了实现自回归生成,每个片段都用特殊的符号 [START] 和 [END] 进行填充,分别用于输入和输出。这样,模型就自动地在一个统一的模型中学习了一个双向编码器(用于 Part A)和一个单向解码器(用于 Part B)。GLM 的实现在图2中说明。

图2:GLM pretrain
  1. 原始文本 \bm{x}=\left[ x_1,x_2,x_3,x_4,x_5,x_6 \right] 随机进行连续 mask,这里假设 mask 掉 \left[ x_3 \right]\left[ x_5,x_6 \right] ,跨度的长度服从泊松分布( \lambda = 3 ),与 BART 一样。
  2. \left[ x_3 \right]\left[ x_5,x_6 \right] 替换为 [M] 标志,并打乱 Part B 的顺序。为了捕捉跨度之间的内在联系,随机交换跨度的顺序。
  3. GLM 自回归地生成 Part B。 每个片段在输入时前面加上 [S],在输出时后面加上 [E]。 二维位置编码表示不同片段之间和片段内部的位置关系。
  4. 自注意力掩码 灰色区域被掩盖Part A 的词语可以自我看到(图2(d)蓝色框),但不能看到 Part B。 Part B 的词语可以看到 Part A 和 Part B 中的前面的词语(图2(d)黄色和绿色框对应两个片段)。 [M] := [MASK],[S] := [START],[E] := [END]。

这里解释下图中 Position1 = [1234555533],Position2 = [0000012312] 是怎么得到的。

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

假设原始文本是 \bm{x}=\left[ x_1,x_2,x_3,x_4,x_5,x_6 \right] ,其中\left[ x_3 \right]\left[ x_5,x_6 \right] 被挖去。那么,被挖去的片段在第一个维度上的位置编码就是它们在原始文本中的索引,即 \left[ x_3 \right]来自片段 3,\left[ x_5,x_6 \right] 来自片段 5。在第二个维度上的位置编码就是它们在片段中的索引,即 0 和 1。因此, x_3 的二维位置编码是[30], x_5 的二维位置编码是[50], x_6 的二维编码是[51]。

同样,我们可以得到 x_1 的二维位置编码是[10], x_2 的位置编码是[20], x_4 的位置编码是[40]。

明白了二维位置编码自注意力掩码,就算是明白了 GLM 的核心部分。

3.1.2 多任务预训练

在前一节中,GLM 遮盖了短的文本区域,适合于 NLU 任务。我们更感兴趣的是预训练一个能够同时处理 NLU 和文本生成的单一模型。因此,清华大学研究了一种多任务预训练设置,其中一个生成更长文本的目标与空白填充目标共同优化。GLM 考虑了以下两种目标:

  • 文档级别。采样一个单一的区域,其长度从原始长度的 50% 到1 00% 之间的均匀分布中采样。该目标旨在进行长文本生成。
  • 句子级别。限制遮盖的区域必须是完整的句子。多个区域(句子)被采样,覆盖原始文本的 15% 的词数。该目标旨在进行 seq2seq 任务,其预测结果通常是完整的句子或段落。

这两种新的目标都是按照原始目标的相同方式定义的,即公式1。唯一的区别是区域的数量和区域的长度。

3.2 模型架构

GLM 使用了一个单一的 Transformer,并对架构做了一些修改:

(1)重新排列了层归一化和残差连接的顺序,这对于大规模的语言模型来避免数值错误是非常关键。

(2)使用了一个单一的线性层来进行输出词的预测。

(3)用 GeLUs 替换了 ReLU 激活函数。

3.2.1 二维位置编码

在 3.1.1 节已经介绍过二维位置编码。自回归空白填充任务的一个挑战就是如何对位置信息进行编码。具体来说,每个词都用两个位置 id 进行编码。第一个位置 id 表示词在被损坏的文本 \bm{x}_{\text{corrupt}} 中的位置。对于被遮盖的区域,它是相应的 [MASK] 词的位置。第二个位置 id 表示区域内的位置。对于 Part A 的词,它们的第二个位置 id 都是0。对于 Part B 的词,它们的范围是从 1 到区域的长度。

GLM 的编码方法确保了模型在重建被遮盖的跨度时不知道它们的长度。这与其他模型相比是一个重要的区别。例如,XLNet 编码了原始位置,以便它可以感知缺失的 token 的数量,而 SpanBERT 用多个 [MASK] 标记替换了跨度,并保持了长度不变。GLM 的设计适合下游任务,因为通常生成的文本的长度是事先未知的。

3.3 Finetuning GLM

通常,对于下游的自然语言理解任务,一个线性分类器将预训练模型产生的序列或 token 的 embedding 作为输入,并预测正确的标签。这些做法与生成式预训练任务不同,导致了预训练和微调之间的不一致。

GLM 将 NLU 分类任务重新制定为填空生成任务,遵循 PET。具体来说,给定一个标记的示例 \left( \bm{x},y \right) ,将输入文本 \bm{x} 转换为单个 mask token 的填空问题 c\left( \bm{x} \right) 。例如,情感分类任务可以表述为 “{SENTENCE}。这真的是 [MASK]”。候选标签 y 也映射到填空的答案,称为 verbalizer v\left( y \right) 。在情感分类中,标签 “positive” 和“negative” 分别映射到单词 “good” 和 “bad”。

因此,句子是正面或负面的概率与在空白处预测“好”或“坏”成正比。然后我们用交叉熵损失来微调 GLM(见图 3)。

图3:将情感分类任务转化为空白填空任务

如图中的示例,标签 “positive” 和 “negative” 映射到单词 “good” 和 “bad”。在这种情况下,GLM 使用交叉熵损失进行微调。

对于文本生成任务,给定的上下文构成了输入的 Part A,末尾附加了一个 mask 符号。模型自回归地生成 Part B 的文本。可以直接应用预训练的 GLM 进行无条件的生成,或者在下游的条件生成任务上对其进行微调。

图4:生成任务直接使用zero-shot或seq2seq进行Finetuning

对于图4的生成任务,Part B 部分直接换成 mask 即可。

3.4 讨论分析

在本节中,讨论了 GLM 和其他预训练模型之间的区别。主要关注的是它们如何适应下游的空白填充任务。

与 Bert 对比:BERT 是一种基于自编码的模型,它通过 mask 输入文本中的一些单词,然后训练模型去预测 mask 的单词,这种目标叫做掩码语言模型(MLM)。但是 BERT 有两个缺点:一是它不能捕捉 mask token 之间的依赖关系,因为它假设 mask token 是相互独立的;二是它不能处理多个连续的 mask token,因为它需要根据答案的长度来调整 mask token 的数量,而答案的长度往往是未知的。这些缺点限制了 BERT 在下游的空白填充任务上的表现。

与 XLNet 对比:XLNet 也是一种基于自回归的模型,它通过随机排列输入文本中的单词,然后训练模型按照排列的顺序去预测每个单词,这种目标叫做排列语言模型(PLM)。 XLNet 两个不同之处:XLNet 需要知道预测 token 的长度;使用双流注意力机制解决了信息泄漏的问题,改变了 transformer 的结构,增加了耗时。

与 T5 对比:T5 也是一种基于空白填充的模型,它使用了编码器-解码器的 Transformer 结构来预训练一个文本到文本的模型。T5 为编码器和解码器使用了独立的位置编码,而且依赖于多个 token 符号来区分不同的 mask 区域。在下游任务中,只有一个 token 符号被使用,导致模型容量的浪费以及预训练和微调之间的不一致。而且,T5 总是按照固定的从左到右的顺序来预测 mask 区域。

与UniLM对比:UniLM 是通过在自编码框架下改变在双向、单向互相之间的 attention mask 来统一预训练目标;由于自编码模型的独立假设,自回归模型不能完全捕捉当前 token 对于前面 token 的依赖。对于微调下游任务来说,自编码会比自回归更加低效。

4. 实验

4.1 pretrain 设置

GLM 使用了与 BERT 相同的数据集和词汇表,以便与 BERT 进行公平的比较。作者还训练了多种规模的 GLM 模型,包括基于 BERTBase 和 BERTLarge 的 GLMBase 和 GLMLarge,以及更大的 GLM410M 和 GLM515M。作者还训练了一个与 RoBERTa 相同的数据集和词汇表的 GLMRoBERTa 模型,以便与最新的模型进行比较。

4.2 SuperGLUE

SuperGLUE 是一个包含 8 个难度较高的自然语言理解任务的基准。作者将这些任务转化为填空式的问题,然后用预训练的 GLM 模型来生成答案。作者选择了 T5、BART 和 RoBERTa 作为其他的对比模型。表 1 显示了各个模型在 SuperGLUE 上的结果。结果表明,GLM 在大多数任务上都优于 BERT,无论是 base 还是 large 的架构。GLM 在平均得分上也优于其他的模型,但是优势较小。作者认为 BART 的表现不佳可能是由于其编码器-解码器架构和去噪序列到序列目标的低参数效率所导致的。

表1:SuperGLUE数据集上对比

4.3 多任务 pretrain

作者在一个训练批次中同时采样不同长度的文本跨度,来训练 GLM 适应不同类型的任务。作者训练了两个多任务模型,分别是 GLMDoc 和 GLMSent,它们与 GLMLarge 的区别在于采样的文本跨度的长度。GLMDoc 采样的是文档级的跨度,而 GLMSent 采样的是句子级的跨度。作者发现,多任务预训练会导致模型在 NLU 任务上略有下降,但仍然优于 BERTLarge 和 UniLMLarge。在多任务模型中,GLMSent 的表现优于 GLMDoc,平均提升了 1.1%。作者还发现,增加 GLMDoc 的参数量到 410M(相当于 BERTLarge 的 1.25 倍)可以使其表现优于 GLMLarge。GLM 的参数量增加到 515M(相当于 BERTLarge 的 1.5 倍)时,可以取得更好的效果。

Sequence-to-Sequence:序列到序列任务是指给定一个输入序列,生成一个输出序列,例如摘要生成和问题生成。作者使用了 Gigaword 和 SQuAD 1.1 这两个数据集来评估在 BookCorpus 和 Wikipedia 上预训练的模型,以及使用了 CNN/DailyMail 和 XSum 这两个数据集来评估在更大的语料库上预训练的模型。作者发现,GLMLarge 可以达到与其他预训练模型相当的性能。GLMSent 比 GLMLarge 表现更好,而 GLMDoc 比 GLMLarge 稍差。这表明,文档级的目标对于条件生成任务并不有利,因为条件生成任务的目的是从上下文中提取有用的信息,而不是扩展上下文。增加 GLMDoc 的参数量到 410M 可以使其在两个任务上都取得最好的性能。在更大的语料库上预训练的模型中,GLMRoBERTa 可以与 BART 这个序列到序列模型相媲美,并且超过了 T5 和 UniLMv2。

Text Infilling(文本填充):文本填充任务是指预测文本中缺失的部分,并使其与前后文相一致。GLM 是用自回归空白填充目标来训练的,因此可以直接解决这个任务。作者在 Yahoo Answers 数据集上评估了 GLM,并将其与专门为文本填充设计的 BLM(Blank Language Model)进行了比较。结果表明,GLM 在 BLEU 评分上显著优于之前的方法,并在这个数据集上达到了最先进的水平。作者还注意到,GLMDoc 在文本填充任务上略逊于 GLMLarge,这与他们在序列到序列任务上的观察一致。

Language Modeling:语言建模任务是指训练一个模型来预测文本中的下一个词。作者使用了 WikiText103 和 LAMBADA 两个数据集来评估 GLM 的性能。WikiText103 是一个基于维基百科文档构建的数据集,LAMBADA 是一个测试模型对长距离依赖的能力的数据集,要求模型预测一段文本的最后一个词。作者使用了 GPTLarge 作为基准模型,它是一个单向自回归模型。作者发现,GLM 在语言建模任务上优于GPTLarge,尤其是在使用双向注意力编码上下文时。作者还发现,2D位置编码对于生成长文本有重要作用,去掉它会降低准确率。

总的来说,GLM 是一个通用的预训练语言模型,它可以同时处理自然语言理解和生成任务,而不需要切换不同的模型架构或目标。GLM 通过自回归空白填充目标来统一不同的任务,并使用混合注意力机制和 2D 位置编码来提高模型的泛化能力。作者通过在多个数据集上的实验,证明了 GLM 比单独的 BERT、T5或 GPT 模型有更好的性能。

4.4 消融实验

消融实验是一种评估模型组件对性能影响的方法,通过逐个移除或替换模型的某些部分,来观察模型在下游任务上的表现变化。作者使用了 SuperGLUE 作为评估数据集,它包含了八个自然语言理解任务。作者与 BERT 进行了对比实验,发现 GLM 在预训练和微调阶段都有优势。作者还分析了 GLM 的不同设计选择,如空白填充目标、空白顺序、空白表示、2D 位置编码等,对模型性能的影响。作者指出,GLM 与T5有三个主要区别:(1)GLM 只有一个编码器,(2)GLM 打乱了空白的顺序,(3)GLM 只用一个 [MASK] 标记来表示不同的空白。

5. 相关工作

预训练语言模型是指在大规模的无标注文本上训练的模型,它们可以显著提高下游任务的性能。预训练模型有三种类型:

第一种是自编码模型,它们通过去噪目标来学习一个双向的上下文编码器,用于自然语言理解任务;

第二种是自回归模型,它们通过从左到右的语言建模目标来训练一个生成器,用于文本生成任务;

第三种是编码器-解码器模型,它们通过序列到序列的目标来预训练一个文本到文本的模型,用于多种语言任务。

作者还介绍了几种编码器-解码器模型的不同之处,比如 BART 和 T5 的不同输入方式和不同参数规模,以及 UniLM 的不同注意力掩码。

传统的预训练语言模型通常使用线性分类器来处理 NLU 任务,例如情感分析、自然语言推理等。但是,一些生成式的语言模型,如 GPT-2 和 GPT-3,可以直接生成正确的答案来完成 NLU 任务,无需微调模型,只需要给定任务说明或少量的标注样本。然而,这种方法需要非常大的模型参数和计算资源,而且受到单向注意力机制的限制。最近,一些工作提出了将输入样本转化为填空式问题的方法,以利用预训练语料中的模式。例如,PET(Pattern-Exploiting Training)可以在少样本设置下,通过梯度优化微调模型,在 NLU 任务上超越 GPT-3,而只需要千分之一的参数。另外,一些工作将结构化预测任务,如序列标注和关系抽取,转化为序列生成任务。

填空语言模型:空白语言建模。Donahue等人(2020)和Shen等人(2020)也研究了空白填充模型。与他们的工作不同,GLM 使用空白填充目标来预训练语言模型,并评估它们在下游的自然语言理解和生成任务上的性能。

5. 总结

GLM 是一种通用的预训练框架,可以用于自然语言理解和生成。GLM 将不同任务的预训练目标统一为自回归的空白填充,同时使用了混合的注意力掩码和新颖的二维位置编码。实验表明,GLM 在 NLU 任务上超越了以前的方法,并且可以有效地在不同任务之间共享参数。

参考

GLM: General Language Model Pretraining with Autoregressive Blank Infilling

All NLP Tasks Are Generation Tasks: A General Pretraining Framework

宋原青:GLM: General Language Model Pretraining with Autoregressive Blank Infilling

致Great:【LLM系列之GLM】GLM: General Language Model Pretraining with Autoregressive Blank Infilling

北京智源人工智能研究院:超大规模新型预训练模型详解:少样本学习等近十个数据集取得第一

人工智能:【预训练】GLM: General Language Model Pretraining with Autoregressive Blank Infilling

通用的预训练模型:All NLP Tasks Are Generation Tasks: A General Pre-training Framework

张义策:ACL'22 | GLM: 基于空格填充的通用语言模型

编辑于 2025-01-22 · 著作权归作者所有