详解各种LLM系列|(4)GLM(GPT国内最强开源平替)模子架构、预训练技能详 ...

打印 上一主题 下一主题

主题 958|帖子 958|积分 2874

一、引言

论文地址: arXiv: https://arxiv.org/abs/2103.10360
官网:https://chatglm.cn/blog
Github:https://github.com/THUDM/ChatGLM-6B
在日益增多的开源大模子中,由清华大学研发的开源大模子 GLM 由于结果出众而受到大众关注,而且清华大学开源了基于 GLM 架构研发的基座模子:ChatGLM-6B以及GLM-130B。
2022年11月,斯坦福大学大模子中央对全球30个主流大模子举行了全方位的评测2,GLM-130B 是亚洲唯一入选的大模子。在与 OpenAI、谷歌大脑、微软、英伟达、脸书的各大模子对比中,评测陈诉体现 GLM-130B 在准确性和恶意性指标上与 GPT-3 175B (davinci) 接近或持平,鲁棒性和校准偏差在全部千亿规模的基座大模子(作为公平对比,只对比无指令提示微调模子)中体现不错。
GLM-130B大概是当前开源ChatGPT复现中中文结果最好的基础模子。
本文就GLM的基础构架和预训练方式,深入浅出地分析GLM为何实现云云出众的结果。

Note: 为控制篇幅,本文仅先容GLM的基础构架和预训练; GLM-130B和ChatGLM的升级等会在part2再先容


二、配景

2.1 主流NLP使命

NLP 使命通常分为三类: 


  • 自然语言理解(NLU):这类使命重要关注从给定文本中提取信息和理解其含义(例如:文本分类、情绪分析、分词、句法分析、信息抽取等)
  • 有条件生成使命(Cond. Gen.):这类使命根据给定的输入或上下文生成文本,属于序列到序列的使命(例如:翻译使命、问答体系等)
  • 无条件生成使命:用预训练模子直接生成内容,这类使命关注从头开始生成文本,而不需要特定的输入条件
这些分类有助于更好地相识 NLP 使命的目的和方法。但随着研究的深入和新技能的发展,使命之间的界限变得模糊。例如,预训练语言模子(如 GPT3.5)已经证明可以在多种 NLP 使命中实现高性能,包罗自然语言理解和生成使命。

2.2 主流预训练模子

预训练模子根据架构,也分为三类,分别是:自编码 (auto-encoding)、编码解码 (encoder-decoder)、自回归 (auto-regressive)。三种训练模子分别对应前面三种使命,详细如下图:



  • 自编码 (auto-encoding)
通过去噪目的(即通过覆盖句中的单词,或者对句子做结构调解,让模子复原单词和词序,从而调节网络参数)学习双向上下文的编码器,例如掩码语言模子 (MLM) 。自编码模子善于自然语言理解NLU使命,常用于生成句子的上下文表现,但是不能直接用于文本生成。
代表模子如BERT、RoBERTa、ALBERT



  • 自回归 (auto-regressive)
从左往右学习的模子,根据句子中前面的单词,预测下一个单词。例如,通过“LM is a typical task in natural language ____”预测单词“processing”。
在长文本的生成能力很强,缺点就是单向的注意力机制在 NLU 使命中,不能完全捕获 token 的内在接洽。
代表模子如:GPT系列、GPT-2、GPT-3

编码解码 (encoder-decoder)
编码器使用双向注意力,解码器使用单向注意力,并且有交织注意力连接两者,在有条件生成使命(seq-seq)中体现良好,比如生成摘要、生成式问答、机器翻译
代表模子MASS、BART、PALM

三种预训练框架各有利弊,没有一种框架在以下三种范畴的体现最佳:自然语言理解(NLU)、无条件生成以及条件生成。
以前的工作尝试通过多使命学习(Dong 等人,2019;Bao 等人,2020;例如T5)结合它们的目的来统一不同的框架。然而,由于自编码和自回归目的在本质上是不同的,简单的统一不能充实继承两个框架的上风。

三、GLM预训练框架

