分享
7. Transformer 模型和 BERT 模型
输入“/”快速插入内容
7. Transformer 模型和 BERT 模型
飞书用户8537
飞书用户4392
2023年8月19日修改
•
本课程向您介绍 Transformer 架构和来自 Transformers (
BERT
) 模型的双向
编码器
表示。您将了解 Transformer 架构的主要组件,例如自注意力机制,以及如何使用它来构建 BERT 模型。您还将了解 BERT 可用于的不同任务,例如文本分类、问答和自然语言推理。
https://www.cloudskillsboost.google/course_templates/538
•
在本模块中,您将了解 Transformer 架构的主要组件,例如自注意力机制,以及如何使用它来构建
BERT
模型。您还将了解 BERT 可用于的不同任务,例如文本分类、问答和自然语言推理。
•
视频学习:
https://youtu.be/sUCiDU8GhMA
课程1:Transformer 和 BERT 模型简介
引言
你好。我是 Sanjana Reddy,是 Google 高级解决方案实验室的机器学习工程师。生成式 AI 和所有新的进步,包括即将出现的新顶点 AI 功能,令人兴奋不已。例如 Gen AI Studio、Model Garden、Gen AI API。我们在这个简短的会议中的目标是让您在一些基本概念上打下坚实的基础。
语言建模的进展
语言建模已经发展了多年。过去十年的最新突破包括使用神经网络用于表示文本的方法,例如 2013 年的 Word2Vec 和 N-grams。2014 年,序列到序列模型(例如 RNN 和 LSTM)的开发帮助提高了 ML 模型在 NLP 任务上的性能,比如翻译和文本分类。
注意力机制的兴起
2015 年,注意力机制和基于它构建的模型令人兴奋,例如 Transformers 和 Bert 模型。今天要讲的是 Transformer 模型。
Transformer 模型的特点
Transformer 基于 2017 年发表的一篇名为《Attention Is All You Need》的论文。尽管 Transformers 之前的所有模型都能够将单词表示为向量,但这些向量并不包含上下文。单词的用法会根据上下文而变化。例如,在注意力机制出现之前,"bank" 和 "river bank" 与 "bank robber" 中的 "bank" 可能具有相同的向量表示。
Transformer 的架构
Transformer 是一种使用注意力机制的编码器解码器模型。它可以利用多元化的优势,也可以同时处理大量数据。由于其模型架构,注意力机制有助于提高机器翻译应用程序的性能。
Transformer 模型由编码器和解码器组成。编码器对输入序列进行编码并将其传递给解码器,解码器解码相关任务的表示。编码组件是一堆相同数量的编码器。介绍 Transformers 的研究论文将六个编码器堆叠在一起。六不是一个神奇的数字。它只是一个超参数。编码器在结构上都是相同的,但具有不同的权重。
编码器的结构
每个编码器可以分解为两个子层。第一层称为自我关注。编码的输入首先流过一个自我关注层,这有助于编码或查看单词的相关部分,因为它对输入句子中的中心词进行编码。第二层称为前馈层。自注意力层的输出被馈送到前馈神经网络。完全相同的前馈神经网络独立应用于每个位置。
解码器的结构
解码器既有自注意力和前馈层,但在它们之间是编码器解码器注意力层,该层帮助解码器关注输入句子的相关部分。在输入序列中嵌入单词后,每个嵌入向量都流经编码器的两层。每个位置的单词都经过自我关注过程。然后它通过一个前馈神经网络,完全相同的网络,每个向量分别流过它。在这个自我关注层中,这些路径之间存在依赖关系。但是,前馈层没有这些依赖关系,因此各种路径在流经前馈层时可以并行执行。
注意力计算
在自我关注层中,输入嵌入被分解为查询、键和值向量。这些向量是使用 Transformer 在训练过程中学习的权重来计算的。所有这些计算以矩阵计算的形式在模型中并行发生。一旦我们有了查询键和值向量,下一步就是将每个值向量乘以 soft max 分数,准备将它们相加。这里的目的是保持单词的值不变。
Transformer 模型的细节
注意力权重的计算
例如,您想通过将不相关的词乘以 0.0010.001 之类的小数字来关注并忽略它们。接下来,我们必须总结加权值向量,以在这个位置产生自注意力层的输出。
自注意力的输出
对于第一个单词,您可以将生成的向量发送到前馈神经网络。总结一下这个获取过程最终的嵌入,这些是我们采取的步骤:我们从自然语言句子开始,将每个单词嵌入句子中。之后,我们在这种情况下执行八次多头注意并相乘这个带有各自加权矩阵的嵌入词。然后我们使用生成的 Q KV 矩阵计算注意力。最后,我们可以连接矩阵以产生输出矩阵,这与该层最初得到的最终矩阵的维度相同。
Transformer 的变体
现在有多种变体。有些同时使用原始架构中的编码器和解码器组件。有些只使用编码器,有些只使用解码器。
BERT:一个Transformer的变体
一种流行的仅编码器架构是 Bert。Bert 是训练有素的 Transformer 模型之一。Bert 代表双向编码器表示来自 transformers,由谷歌于 2018 年开发。从那时起,已经构建了 Bert 的多个变体。今天,Bert 为 Google 搜索提供支持。您可以看到 Bert 为相同的搜索查询提供的结果有多么不同。
Bert 的规模与能力
Bert 接受了两种变体的训练。一个模型包含 Bert Base,它有 12 个 Transformers,大约有 1.1 亿个参数。另一个 Bert Large 有 24 层 Transformer,大约有 3.4 亿个参数。Bert 模型之所以强大,是因为它可以处理长输入上下文。它在整个维基百科语料库和书籍语料库上进行了训练。Bert 模型训练了 100 万步。
Bert 的多任务训练
Bert 接受过不同任务的训练,这意味着它具有多任务目标。这使得 Bert 非常强大,因为它接受过训练的任务类型。它适用于句子级别和标记级别。这是最初发布的两个不同版本的 Bert:一个是 Bert Base,它有 12 层,而 Bert Large 有 24 层,与原来的六层 Transformer 相比。
Bert 的训练任务
任务一:掩码语言模型
Bert 的工作方式是它接受了两项不同任务的训练。任务一称为掩码语言模型,其中句子被掩码,模型被训练以预测被掩码的单词。如果您要从头开始训练 Bert,则必须屏蔽语料库中一定比例的单词。推荐的掩蔽百分比为 15%。遮蔽率达到平衡在太少和太多掩蔽之间。掩蔽太少会使训练过程极其昂贵,而掩蔽太多会消除模型所需的上下文。