大模型面试准备(十五):BERT 工作流程

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何备战、面试常考点分享等热门话题进行了深入的讨论。


合集在这里:《大模型面试宝典》(2024版) 正式发布!


可以将预训练的 BERT 假设为一个黑匣子,它为序列中的每个输入标记(单词)提供 H = 768 个形状的向量。BERT 本质上是由堆叠的编码器层组成。

Token Embeddings是通过索引一个30000x768矩阵得到的,权重在训练中学习;Segment Embeddings用于指示句子来源,全0或全1向量表示;Position Embeddings则用于指定单词在序列中的位置,是一个具有预设模式的常数矩阵。这些构成了BERT嵌入的重要组成部分。

BERT的工作原理

可以将预训练的 BERT 假设为一个黑匣子,它为序列中的每个输入标记(单词)提供 H = 768 个形状的向量。 这里,序列可以是单个句子或由分隔符 SEP 分隔并以标记 CLS 开头的一对句子。

BERT为输入句子中的所有单词得到一个 768 大小的向量。

BERT的本质

BERT 本质上是由堆叠的编码器层组成。

在论文中,作者尝试了两种模型:

  • BERT 基础:层数 L=12,隐藏层大小,H=768,自注意力头,A=12,总参数=110M

  • BERT Large:层数 L=24,隐藏层大小,H=1024,自注意力头,A=16,总参数=340M

BERT的Embedding流程

Token Embeddings是通过索引一个30000x768矩阵得到的,权重在训练中学习;Segment Embeddings用于指示句子来源,全0或全1向量表示;Position Embeddings则用于指定单词在序列中的位置,是一个具有预设模式的常数矩阵。这些构成了BERT嵌入的重要组成部分。

Token Embeddings

我们通过索引一个大小为30000x768(H)的矩阵来得到Token嵌入。在这里,30000是wordpiece分词后的词汇表长度。这个矩阵的权重将在训练过程中学习得到。

Segment Embeddings

指定这个句子来自哪个段落。如果嵌入来自句子1,则这些都是长度为H的全0向量;如果嵌入来自句子2,则这些是一个全1向量。

Position Embeddings

这些嵌入用于指定单词在序列中的位置,这与我们在转换器(transformer)架构中所做的相同。因此,我们本质上有一个具有一些预设模式的常数矩阵。这个矩阵的列数为768。这个矩阵的第一行是标记CLS的嵌入,第二行是单词"my"的嵌入,第三行是单词"dog"的嵌入,以此类推。

预训练掩码语言模型

通过尝试不同的训练模型并找出各自的缺陷,来逐步解释模型架构,并最终了解BERT的工作原理。

预测所有单词

BERT 预训练掩码语言模型设置如下:

结果:预测所有单词。

问题:学习任务很琐碎。

原因:网络事先知道它要预测什么,因此可以轻松学习权重以达到 100% 的分类准确度。

仅预测被掩码的单词

在每个训练输入序列中屏蔽 15% 的随机单词,并仅预测这些单词的输出。

结果:仅预测被掩码的单词。

现在模型学会了预测它未见过的单词,同时看到了这些单词周围的所有上下文。在这个示例中,我们掩码了3个单词,而实际上应该只掩码1个单词,因为8的15%是1。

问题:这个模型基本上学会了只针对MASK标记预测出好的概率。 也就是说,在预测时间或微调时间,当模型没有收到MASK作为输入时,它无法预测出好的上下文嵌入。

预测被掩码的单词和随机单词

在这次尝试中,仍然会屏蔽 15% 的仓位。但将用一些随机单词替换 20% 的屏蔽标记中的任何单词。这样做是想让模型知道当单词不是 MASK 标记时我们仍然需要一些输出。

因此,如果有一个长度为 500 的序列,将屏蔽 75 个标记(500 个标记的 15%),在这 75 个标记中,15 个标记(75 个标记的 20%)将被随机单词替换。如图所示,这里用随机单词替换了一些掩码。

结果:预测被掩码的单词和随机单词。

优势:现在网络仍然可以处理任何单词。

问题:网络学会了输入单词永远不会等于输出单词。也就是说,在"随机单词"位置上的输出向量永远不会是"随机单词"。

预测被掩码的单词、随机单词和非掩码单词

训练数据生成器会随机选择15%的标记位置进行预测。如果选择了第i个标记,我们会用以下方式替换它:(1) 80%的时间用MASK标记替换第i个标记 (2) 10%的时间用一个随机标记替换第i个标记 (3) 10%的时间第i个标记保持不变。

因此,如果我们有一个长度为500的序列,我们会掩码75个标记(500的15%),在这75个标记中,有7个标记(75的10%)会被随机词替换,有7个标记(75的10%)将保持不变。从图像上看,我们会用随机词替换一些掩码,并用实际词替换一些掩码。

结果:预测被掩码的单词、随机单词和非掩码单词。

因此,现在我们有了最佳的设置,模型不会学习任何不良的模式。

但是,如果我们只保留掩码+非掩码的设置呢?模型会学到每当单词出现时,就预测那个单词。

总结

本文重点讨论了预训练掩码语言模型的不同训练策略,包括预测所有单词、仅预测被掩码的单词、预测被掩码的单词和随机单词以及预测被掩码的单词、随机单词和非掩码单词。通过这些不同的训练策略,BERT能够学习到更加丰富的语言表示,提高模型的泛化能力。

相关推荐
中科岩创2 分钟前
全栈本地化专属部署架构,服务智慧矿山信息化安全建设!
大数据·人工智能·物联网
数智前线3 分钟前
Forrester最新报告发布:OceanBase成唯一入选中国厂商
人工智能
葡萄城技术团队3 分钟前
AI 不会淘汰电子表格,反而会让电子表格成为 AI 操作系统
前端·人工智能
monsion4 分钟前
AG-UI 协议详解:Agent 与用户之间缺失的那一层
人工智能·ui·个人开发
Token炼金师7 分钟前
千卡月崩五次:loss spike、硬件故障、checkpoint 与断点续训 —— 训练可靠性的生死线
人工智能·深度学习·llm
有Li9 分钟前
通过渐进式域变换实现组织分类的无监督单域泛化文献速递/基于多模态的医学影像分割与理解
人工智能·学习·分类·数据挖掘·文献·医学生
Token炼金师11 分钟前
指令的塑形:从野生语言模型到听话助手 —— 监督微调 SFT 全链路
人工智能·深度学习·llm
新知图书13 分钟前
多模态智能体开发工具链推荐(IDE/调试工具/日志工具)
人工智能·agent·多模态·ai agent·智能体
双翌视觉16 分钟前
当光纤端面遇上AI算力:精密检测的光学成像技术与应用
人工智能·视觉检测
Sirius Wu20 分钟前
OpenClaw 并发安全完整详解
网络·人工智能·安全·ai·架构·aigc