CMU 10423 Generative AI:lec2

1 概述

该文件主要介绍了Transformer语言模型的背景、架构以及与其他语言模型的对比。以下是主要内容的概述:

  1. 语言模型的历史:文件首先介绍了在2017年之前使用的噪声信道模型在语音识别和机器翻译中的应用。这些模型通过结合转导模型和语言模型来进行预测。
  2. 大规模语言模型的发展:讨论了早期的n-Gram语言模型,如Google n-Gram模型,这些模型基于网页文本进行训练,并覆盖多种语言。接着,文件还对比了近年来的一些大规模语言模型(LLMs),如GPT-2、GPT-3、PaLM等。
  3. 递归神经网络(RNNs)及其局限性:介绍了RNN语言模型的基本概念,并讨论了RNN在学习长距离依赖时的困难。
  4. 长短期记忆网络(LSTM):详细解释了LSTM如何通过其内部结构(如输入门、遗忘门、输出门等)克服RNN的梯度消失问题,并帮助记忆长时间步的信息。
  5. 双向LSTM(BLSTM):讲述了将LSTM与双向RNN结合形成的深度双向LSTM(DBLSTM)如何用于处理更复杂的任务。
  6. Transformer语言模型:文件详细介绍了Transformer模型的架构,包括多头注意力机制、前馈神经网络、层归一化、残差连接等。
  7. 模型实现细节:文件还包括了Transformer模型的实现细节,展示了矩阵版本的单头注意力机制等。

2 部分摘录

2.1 噪声信道模型(Noisy Channel Models)

在这里插入图片描述

主要内容:

  1. 噪声信道模型的背景
  • 在2017年之前,语言模型被广泛应用于两个主要任务:语音识别和机器翻译。

  • 在这些任务中,噪声信道模型是一种重要的工具。

  • 噪声信道模型的定义

    • 噪声信道模型结合了一个转导模型(transduction model)和一个语言模型(language model)。
    • 转导模型的作用是计算将输出y转化为输入x的概率,而语言模型则计算y的概率。
  • 噪声信道模型的目标

    • 该模型的目标是从输入x中恢复出最可能的输出y。
    • 对于语音识别,x是声学信号,y是相应的转录文本。
    • 对于机器翻译,x是源语言中的句子,y是目标语言中的句子。

公式解释:

公式表示的内容是从x推断出最可能的y值。这是通过找到使得( p(y | x) )最大化的y值来实现的。在噪声信道模型中,这一过程被分解为两个部分:首先是计算给定y生成x的概率( p(x | y) )(即转导模型),然后是计算y本身的概率( p(y) )(即语言模型)。最终的目标是找到使得这两个概率的乘积最大的y值。

应用举例:

  • 语音识别:模型的输入是声学信号(x),目标是找出最有可能的文本转录(y)。
  • 机器翻译:模型的输入是源语言的句子(x),目标是找出最有可能的目标语言翻译(y)。

这种方法为早期的语音识别和机器翻译任务奠定了基础,并在这些领域中得到了广泛应用。

2.2 n-Gram模型

在这里插入图片描述

“Large (n-Gram) Language Models” 部分主要介绍了早期的大规模n-Gram语言模型的发展与应用。以下是详细介绍:

1. 什么是n-Gram模型

n-Gram模型是一种通过统计方法预测下一个词出现概率的语言模型。它基于这样一个假设:一个词的出现概率只取决于前面n-1个词。例如,三元组模型(trigram)就是基于前两个词预测下一个词的出现概率。

2. 早期的n-Gram模型

早期的大型语言模型使用的是n-Gram模型,其中最具代表性的是Google的n-Gram模型。这些模型通过分析大量的文本数据来统计词序列的频率,并由此预测词的出现概率。

3. Google n-Gram项目

  • 第一次发布 (2006年): Google发布了首个英语n-Gram数据集,训练数据来自于1万亿个token(词或词的单位),涵盖了95亿个句子。该模型包含了1-gram(单词)、2-gram(双词组)、3-gram(三词组)、4-gram(四词组)和5-gram(五词组)。
  • 扩展至其他语言 (2009-2010年): 随后,Google将n-Gram模型扩展至其他语言,包括日语、中文、瑞典语、西班牙语、罗马尼亚语、葡萄牙语、波兰语、荷兰语、意大利语、法语、德语和捷克语。

4. 模型规模与训练数据

  • 模型规模: 英语n-Gram模型的参数量约为30亿个。与现代的大型语言模型相比,这样的规模已经非常庞大。
  • 训练数据的规模: 模型的训练数据包括了1万亿个token和95亿个句子,这样的大数据量为n-Gram模型的预测提供了强大的支持。

5. n-Gram模型的局限性