基于以上的原因,清华研究团队提出了一种基于“自回归空缺填充”的预训练框架,名为 GLM(通用语言模子)。
GLM可以通过改变空格的数量和长度来对不同范例的使命举行预训练,结合了自编码和自回归预训练的优点。在NLU、条件生成和无条件生成的广泛使命中,在雷同模子大小和数据的环境下,GLM优于BERT、T5和GPT。
GLM 按照auto-encoding的思路,从输入文本中随机清空一连的token,并根据auto-regressive的思想,训练模子举行序列重构。
虽然在T5 (rafael et al., 2020) 中使用了空缺填充举行文本到文本的预训练,但GLM提出了两个更进一步的改变:Span shuffling和二维位置编码。
总结改变如下:

  • 自编码思想:在输入文本中,随机删除一连的tokens。
  • 自回归思想:顺序重建一连tokens。在使用自回归方式预测缺失tokens时,模子既可以访问corrupted文本,又可以访问之前已经被预测的spans。
  • span shuffling + 二维位置编码技能。
  • 通过改变缺失spans的数量和长度,自回归空格填充目的可以为条件生成以及无条件生成使命预训练语言模子。


3.1 预训练目的使命

3.1.1 自回归空缺填充

GLM 提出了一种基于自回归空缺填充目的的通用预训练框:GLM将NLU使命制定为包罗使命形貌的填空标题,这些填空标题可以通过自回归生成往返答,同时,通过优化一个自回归的空缺填充目的来训练GLM。
官方话术的使命形貌:
给定输入文本
, 多个文本跨度(text span) 
 从文本输入
被采样; 其中每个
对应
中一系列一连的tokens;
每个span被替换为单个[MASK],形成一个破坏的文本

该模子以一种自回归的方式从破坏的文本中预测跨度中缺失的标志,这意味着在预测跨度中缺失的标志时,该模子可以访问破坏的文本(
中的文本)和先前预测的跨度 (
);
为了充实捕获不同跨度之间的相互依赖关系,随机排列跨度的顺序;
情势上,设
为长度为m的索引序列的全部大概排列的聚集
,而
 为
,要优化的目的即为:

GLM通常以从左到右的方向生成空缺处的单词,表明跨度
的概率可分解为:


详细怎么样,我们上栗子:


(a) 原始文本为 [x1, x2, x3, x4, x5, x6]。两个text span [x3] 和 [x5, x6] 被采样。
(b) 用 [M] 替换 Part A 中的采样范围,并在 Part B 中随机打乱这些范围。
(c) GLM 自回归地生成 Part B。每个范围前面都加上 [S] 作为输入,后面加上 [E] 作为输出。二维位置编码表现跨范围和范围内的位置 (i.e., 第一维度的位置编码表现跨范围中被采样范围的相对位置位置;第二维度表现被采样的范围内,每个token的相对位置)。
(d) 自注意力掩码。灰色地域被屏蔽。Part A 的 tokens 可以关注本身(蓝色框),但不能关注 B。Part B 的 tokens 可以关注 A 和 B 中在该token之前的部门(黄色和绿色框分别对应两个范围)。
详细如下:
(1)Part A中的tokens相互可见,但是不可见B中的恣意tokens。
(2)Part B tokens可见Part A。
(3)Part B tokens可见B中过去的tokens,不可见B中未来的tokens。
( [M] := [MASK], [S] := [START], and [E] := [END] )
(e) 采样方式:从一个均值为3的泊松分布中采样片段的长度,直到原始文本中15%的字符被掩盖。

基于以上的计划,模子可以可以主动学习双向encoder(Part A)以及单向decoder(Part B)。

3.1.2 不同参数多目的预训练

上述方法适合于NLU使命。然而,研究团队希望可以训练一个可以同时处理NLU和文本生成的单一模子。然后,研究团队增长了一个多使命预训练设置,其中第二个目的是生成更长的文本,该目的与空缺填充目的共同优化。
长文本生成详细包罗以下两个目的:


  • sentence-level (句子级):从文档中随机掩码多少文本片段,每个文本片段必须为完整的句子,被掩码的词数量为整个文档长度的15%。这一目的是能针对seq2seq使命,其预测往往是完整的整个句子或者段落。
  • document-level (文档级):采样一个长度从原始文本长度的50%到100%的匀称分布中采样的片段。这预训练目的针对的是无条件的长文本生成。

3.1.3 三类预训练目的和掩码使命的对比接洽

自回归填充有些雷同掩码语言模子,起首采样输入文本中部门片段,将其替换为[MASK]标志,然后预测[MASK]所对应的文本片段。与掩码语言模子不同的是,预测的过程是采用自回归的方式。


  • 当被掩码的片段(跨度span)长度为1的时候,空格填充使命等价于掩码语言建模;
  • 当将文本1和文本2拼接在一起,然后将文本2整体掩码掉,空格填充使命就等价于条件语言生成使命。
  • 当全部的文本都被掩码时,空格填充使命就等价于无条件语言生成使命。

3.2 训练数据

