揭秘GLM-130B爆火秘诀:颠覆性自回归填空和二维位置编码的训练黑科技

GLM(通用语言模型)的训练过程确实复杂,尤其是涉及到其独特的预训练目标和架构调整。让我来详细解释一下GLM的训练过程。

1. 模型架构简介

GLM-130B 是基于 Transformer 架构的双语(中文和英文)语言模型,拥有 1300 亿个参数。与常见的 GPT 模型不同,GLM 采用了一种独特的自回归空白填充预训练目标,以更好地捕捉上下文之间的关系。

2. 预训练过程概述

GLM 的预训练过程可以分为三个主要部分:

  • 输入文本的构成
  • 模型的输入和输出
  • 注意力掩码矩阵的设计
输入文本的构成
  • 随机掩码:首先对句子中的一些词汇或片段进行随机掩码处理,即在文本中随机选择一段词汇并用特殊的 [MASK] 标记进行替换。

  • 分段:被掩码的文本分为两个部分:

    • Part A:包含 [MASK] 标记的句子部分。
    • Part B:被掩码的片段的原始 token,即这些被掩码部分在未被掩码前的真实内容。
  • 泊松分布:掩码片段的长度是根据泊松分布随机生成的,这使得每个掩码片段的长度有一定的随机性。

模型的输入和输出
  • 拼接:将 Part A 和 Part B 拼接在一起形成模型的输入。在这个过程中,为了区分 Part A 和 Part B,模型使用了特殊标记 [S] 来分隔这两部分内容。

  • 二维位置编码

    • 位置1:在位置编码上,Part A 的位置编码从 0 递增,而 Part B 的位置编码是被掩码的片段在原句子中的位置编码。
    • 位置2:在第二个位置编码上,Part A 的位置始终为 0,而 Part B 的每个片段内部位置编码是自增的。
注意力掩码矩阵设计
  • Part A(双向注意力):在 Part A 部分,GLM 使用双向注意力机制,允许当前 token 同时关注句子中之前和之后的 token。这种双向注意力机制可以帮助模型更好地理解句子中词汇之间的依赖关系。

  • Part B(单向注意力):在 Part B 部分,模型使用单向注意力机制,即每个 token 只能关注到之前的 token,这更像是传统的自回归生成模型中的做法。

3. GLM的独特改进

在基于 Transformer 架构的基础上,GLM 做了几个关键的改进:

  1. Layer Normalization 和 Residual Connection 的顺序调整:传统 Transformer 中的 Layer Normalization 和 Residual Connection 顺序被调整,以提高模型的训练稳定性。

  2. 单一线性层进行输出 token 预测:模型的输出层采用了单一线性层来预测 token,相较于传统的多层结构,这种设计可能更为简洁高效。

  3. ReLU 替换为 GeLU:激活函数由 ReLU 替换为 GeLU(高斯误差线性单元),这是一种更平滑的激活函数,有助于提升模型的训练效果。

4. 其他优化技术

  • 自回归空白填充目标:GLM 通过随机掩盖连续的文本区间,并对这些区间进行自回归预测,以此作为其主要的预训练目标。这种方法与传统的自回归语言模型目标有些类似,但能够更好地利用双向注意力机制。

  • 两种掩码标识符:GLM-130B 使用了两种掩码标识符 [MASK][gMASK],分别用于短文和长文的生成任务。

  • 旋转位置编码(RoPE):采用了一种称为旋转位置编码(RoPE)的技术,这种技术能够更好地处理长序列文本。

  • DeepNorm 层规范化:为了改善模型的训练效果,GLM 还采用了 DeepNorm 层规范化技术。

  • 高斯误差 GELU:使用了高斯误差 GELU 激活函数,这种函数比传统的 ReLU 更适合深层神经网络的训练。

5. 训练细节

  • 模型层数与维度:GLM-130B 模型拥有 70 层 Transformer,隐藏层维度为 12288,最大序列长度为 2048。

  • 分词器:采用了基于 icetk 的双语分词器,具有 150,000 个标识符,可以处理中英文双语的文本。

以上是 GLM-130B 的详细训练过程和模型设计的解释。GLM 的独特之处在于它结合了双向注意力和自回归生成能力,使得它在处理复杂的自然语言任务时表现更加出色。

二维位置编码是 GLM 模型的一项关键设计,它通过两种不同的方式对输入的序列进行编码,从而帮助模型更好地理解上下文中的依赖关系。让我们详细解析一下这两种位置编码方式。

位置1编码

  • Part A(含有 [MASK] 的部分)

    • 位置编码从 0 开始,按照顺序逐渐递增。也就是说,Part A 的第一个 token 位置编码为 0,第二个为 1,以此类推。这种递增的编码方式类似于 Transformer 中的标准位置编码方法。
  • Part B(被掩码的片段,原始 token 的部分)

    • Part B 的位置编码与其在原句子中的位置对应。例如,假设一个句子的第5到第7个词被掩码了,这个被掩码的片段在 Part B 中会保留原来在句子中的位置编码(比如,第5个词的位置编码仍然是 5,第6个词的位置编码是 6)。这种编码方式确保了模型在预测被掩码部分时能够知道这些词在原始句子中的具体位置,从而更好地理解上下文信息。

位置2编码

  • Part A

    • 在这个位置编码中,Part A 的所有 token 位置编码都被设为 0。这意味着无论 Part A 中的 token 是第几个,它们的这个位置编码值都是 0。这种设计让模型能够专注于 Part B 的位置信息,而不需要在 Part A 中计算具体的位置信息。
  • Part B

    • Part B 内的每个片段的 token 都有独立的、自增的编码。具体来说,虽然这些 token 在原始句子中可能有不同的位置,但在 Part B 中,每个片段会从 0 开始递增。例如,如果一个掩码片段包含 3 个词,那么这三个词在 Part B 中的第二个位置编码会是 0、1、2。这个编码方式在每个片段内部建立了一种相对的位置信息,帮助模型理解片段内部的顺序结构。