尽管n-Gram模型在其时代取得了重要的成功,但其也存在一定的局限性:

  • 上下文限制: n-Gram模型只能考虑有限个(n-1)前缀词,这使得它无法捕捉长距离的依赖关系。
  • 数据稀疏性: 随着n的增大,模型的参数量迅速增加,导致模型容易遇到数据稀疏问题,因为许多n-gram可能在训练数据中很少甚至从未出现过。

总结

n-Gram语言模型是早期自然语言处理中的重要工具,它通过统计词序列的出现频率来预测文本。然而,随着计算能力的提高和更复杂模型的出现,如基于深度学习的Transformer模型,n-Gram模型的应用逐渐减少,但它为语言模型的发展奠定了基础。

2.3 当今前沿大模型的训练数据量和参数量

模型名称开发者发布年份训练数据(# Tokens)模型规模(# 参数量)
GPT-2OpenAI2019~10 billion (40GB)1.5 billion
GPT-3 (ChatGPT)OpenAI2020300 billion175 billion(1750亿)
PaLMGoogle2022780 billion540 billion
ChinchillaDeepMind20221.4 trillion70 billion
LaMDA (Bard)Google20221.56 trillion137 billion
LLaMAMeta20231.4 trillion65 billion
LLaMA-2Meta20232 trillion(2万亿)70 billion
GPT-4OpenAI2023??

2.4 计算图的概念

在这里插入图片描述

这张图片展示了如何绘制神经网络的计算图(Computation Graph)以及计算图的一些基本原则和元素。下面详细解释每个部分的含义:

1. 计算图(Computation Graph)简介

计算图是用来表示算法的图形化工具。在计算图中:

  • 节点(Nodes):表示算法中的中间变量。节点在图中通常用矩形表示。
  • 边(Edges):表示变量之间的依赖关系,边是有方向的,指向依赖项。
  • 无标签的边:在计算图中,边通常不需要标签,因为边的方向已经表明了依赖关系。

2. 图中各部分的详细解释

  • (A) Input: 这一部分表示输入层。每个输入变量 (x_i) 被表示为节点。图中也指出,每个输入参数 (\alpha_{ij}) 也需要在图中表示出来。
  • (B) Hidden (linear): 这一层表示神经网络中的隐藏层的线性部分。计算公式为 (a_j = \sum_{i=0}^{M} \alpha_{ji} x_i),这表示每个隐藏层的节点 (a_j) 是输入 (x_i) 的线性组合。
  • © Hidden (sigmoid): 隐藏层的非线性部分,使用sigmoid函数。公式为 (z_j = \frac{1}{1 + \exp(-a_j)})。这一步是将线性组合后的结果通过激活函数(如sigmoid)转换。
  • (D) Output (linear): 输出层的线性部分,计算公式为 (b = \sum_{j=0}^{D} \beta_j z_j),即对隐藏层的输出再做一次线性组合。
  • (E) Output (sigmoid): 最终输出结果通过sigmoid函数转换,公式为 (y = \frac{1}{1 + \exp(-b)})。
  • (F) Loss: 损失函数 (J = \frac{1}{2} (y - y*)2) 用于衡量模型输出 (y) 与真实值 (y^*) 之间的误差。

3. 计算图的要点

  • 拦截项作为节点:在神经网络中,每个拦截项(bias)都应被表示为一个节点,除非它已被整合进其他部分。
  • 每个参数都应在图中表示:这确保了计算图的完整性和清晰性。
  • 常数、标签等应在图中表示:例如,真实标签 ( y^* ) 应在图中作为节点出现。
  • 可以包含损失节点:将损失函数作为图的一部分是完全可以的。

总结:

通过计算图,能够直观地理解数据如何在网络中流动,以及如何通过每一层的计算得到最终的输出。这种图示法对于理解复杂的神经网络模型非常有帮助,尤其是在进行反向传播和梯度计算时。

2.5 Deep BiLSTM 长什么样、LSTM系列变种问题

相比BiLSTM大概就是多个跳跃连接,感觉有点类似残差,防止梯度消失。

在这里插入图片描述

LSTM系列变种问题:

  • 他们仍然在处理长距离依赖方面存在困难
  • 他们的计算本质上是串行的,因此无法轻松地在GPU上并行化
  • 尽管他们(大多数情况下)解决了梯度消失问题,但仍可能会遭遇梯度爆炸的困扰。

2.6 为什么transformer中需要加入位置编码?

一句话总结:注意力机制无法捕捉到词序信息,而词序蕴含的信息很重大,因此需要通过额外的位置编码将位置信息融入到词嵌入编码中。

在这里插入图片描述

位置嵌入(Position Embeddings)

  • 问题:由于注意力机制是位置不变的,因此我们需要一种方法来学习关于位置的信息。
  • 解决方案:使用(或学习)一组特定于位置的嵌入:( p_t ) 表示在位置 ( t ) 处的含义。将其与词嵌入 ( w_t ) 相加。关键思想是,每个出现在位置 ( t ) 的词都使用相同的位置嵌入 ( p_t )。
  • 位置嵌入有多种形式:
    • 一些是固定的(基于正弦和余弦),而另一些是学习到的(类似于词嵌入)。
    • 一些是绝对的(如上所述),但我们也可以使用相对位置嵌入(即相对于查询向量的位置)。

注释

  • ( P_1 \neq P_3 )(位置1的嵌入不等于位置3的嵌入)。
  • ( W_1 = W_3 )(词“cat”的嵌入在两个位置上是相同的)。

解释:

这张图和文本介绍了在Transformer模型中使用的位置嵌入(Position Embeddings)。在Transformer架构中,注意力机制本身是位置不变的,这意味着它不会直接考虑词语在句子中的顺序。然而,句子中的词语顺序在理解语义时是非常重要的。因此,引入了位置嵌入来弥补这一点。

关键点:
  1. 位置嵌入的必要性
  • 由于注意力机制不考虑词语的顺序,因此引入位置嵌入来为每个词语添加位置信息,以便模型能够区分同一个词在不同位置上的不同含义。

  • 如何实现

    • 每个位置 ( t ) 都有一个对应的位置嵌入 ( p_t ),它表示该位置的特定含义。该位置嵌入与词嵌入 ( w_t ) 相加,形成包含位置信息的输入向量。这样,模型就可以在处理时保留位置信息。
  • 位置嵌入的种类

    • 固定位置嵌入:这些位置嵌入通常基于正弦和余弦函数生成,不随训练过程变化。
    • 学习位置嵌入:类似于词嵌入,通过训练过程动态学习和调整。
    • 绝对位置嵌入:表示词语的具体位置(如第一个词、第二个词)。
    • 相对位置嵌入:表示一个词相对于另一个词的位置关系。
  • 示例解释

    • 在图中,词语“Cat”和“saw”在不同的位置上分别有其位置嵌入 ( p_1, p_2 ),并与词嵌入 ( w_1, w_2 ) 相加,以便模型知道“Cat”和“saw”分别出现在句子的什么位置。
    • 在例子中,尽管“Cat”在两个不同的位置上出现(位置1和位置3),它的词嵌入 ( W_1 ) 和 ( W_3 ) 是相同的,但其位置嵌入 ( P_1 ) 和 ( P_3 ) 不同,从而帮助模型区分它们在句子中的不同角色。

通过位置嵌入,Transformer模型能够更好地理解词语的顺序和语境,从而提升对序列数据的处理能力。

2.7 关于 GPT3 的模型结构和参数

GPT的全称:Generative Pre-trained Transformer,即生成式预训练变换模型。

核心思想:GPT本质上是一个基于Transformer架构的语言模型(LM),其特别之处在于拥有大量的参数。

属性/版本解释GPT (2018)GPT-2 (2019)GPT-3 (2020)
层数Transformer的层数(# layers)。表示模型的深度,层数越多,模型能捕捉到的特征越复杂。124896
状态维度每层Transformer的输出向量维度(dimension of states)。更高的维度允许模型捕捉更丰富的信息。768160012288
内部状态维度前馈神经网络(FFN)的中间层维度(dimension of inner states)。通常是状态维度的4倍,用于增强非线性能力。30724*12288
注意力头数量多头自注意力机制中的头的数量(# attention heads)。更多的注意力头可以捕捉更多的序列特征。1296
参数数量模型中的总参数数量(# params)。包括所有可训练的权重和偏置,参数数量越大,模型的表达能力越强。117M1542M175000M

3 阅读材料(LSTM, transformer, 讲解博客)

  • The Long Short-Term Memory and Other GatedRNNs. Ian Goodfellow, Yoshua Bengio, & Aaron Courville (2016). Deep Learning, Chapter 10.10-10.12.
  • Attention Is All You Need. Vaswani et al. (2017). NeurIPS.
  • The Illustrated Transformer. Alammar (2018).

第一个就是花书中的LSTM及其变种部分。

第二个就是鼎鼎大名的XXX is all you need原论文。

第三个是广泛被国内转载并引用原图的某位国外作者撰写的讲解Transformer论文的博文。(有十几个语种的翻译版。。。)

原版地址:https://jalammar.github.io/illustrated-transformer/

中文版1:https://blog.csdn.net/yujianmin1990/article/details/85221271

中文版2:https://blog.csdn.net/qq_36667170/article/details/124359818

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值