GLM的训练数据集参考https://github.com/THUDM/GLM/blob/main/data_utils/corpora.py,包罗:
  1. NAMED_CORPORA = {
  2.     'wikipedia': wikipedia,
  3.     'wikipedia-key': KeyReader,
  4.     'openwebtext': OpenWebText,
  5.     "zhihu": zhihu,
  6.     "zhidao": zhidao,
  7.     "baike": baike,
  8.     "test": TestDataset,
  9.     'wikibook': BertData,
  10.     "bert-base": BertBaseData,
  11.     "bert-large": BertLargeData,
  12.     'cc-news': CCNews,
  13.     'pile': Pile,
  14.     'stories': Stories,
  15.     'wudao': WuDaoCorpus
  16. }
复制代码


四、GLM模子架构

4.1 Transformer

GLM使用单个Transformer,并对其架构举行了一些修改:
(1)重新安排了层归一化和残差连接的顺序 (将Post-LN改成Pre-LN),这对于大规模语言模子避免数值偏差至关重要;
(2)使用单个线性层举行输出token预测;
(3)用GeLUs替换ReLU激活函数。

4.2 Attention mask matrix

GLM在训练使命过程中的注意力机制如下图:

其中,灰色地域表现被屏蔽的部门,即Part A (corrupt text)可以双向关注本身内部的token(蓝色框部门),而不可以关注到Part B中的部门;
而Part B 内部的 tokens 可以关注 Part A 以及Part B 中在该token之前的部门(黄色和绿色框分别对应两个范围)


  • PartA部门内的各token可以相互注意到
  • PartB部门内的tokens可以注意到PartA和PartB中已经生成的token

4.3 2D位置编码

自回归空缺填充使命的挑战之一是如何编码位置信息。
GLM提出了二维位置编码来解决这个挑战:详细来说,每个标志都用两个位置 id 编码。第一个位置 id 表现在破坏的文本 
中的位置。对于掩码跨度
,它是对应的[MASK]令牌的位置。
第二个位置 id 表现跨度内的位置。对于部门 A 中的标志,它们的第二个位置 id 为 0。对于部门 B 中的标志,它们的范围从 1 到掩码跨度
的长度。

两个位置id通过可学习的嵌入表被投影成两个向量,这两个向量都被添加到输入tokens的嵌入中。

该编码方法确保模子在重构它们时不知道被掩盖跨度的长度。与其他模子相比,这是一个重要的区别。例如,XLNet(Yang 等人,2019)对原始位置举行编码,因此可以感知缺失标志的数量,而 SpanBERT(Joshi 等人,2020)用多个 [MASK] 标志替换跨度并保持长度不变。该计划更广泛适用于下游使命,由于通常生成的文本长度事先未知。

五、GLM模子微调/下游使命

通常,对于下游NLU使命,线性分类器将由预训练模子产生的序列或标志的表现作为输入,并预测准确的标签。然而,这种微调方式,使下游使命与生成式预训练使命不同,导致预训练和微调之间的不一致。
研究团队针对文本分类使命和生成使命,重新界说了GLM下游微调的使命:
(1)分类使命
给定一个标注样本(x,y),我们将输入文本x通过模板转化为有一个[MASK]字符填空标题c(x)。标签y也映射到了填空标题的答案v(y) 。模子预测不同答案的概率对应了预测不同类别的概率

(2)生成使命
针对文本生成使命,直接将GLM作为一个自回归模子的应用。比如: 给定的上下文构成输入的部门的A,在结尾附上一个[MASK]字符,模子用自回归的方式去生成B部门的文本。


六、实行结果对比

6.1 与其他模子的对比

(1)与BERT对比
BERT是auto-encoder模子,来预测[MASK] token。由于模子中的[MASK] token都是独立的,BERT不能捕获[MASK] token之间的依赖性,且无法处理多个一连的[MASK] token。
(2)与XLNet的对比
XLNet和GLM都是auto-regressive的模子,但是与GLM有两个不同点:(1)XLNet使用破坏前的原始位置编码。在推理过程中,我们需要知道或罗列答案的长度;(2)使用双流注意力机制解决了信息泄漏的标题,改变了transfomer的结构,增长了耗时。
(3)与T5模子对比
T5也是处理的空缺填充的使命目的,但是GLM使用了单个的transformer编码器学习单向和双向的注意力,且通过共享参数使参数比T5更有效。T5在encoding和decoding使用不同的位置编码,使用哨兵标志来识别不同的[MASK]跨度,哨兵标志造成了模子能力的浪费和预训练微调的不一致性。
(4)与UniLM对比
UniLM是通过在auto-encoder框架下改变在双向,单向,相互之间的attention mask来统一预训练目的;由于自编码模子的独立假设,自回归模子不能完全捕获当前token对于前面token的依赖。对于微调下游使命来说,自编码会比自回归更加低效。