总结

  • 位置1:提供了全局的位置信息,其中 Part A 是标准递增的顺序,而 Part B 保留了原始句子中的位置信息。
  • 位置2:简化了 Part A 的位置信息(都为 0),而在 Part B 内部通过递增编码确保模型可以感知片段内的顺序。

通过这种二维位置编码的设计,GLM 模型可以同时捕捉到句子的全局结构和被掩码片段的局部顺序信息,从而增强了模型的上下文理解能力和预测准确性。

为了帮助你更好地理解 GLM 模型的训练过程,下面用一个具体的例子来说明该过程的各个步骤,尤其是如何利用二维位置编码和自回归空白填充目标进行训练。

假设的输入句子

我们以一个简单的句子为例:

输入句子:The quick brown fox jumps over the lazy dog.

1. 掩码处理

在预训练过程中,GLM 会随机选择一部分句子进行掩码处理。假设模型选择了 “brown fox” 这个片段进行掩码:

  • Part A(带掩码的部分):

    The quick [MASK] jumps over the lazy dog.
    
  • Part B(被掩码的片段原始内容):

    brown fox
    

2. 输入文本的构成

模型将 Part A 和 Part B 拼接在一起,并用特殊的 [S] 标记将两部分分隔开。拼接后的输入如下:

The quick [MASK] jumps over the lazy dog. [S] brown fox

3. 二维位置编码

接下来,模型会对拼接后的序列进行二维位置编码。

位置1编码(全局位置信息)
  • Part A
    The(0) quick(1)   jumps(3) over(4) the(5) lazy(6) dog(7).
    
  • Part B
    brown(2) fox(3)
    
    这里,Part B 的位置编码保留了它们在原始句子中的位置,即 “brown” 对应第2个位置,“fox” 对应第3个位置。
位置2编码(局部位置信息)
  • Part A

    The(0) quick(0)   jumps(0) over(0) the(0) lazy(0) dog(0).
    

    在位置2编码中,Part A 的所有 token 的位置编码都是 0。

  • Part B

    brown(0) fox(1)
    

    这里,Part B 的位置编码是片段内自增的,从 0 开始递增。即 “brown” 的位置编码是 0,而 “fox” 的位置编码是 1。

4. 注意力掩码

在训练过程中,模型会根据这些编码和序列设计注意力掩码矩阵。

  • Part A:由于采用双向注意力机制,所有的 token 都可以相互关注,既可以看到前面的 token,也可以看到后面的 token。

  • Part B:在 Part B 中,模型采用单向注意力机制。每个 token 只能看到它之前的 token,这类似于传统的自回归模型,这样可以更好地预测下一个 token。

5. 训练目标

模型的训练目标是根据 Part A 的上下文信息,以及 Part B 的前序 token 来预测 Part B 的被掩码片段,即 “brown fox”。

  • 对于 [MASK] 位置,模型需要预测 “brown fox”。
  • 由于 Part B 的自回归特性,模型在预测 “fox” 时只能看到 “brown”。

6. 训练过程总结

  1. 模型输入:模型接收经过掩码处理和拼接的序列,并应用二维位置编码。

  2. 自回归填充:模型利用 Part A 提供的上下文信息和 Part B 内部的自回归预测,逐步填充 [MASK] 的内容。

  3. 损失计算:模型的输出会与实际的 Part B 进行比较,计算预测误差,并通过反向传播调整模型参数。

通过大量类似的训练步骤,GLM 不断学习如何利用上下文信息和自回归预测来准确地填充被掩码的文本片段,从而在完成预训练任务后具备强大的自然语言处理能力。

这个例子展示了 GLM 模型的独特训练过程,尤其是如何利用二维位置编码和自回归填充目标来提高模型的预测能力和上下文理解能力。

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GLM-4V是一种大型模型,它的全称是Generalized Linear Model-4V。GLM-4V是一种广义线性模型,它是基于广义线性模型(Generalized Linear Model, GLM)的扩展和改进。 GLM-4V的原理如下: 1. 广义线性模型(GLM):GLM是一种统计模型,用于建立因变量与自变量之间的关系。它通过将线性回归模型与非线性函数相结合,可以处理不满足正态分布假设的数据。GLM的基本假设是,因变量的分布可以通过一个链接函数与自变量的线性组合相关联。 2. 四个"V":GLM-4V中的四个"V"代表了四个重要的概念,分别是Variation、Variance、Value和Validation。 - Variation(变异性):GLM-4V关注因变量的变异性,通过分析因变量的变异程度来确定模型的拟合程度。 - Variance(方差):GLM-4V考虑了因变量的方差,通过对方差进行建模,可以更好地描述因变量的分布特征。 - Value(价值):GLM-4V关注因变量的价值,通过对因变量的价值进行建模,可以更好地理解因变量对自变量的响应。 - Validation(验证):GLM-4V通过验证模型的拟合程度和预测能力,来评估模型的有效性和可靠性。 3. 模型构建:GLM-4V的模型构建包括以下几个步骤: - 数据准备:包括数据清洗、变量选择和数据转换等。 - 模型选择:选择适当的链接函数和误差分布族,并确定自变量的形式。 - 参数估计:使用最大似然估计或广义最小二乘法等方法,估计模型的参数。 - 模型诊断:对模型进行诊断,检验模型的拟合程度和假设条件是否满足。 - 模型评估:通过交叉验证等方法,评估模型的预测能力和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值