LLM指南 Part 1: BERT

了解 BERT 如何构建最先进的嵌入式技术

简介

2017 年是机器学习领域具有历史意义的一年,Transformer 模型首次亮相。它在许多基准测试中表现出色,适用于数据科学中的许多问题。得益于其高效的架构,后来又开发出了许多基于 Transformer 的模型,这些模型更加专注于特定任务。

BERT 就是其中之一。它主要以能够构建嵌入而闻名,嵌入可以非常准确地表示文本信息并存储长文本序列的语义。因此,BERT 嵌入在机器学习中得到了广泛应用。了解 BERT 如何构建文本表征至关重要,因为它为解决 NLP 中的大量任务打开了大门。

在本文中,我们将参考 BERT 的原始论文(https://arxiv.org/pdf/1810.04805.pdf),了解 BERT 的架构,并理解其背后的核心机制。在前几节中,我们将对 BERT 做一个高层次的概述。之后,我们将逐步深入了解其内部工作流程以及信息如何在整个模型中传递。最后,我们将了解如何对 BERT 进行微调,以解决 NLP 中的特定问题。

高级概述

Transformer 的架构由两个主要部分组成:编码器和解码器。堆叠编码器的目标是为输入构建一个有意义的嵌入,以保留其主要上下文。最后一个编码器的输出被传递到所有解码器的输入端,试图生成新的信息。

BERT 是 Transformer 的继承者,它继承了 Transformer 的堆叠式双向编码器。BERT 的大部分结构原理与最初的 Transformer 相同。

BERT 版本

BERT 有两个主要版本:基本版本和大型版本。它们的结构完全相同,只是使用的参数数量不同。总体而言,BERT Large 需要调整的参数是 BERT Base 的 3.09 倍。

双向表征

从 BERT 名称中的字母 "B "开始,我们就必须记住,BERT 是一个双向模型,这意味着,由于信息是双向传递的(从左到右和从右到左),因此它可以更好地捕捉单词之间的联系。显然,与单向模型相比,这需要更多的训练资源,但同时也会带来更高的预测准确率。

为了更好地理解,我们可以将 BERT 架构与其他流行的 NLP 模型进行比较。

输入标记化

在了解 BERT 的训练方法之前,有必要先了解它接受数据的格式。在输入方面,BERT 接收单个句子或一对句子。每个句子都被分割成标记。此外,输入中还会传递两个特殊标记:

通过两个句子,BERT 可以处理大量输入包含两个句子的任务(如问题和答案、假设和前提等)。

输入嵌入

标记化之后,每个标记都会有一个嵌入。为了使输入嵌入更有代表性,BERT 为每个标记构建了三种类型的嵌入:

将这些嵌入值相加,然后将结果传给 BERT 模型的第一个编码器。

输出

每个编码器将 n 个嵌入词作为输入,然后输出相同数量、相同维度的经过处理的嵌入词。最终,整个 BERT 输出也包含 n 个嵌入式编码,每个嵌入式编码对应其初始标记。

培训

BERT 培训包括两个阶段:

  1. 预训练:BERT 在两个预测任务上对未标记的句子进行训练:屏蔽语言建模(MLM)和自然语言推理(NLI)。对于每一对句子,模型都会对这两个任务进行预测,并根据损失值执行反向传播以更新权重。
  2. 微调:BERT 使用预先训练好的权重进行初始化,然后在标注数据上针对特定问题进行优化。

预训练

与微调相比,预训练通常要花费相当多的时间,因为模型是在大量数据的基础上训练出来的。这就是为什么有很多预训练模型的在线资源库,然后可以相对快速地对这些模型进行微调,以解决特定任务。

我们将详细介绍 BERT 在预训练过程中解决的两个问题。

屏蔽语言建模

作者建议通过在初始文本中屏蔽一定量的标记并对其进行预测来训练 BERT。这样,BERT 就有能力构建弹性嵌入,利用周围的上下文来猜测某个单词,从而为遗漏的单词构建适当的嵌入。这一过程的工作原理如下:

  1. 标记化后,随机选择 15%的标记进行屏蔽。被选中的标记将在迭代结束时进行预测。
  2. 被选中的标记会以三种方式之一被替换:
  3. 用 [MASK] 标记替换 80% 的标记。 例如我买了一本书 我买了[MASK]。
  4. 10% 的代币由随机代币代替。 例如他正在吃水果 他正在画一个水果
  5. 10% 的代币保持不变。例如我附近有一所房子房子在我附近 房子在我附近
  6. 所有标记都会被传递给 BERT 模型,该模型会为其收到的每个输入标记输出一个嵌入。
  7. 与步骤 2 中处理过的词块相对应的输出嵌入将被独立用于预测被屏蔽的词块。每次预测的结果都是词汇表中所有标记的概率分布。
  8. 通过比较概率分布与真实的屏蔽词库,计算交叉熵损失。
  9. 使用反向传播更新模型权重。

自然语言推理

在这项分类任务中,BERT 尝试预测第二句话是否紧跟第一句话。整个预测只使用 [CLS] 标记的最终隐藏状态的嵌入信息,该标记应该包含两个句子的综合信息。

与 MLM 相似,构建的概率分布(本例中为二进制)用于计算模型的损失,并通过反向传播更新模型的权重。

对于 NLI,作者建议从语料中选择 50%的句子对(正句对)和 50%的句子对(负句对)。

训练细节

根据论文所述,BERT 在 BooksCorpus(8 亿字)和英文维基百科(25 亿字)上进行了预训练。为了提取较长的连续文本,作者只从维基百科中提取了阅读段落,而忽略了表格、标题和列表。

BERT 是在一百万个大小相当于 256 个序列的批次上进行训练的,这相当于在 33 亿个单词上进行 40 次计时。每个序列最多包含 128 个(90% 的情况下)或 512 个(10% 的情况下)词组。

根据原始论文,训练参数如下:

微调

一旦完成预训练,BERT 就能真正理解单词的语义,并构建出几乎能完全代表单词含义的嵌入词。微调的目的是逐步修改 BERT 权重,以解决特定的下游任务。

数据格式

得益于自我关注机制的稳健性,BERT 可以很容易地针对特定的下游任务进行微调。BERT 的另一个优势是能够建立双向文本表征。这样,在处理成对句子时,就有更大的机会发现两个句子之间的正确关系。以前的方法包括对两个句子进行独立编码,然后对它们应用双向交叉注意。BERT 将这两个阶段统一起来。

根据问题的不同,BERT 可接受多种输入格式。使用 BERT 解决所有下游任务的框架都是一样的:通过输入文本序列,BERT 输出一组标记嵌入,然后将其输入模型。大多数情况下,并非所有的输出嵌入都会被使用。

让我们看看常见问题以及通过微调 BERT 解决这些问题的方法。

句对分类

句对分类的目标是理解给定句对之间的关系。常见的任务类型主要有

为了进行微调,这两个句子都被传递给 BERT。根据经验,[CLS] 标记的输出嵌入将用于分类任务。研究人员认为,[CLS] 标记应该包含句子关系的主要信息。

当然,也可以使用其他输出嵌入,但在实际应用中通常会省略。

答题任务

问题解答的目的是在文本段落中找到与特定问题相对应的答案。大多数情况下,答案以两个数字的形式给出:段落的起始和结束标记位置。

在输入方面,BERT 接收问题和段落,并为它们输出一组嵌入词。由于答案包含在段落中,因此我们只对与段落标记相对应的输出嵌入感兴趣。

为了找到答案标记在段落中的起始位置,我们会计算每个输出嵌入和一个特殊的可训练向量 T_{start}之间的标量乘积。在大多数情况下,当模型和向量 T_{start}经过相应训练时,标量乘积应与相应标记实际上是起始答案标记的可能性成正比。为了将标量乘归一化,我们会将它们传递给 softmax 函数,并将其视为概率。概率最高的标记嵌入被预测为起始答案标记。根据真实概率分布,计算损失值并进行反向传播。对向量 T_{end}进行类似处理,以预测结束标记。

单句分类

与之前的下游任务相比,不同之处在于这里只通过 BERT 传输一句话。这种配置可以解决以下典型问题:

预测工作流程与句对分类相同:将 [CLS] 标记的输出嵌入作为分类模型的输入。

单句标记

命名实体识别(NER)是一个机器学习问题,旨在将序列中的每个标记映射到相应的实体中。

为了实现这一目标,像往常一样对输入句子的标记进行嵌入计算。然后,每个嵌入(除了 [CLS] 和 [SEP])都会被独立地传递给一个模型,该模型会将每个嵌入映射到一个给定的 NER 类别(如果不能,则不映射)。

将 BERT 与其他特征相结合

有时,我们不仅要处理文本,还要处理数字特征等。我们自然希望建立的嵌入模型能同时包含文本和其他非文本特征的信息。以下是建议采用的策略:

结论

在本文中,我们深入探讨了 BERT 的训练和微调过程。事实上,这些知识足以解决 NLP 中的大部分任务,这要归功于 BERT 几乎可以将文本数据完全纳入嵌入式。

近来,还出现了其他基于 BERT 的模型,如 SBERT、RoBERTa 等。甚至还有一个名为 "BERTology "的专门研究领域,深入分析 BERT 的功能,以推导出新的高性能模型。这些事实进一步证明,BERT 是机器学习领域的一场革命,使 NLP 取得了长足的进步。

资源

  1. BERT: 预训练深度双向变换器,促进语言理解 https://arxiv.org/pdf/1810.04805.pdf
展开阅读全文

页面更新:2024-06-10

标签:编码器   权重   序列   双向   段落   句子   标记   模型   文本   两个   指南

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top