6.2 实行设置&训练结果

6.2.1 预训练数据集

为了与BERT公平对比,使用与BERT雷同的数据集训练——BooksCorpus和English Wikipedia。GLM-Base和GLM-Large在雷同数据集下的体现优于BERT-Base和BERT-Large。


6.2.2 多使命预训练

使用了NLU、seq2seq、空格填充以及零样本语言建模使命来评估GLM多目的使命的体现。
GLM-Doc和GLM-Sent仅使用一个预训练目的,因此在NLU上的体现均不如GLM-Large,但仍旧优于BERT-Large和UniLM-Large。
在条件生成使命(Seq2seq)和空格填充中,GLM-Sent比GLM-Large的体现好,GLM-Doc的体现略差于GLM-Large。这表明模子拓展文本的文档级别的目的,对条件生成使命的帮助不大(条件生成使命旨在从context中抽取有效信息)。



在零样本语言建模使命中,在预训练过程中如果没有生成目的,GLMLarge将无法完成语言建模使命,其perplexity大于100。
在参数数量雷同的环境下,GLMDoc的性能比GPTLarge差。这是预期的,由于GLMDoc不仅有文本生成的目的,还有空缺填充目的。将模子参数增长到410M (GPTLarge的1.25倍),性能接近GPTLarge。GLM515M (GPTLarge的1.5倍)可以进一步优于GPTLarge。
由于GLM学习了双向注意,我们也在双向注意编码的环境下评估了GLM。在参数数量雷同的环境下,对上下文举行双向注意编码可以进步语言建模的性能。在此设置下,GLM410M优于GPTLarge。这是GLM相对于单向GPT的上风。我们还研究了二维位置编码对长文本生成的贡献。我们发现,去除二维位置编码会导致语言建模精度降低和复杂度增长。


6.2.3 消融实行

消融实行是一种评估模子组件对性能影响的方法,通过逐个移除或替换模子的某些部门,来观察模子在下游使命上的体现变革。作者使用了 SuperGLUE 作为评估数据集,它包罗了八个自然语言理解使命。作者与 BERT 举行了对比实行,发现 GLM 在预训练和微调阶段都有上风。作者还分析了 GLM 的不同计划选择,如空缺填充目的、空缺顺序、空缺表现、2D 位置编码等,对模子性能的影响。
重要发现如下:
(1)与封闭式微调的BERT相比,GLM受益于自回归预训练。特别是在ReCoRD和WSC中,其中语言表达器由多个token组成,GLM的性能始终优于BERT。这证明了GLM在处理变长空缺方面的上风。
(2)另一个观察结果是,完形填空使命 (cloze finetuning)对GLM在NLU使命上的体现至关重要。
(3)删除shuffle span (总是从左到右预测掩码跨度)会导致GLM性能严重下降;相较于使用sentinel token,不使用反而性能更好



6.3 千亿级参数大模子结果对比(2022.11)

2022年11月,斯坦福大学大模子中央对全球30个主流大模子举行了全方位的评测,GLM-130B 是亚洲唯一入选的大模子。在与 OpenAI、谷歌大脑、微软、英伟达、脸书的各大模子对比中,评测陈诉体现 GLM-130B 在准确性和恶意性指标上与 GPT-3 175B (davinci) 接近甚至持平,鲁棒性和校准偏差在全部千亿规模的基座大模子(作为公平对比,只对比无指令提示微调模子)中体现优异。
详细数据见下图:




七、基于GLM训练ChatGLM

ChatGLM-6B 参考了 ChatGPT 的计划思路,在千亿基座模子 GLM-130B 中注入了代码预训练,通过有监视微调等技能实现与人类意图对齐(即让机器的回答符合人类的期望和代价观)。

Note: 为控制篇幅,本文仅先容GLM的基础构架和预训练; GLM-130B和ChatGLM的升级等会在part2再先容



参考资料:
清华大学chatGLM论文解读_chatglm详解-CSDN博客
大模子的实践应用4-ChatGLM-6b大模子的结构与核心代码解读,最全的ChatGLM模子架构先容与源码解读-CSDN博客
清华ChatGLM底层原理详解——ChatGPT国内最强开源平替,单卡可运行 - 知乎


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

光之使者

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表