前言

在自然语言处理(NLP)领域,BERT(Bidirectional Encoder Representations from Transformers)已经成为理解类任务的标配模型。相比 GPT 更擅长文本生成,BERT 则在语言理解任务上展现出卓越的能力。本文将从结构到应用,全方位剖析 BERT 的核心思想与关键技术。


一、BERT 的技术背景

BERT 基于 Transformer 架构中的 Encoder 部分,其出现受到了 ELMo 和 GPT-1 的启发:

  • ELMo:采用双向 LSTM(能够双向上下文),能够捕捉上下文信息,但执行上较为缓慢。

  • GPT-1:基于 Transformer 的 Decoder 结构,仅使用单向上下文。

  • BERT:综合优势,采用 Transformer 的 Encoder,并实现了真正的双向建模,BERT 模型本质上就是一个强大的语义特征向量提取模型


二、模型结构概览

1. 输入结构

BERT 的输入包括三类嵌入信息:

  • Token Embedding:词语嵌入,将输入文本的词转化为向量,通常为 768 维。

  • Segment Embedding:区分句子 A/B 的标记。

  • Position Embedding:加入位置信息,使模型有“顺序感”,比如标号为0、1、2,有别于transfomer 的positional encoding 通常使用三角函数进行位置编码。

注意:此时向量只有词面信息、位置信息、片段信息

例子:

[CLS] 我 爱 吃 饭 [SEP] 我 也 爱 吃 肉 [SEP]

  • [CLS] 表示分类任务的起始标记;

  • [SEP] 表示句子分隔符。

2. Transformer 编码层

BERT-Base 模型包含 12 层 Encoder,每层内部包括:

  • 多头自注意力机制(Multi-Head Attention)——简单来说它让模型同时从多个角度理解每个向量和上下文之间的关系。

  • 前馈神经网络(Feed Forward Neural Network)——简单来说它是一个对每个经过自注意力机制的向量进行抽象提取(可理解为"概括")的过程。

每层都能提取更丰富的上下文语义,最终每个 Token 输出一个 768 维语义向量(具有上下文相关的特点)。


三、预训练任务解析

1. MLM(Masked Language Model)

掩码语言模型:训练时随机将全文 15% 的 Token 替换为 [MASK],要求模型根据上下文预测被遮蔽的词。(也被称为“完形填空”的形式)

举例:

输入:

“我 爱 [MASK] 饭”

预测:

[MASK] → “吃”

Mask 策略:

在刚才选取的全文15%的Token中进行以下操作:

  • 80% 被替换为 [MASK]

  • 10% 被随机词替换

  • 10% 不变

缺点:训练阶段有 MASK,测试阶段无,引入训练-推理分布差异。

改进方案:
  • 动态 Masking:每次训练时随机生成新 MASK;

  • Span Masking(n-gram Mask):遮蔽连续多个词,训练模型能够更好预测mask 所在位置的词,提升整体语言理解能力。

  • ERNIE / SpanBERT:利用更丰富语义信息改进 Mask 策略。


2. NSP(Next Sentence Prediction)

下一句预测:NSP 任务是判断两个句子之间是否为上下文顺序关系

数据构造:
  • 正样本:真实连续段落。

  • 负样本:从不同文档中随机选取

任务流程:
  • 输入以 [CLS] 开头,接句子 A 和句子 B;

  • 模型输出 [CLS] 的向量,进行二分类判断(A句和B句是否为连续句);

  • 输出 [1, 0] → 是连续句子,[0, 1] → 非连续。


四、BERT总览:


总结

  • BERT 通过双向编码和 MLM+NSP 的预训练目标,极大提升了语言理解能力。

  • MLM 训练策略虽然有效,但也引入了训练-测试不一致问题,动态 Mask 和 Span Mask 是良好补充。    

理解 BERT 是深入掌握自然语言处理的基石,合理使用和优化预训练模型,将为你的 NLP 项目带来巨大提升!如果你觉得文章对你有帮助的话,请点赞、收藏,+关注!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/89750.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/89750.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/89750.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一、bfv_basics

目录 一、加密参数 EncryptionParameters类1. 三个重要的参数2. 参数的作用3. 同态加密方案4. 多项式模数的度 poly_modulus_degree (n)5. 密文模数 coeff_modulus (q)6. 明文模数 plain_modulus (t,这是 BFV 方案才有的,CKKS 没有) 二、上下文 SEALCont…

AI大模型LangChain架构介绍及其在环保领域的应用

1.LangChain 概述与架构 LangChain 是一个面向大型语言模型(LLM)应用的开发框架,其核心理念是将复杂的基于语言的 AI 系统拆分为可复用的模块,简化 LLM 与数据源的集成。LangChain 官方文档将其定义为“一个用于开发以 LLM 为驱动…

centos 7 安装NVIDIA Container Toolkit

要在 CentOS 7 上离线安装 NVIDIA Container Toolkit,需确保已安装 NVIDIA 驱动和 Docker 环境。以下是完整步骤及注意事项: ⚙️ 一、环境准备 验证 NVIDIA 驱动 运行 nvidia-smi 确认驱动已正确安装,若未安装需先离线安装驱动: …

C++学习之STL学习:list的使用

本篇我们将学习STL中list的使用 目录 list的初始和官方文档 list的官方文档 list的构造与析构 构造函数 析构函数 运算符重载 迭代器 正向迭代器 反向迭代器 const正向迭代器 const反向迭代器 容量 empty size max_size 访问 访问第一个元素​编辑 访问最后一个元素 修…

USB服务器在证券公司虚拟化进程中的应用分析

在证券公司全面拥抱虚拟化、云化的技术浪潮中,一个看似微小却至关重要的环节曾长期阻碍进程:分散在各业务环节的银行前置机U盾、各种系统认证Ukey等物理USB安全设备的管理难题。这些承载着资金划拨、交易认证核心权限的“小钥匙”,在传统模式…

网闸内部架构设计:分层与微服务的生死博弈

引言 “物理隔离是网闸的命脉,而架构设计决定其生死。” 在数据安全领域,网闸(安全隔离与信息交换系统)是守护核心网络的钢铁长城。但当开发者试图将现代架构思想(如微服务)引入其内部时,却可能引发灾难性冲突。本文通过深度拆解分层架构与微服务在网闸中的适用性,揭示…

通过MaaS平台免费使用大模型API

文章目录 一、引言:MaaS平台——免费使用大模型API的新选择二、模型代码与限制术语详解(一)模型代码含义解析(二)模型使用限制术语缩写详解 三、5个MaaS平台详细介绍(一)OpenRouter(…

进程代理单窗口单IP技术:原理、应用与实现

“在当今数字化时代,网络隐私保护与多账号管理需求日益增长。单窗口单IP技术通过为每个进程分配独立网络身份,巧妙地解决了多账号管理中的IP关联难题。从游戏多开防封到数据采集优化,从隐私保护到测试验证,这项技术的应用场景不断…

Java教程——线程池和future

Future 详解 1. Future 是什么? Future 是 Java 中的一个接口(java.util.concurrent.Future),代表异步计算的未来结果。它允许你: 提交任务后立即返回在需要时检查任务是否完成获取任务结果(完成后)取消任务2. 怎么使用 Future? 通过线程池提交任务: ExecutorServ…

洛谷P1351 [NOIP 2014 提高组] 联合权值

洛谷P1351 [NOIP 2014 提高组] 联合权值 洛谷题目传送门 题目背景 NOIP2014 提高组 D1T2 题目描述 无向连通图 G G G 有 n n n 个点, n − 1 n-1 n−1 条边。点从 1 1 1 到 n n n 依次编号,编号为 i i i 的点的权值为 W i W_i Wi​,每条边的长…

Apache Doris Profile 深度解析:从获取到分析,解锁查询性能优化密码

在 Doris 数据库中,高效的查询性能是数据处理的关键。当我们遇到查询缓慢、资源消耗异常等问题时,Doris 提供的 Profile 工具就如同一位 “性能侦探”,能帮我们抽丝剥茧,找到问题根源。今天,我们就来深入聊聊如何分析 …

系统架构师

硬件: 运算器:1)算术运算 加减乘除 2)逻辑运算并进行逻辑测试:与或非 组件功能:算术逻辑单元ALU :处理数据 实现对数据的算术运算和逻辑运算 累加寄存器AC 通用寄存器,alu提供工作区 暂存运算结…

Unity HDRP + Azure IoT 工业设备监控系统实例

Unity HDRP Azure IoT 工业设备监控系统实例 下面是一个完整的工业设备监控解决方案,结合Unity HDRP(高清渲染管线)的高质量可视化与Azure IoT的实时数据处理能力。 系统架构 #mermaid-svg-XJnD6acrBbtbqYHW {font-family:"trebuchet…

(超详细)数据库项目初体验:使用C语言连接数据库完成短地址服务(本地运行版)

数据库项目初体验:使用C语言连接数据库完成短地址服务(本地运行版) 前言:初学者的思考 作为一个刚初学数据库的小白并且在之前我的博客中我有尝试使用C语言写过一个短地址服务,但是使用C语言编写的短地址服务只有短记…

mysql基础(一)快速上手篇

连接mysql 使用命令行窗口连接mysql数据库 语法:mysql –h主机名 –u用户名 –p密码 说明:-h参数指定数据库ip,本地服务器可以用localhost,-u参数指定用户名,-p参数指定用户密码。 注意:-p和密码值之间…

IntelliJ IDEA 2025- 下载安装教程图文版详细教程(附激活码)

目录 写在前面 一、介绍 二、下载 三、安装 🏁 写在最后 写在前面 > 🚀 初学 Java?或者刚开始写项目,不知道该选哪个 IDE? 本篇教程手把手教你安装 IntelliJ IDEA —— JetBrains 出品的顶级 Java 开发环境&a…

数学经济专业大学四年规划

数学经济专业结合了数学的逻辑严谨性和经济学的现实应用性,为学生提供了强大的数理分析能力和经济洞察力。该专业毕业生在金融科技、量化投资、商业分析等领域具有显著优势,尤其在数字经济时代,这类复合型人才的需求量持续增长。一、数学经济…

局域网打印机共享怎么设置?如何配置内网本地网络打印机给异地电脑远程连接使用打印?

打印机共享怎么设置?如何设置本地内网的网络打印机共享给其他网络下电脑连接打印?打印机设置使用以及异地使用打印都是大家比较关注的问题,下面详细教程中分二步,先讲局域网内的打印机共享,再进一步介绍内网打印机地址…

Rust异步爬虫实现与优化

Rust 语言在爬虫领域的应用相对较少,尽管 Rust 的 async/await 已稳定,但其与线程安全、Pin 等概念的结合仍较复杂,而爬虫高度依赖并发处理,进一步提高了开发成本。这就导致了使用Rust语言爬虫用的人很少。 下面是一个使用 Rust 编…

Electron 安全最佳实践:构建安全的桌面应用

Electron 是一个流行的框架,允许开发者使用 Web 技术(HTML、CSS、JavaScript)构建跨平台桌面应用。许多知名应用,如 VS Code、Slack 和 Discord,都基于 Electron 开发。然而,由于其结合了 Node.js&#xff…