当前位置: 首页 > news >正文

BERT框架:自然语言处理的革命性突破

引言

在自然语言处理(NLP)领域,2018年Google推出的BERT(Bidirectional Encoder Representations from Transformers)框架无疑是一场革命。作为基于Transformer架构的双向编码器表示模型,BERT通过预训练学习丰富的语言表示,并在各种NLP任务中取得了显著的成绩。本文将详细介绍BERT的核心原理、技术特点以及实际应用。


一、BERT框架简介

BERT(Bidirectional Encoder Representations from Transformers)是一种基于Transformer编码器的预训练语言模型。与传统的单向语言模型(如GPT)不同,BERT采用双向结构,能够同时考虑文本中的上下文信息,从而更准确地捕捉语义特征。

1. 模型结构

BERT基于Transformer的编码器部分,主要由以下组件构成:

  • 自注意力机制(Self-Attention):通过计算词与词之间的匹配程度,动态分配权重,捕捉上下文关系。
  • 多头注意力机制(Multi-Head Attention):使用多组注意力头(通常为8个)生成多种特征表达,增强模型的表达能力。
  • 前馈神经网络(Feed Forward Network):对注意力机制的输出进行进一步处理。
  • 位置编码(Positional Encoding):通过三角函数为词向量添加位置信息,解决Transformer无法直接处理序列顺序的问题。
    在这里插入图片描述

2. 预训练任务

BERT通过两个无监督任务进行预训练:

  • 遮蔽语言模型(Masked Language Model, MLM):随机遮蔽输入句子中15%的词汇,让模型预测被遮蔽的词。例如:

    输入:我 [MASK] 天 去 [MASK] 试
    预测:今, 面
    
  • 下一句预测(Next Sentence Prediction, NSP):判断两个句子是否连续。例如:

    输入:[CLS] 我 今天 去 面试 [SEP] 准备 好 了 简历 [SEP]
    标签:Yes
    

3. 双向性

BERT的核心优势在于其双向性。传统模型(如RNN或GPT)只能单向处理文本(从左到右或从右到左),而BERT通过自注意力机制同时考虑前后上下文,显著提升了语义理解能力。


二、BERT的核心技术

1.自注意力机制 self.attention

BERT基于Transformer的编码器部分,其核心是自注意力机制。以下是自注意力的计算流程:
在这里插入图片描述

  1. 输入编码:将词向量与三个矩阵(WQ, WK, WV)相乘,得到查询(Q)、键(K)和值(V)矩阵。
    在这里插入图片描述

  2. 注意力得分计算:通过Q与K的点积计算词与词之间的匹配程度。
    在这里插入图片描述

  3. 特征分配:根据得分对V进行加权求和,得到每个词的最终特征表示。
    在这里插入图片描述

2. 多头注意力机制 multi-headed

通过多组注意力头,BERT能够从不同角度捕捉词与词之间的关系。例如:

  • 一个注意力头可能关注语法关系,另一个可能关注语义关系。
  • 最终将所有头的输出拼接并通过全连接层降维。
    在这里插入图片描述

3. 多层堆叠

BERT的核心是由多层Transformer编码器堆叠而成的深度神经网络结构:
在这里插入图片描述

4. 位置编码

Transformer本身不具备处理序列顺序的能力,因此BERT引入了三角函数位置编码:

  • 公式:
    在这里插入图片描述

pos:指当前字符在句子中的位置(如:”你好啊”,这句话里面“你”的pos=0),

dmodel:指的是word embedding的长度(例“民主”的word embedding为[1,2,3,4,5],则dmodel=5),

2i表示偶数,2i+1表示奇数。取值范围:i=0,1,…,dmodel−1。偶数使用公式,奇数时使用公式。

在这里插入图片描述
word embedding:是词向量,由每个词根据查表得到
pos embedding:就是位置编码。
composition:word embedding和pos embedding逐点相加得到,既包含 语义信息又包含位置编码信息的最终矩阵。

5. Add与Normalize

预训练完成后,BERT可以通过微调适应具体任务,如文本分类、命名实体识别、问答系统等。微调只需在预训练模型的基础上添加任务特定的输出层,并在目标数据集上进行训练。

6.outputs(shifted right)

在这里插入图片描述
outputs(shifted right):指在解码器处理过程中,将之前的输出序列向右移动一位,并在最左侧添加一个新的起始符(如 ‘SOS’ 或目标序列开始的特殊token)作为新的输入。这样做的目的是让解码器在生成下一个词时,能够考虑到已经生成的词序列。
作用:通过“shifted right”操作,解码器能够在生成每个词时,都基于之前已经生成的词序列进行推断。这样,解码器就能够逐步构建出完整的输出序列。

三、BERT的优势与影响

  • 解决RNN的局限性:RNN需要串行计算,训练时间长;BERT通过并行计算大幅提升效率。
  • Word2Vec的静态词向量:Word2Vec生成的词向量无法适应不同语境;BERT通过动态上下文编码解决这一问题。

四、总结

BERT通过双向Transformer架构和预训练任务,彻底改变了NLP领域的游戏规则。它不仅解决了传统模型的诸多局限,还为后续研究奠定了坚实基础。无论是学术研究还是工业应用,BERT都是当今NLP领域不可或缺的工具。

相关文章:

BERT框架:自然语言处理的革命性突破

引言 在自然语言处理(NLP)领域,2018年Google推出的BERT(Bidirectional Encoder Representations from Transformers)框架无疑是一场革命。作为基于Transformer架构的双向编码器表示模型,BERT通过预训练学习…...

基于FPGA控制电容阵列与最小反射算法的差分探头优化设计

在现代高速数字系统测试中,差分探头的信号完整性直接影响测量精度。传统探头存在阻抗失配导致的信号反射问题,本文提出一种通过FPGA动态控制电容阵列,结合最小反射算法的优化方案,可实时调整探头等效容抗,将信号反射损…...

珠宝课程小程序源码介绍

这款珠宝课程小程序源码,基于ThinkPHPFastAdminUniApp开发,功能丰富且实用。ThinkPHP提供稳定高效的后台服务,保障数据安全与处理速度;FastAdmin助力快速搭建管理后台,提升开发效率;UniApp则让小程序能多端…...

DAY33

简单的神经网络 PyTorch和cuda的安装 查看显卡信息的命令行命令(cmd中使用) cuda的检查 简单神经网络的流程 1.数据预处理(归一化、转换成张量) 2.模型的定义 1.继承nn.Module类 2.定…...

AI相关的笔记

推荐视频: https://www.bilibili.com/video/BV1aeLqzUE6L/?share_sourcecopy_web&vd_source3d0a14a267c9cbda8f2a6184dd8c564d AI Agent AI Agent(人工智能代理) AI Agent 是一种具备自主决策和执行能力的智能程序,能够像…...

Python训练营---Day33

知识点回顾: PyTorch和cuda的安装查看显卡信息的命令行命令(cmd中使用)cuda的检查简单神经网络的流程 数据预处理(归一化、转换成张量)模型的定义 继承nn.Module类定义每一个层定义前向传播流程 定义损失函数和优化器定…...

window 显示驱动开发-指定 GDI 硬件加速渲染操作

调用 DxgkDdiRenderKm 函数时,操作系统指定要通过 pRenderKmArgs 参数执行的 GDI 硬件加速呈现操作的类型。 DirectX 图形内核子系统的显示端口驱动程序 (Dxgkrnl.sys) 将 pRenderKmArgs-pCommand> 成员设置为指向包含可变大小DXGK_RENDERKM_COMMAND结构数组的命…...

什么是VR展馆?VR展馆的实用价值有哪些?

VR展馆,重塑展览体验。在数字化时代浪潮的推动下,传统的实体展馆经历前所未有的变革。作为变革的先锋,VR展馆以无限的潜力,成为展览行业的新宠。 VR展馆,即虚拟现实展馆,是基于VR(Virtual Real…...

uniapp实现H5、APP、微信小程序播放.m3u8监控视频

目录 1.APP播放.m3u8监控视频 2.H5播放.m3u8监控视频 3.微信小程序播放.m3u8监控视频 最近在写一个uniapp实现h5、app、微信小程序兼容三端的播放监控视频功能,我原本以为一套代码多处运行,但事实并非如此,h5可以运行,微信小程…...

CAD如何导出PDF?PDF如何转CAD?详细教程来了

浩辰CAD看图王是一款功能强大的CAD图纸查看与编辑工具,其核心功能之一便是支持CAD与PDF格式的互转。下面是CAD看图王输出PDF和PDF转CAD功能的详细介绍及操作步骤: 一、输出PDF功能 看图王可以将CAD图纸转换为PDF格式,是文件在不同的设备上显…...

微信小程序学习基础:从入门到精通

文章目录 第一章:微信小程序概述1.1 什么是微信小程序1.2 小程序与原生APP、H5的区别1.3 小程序的发展历程与现状 第二章:开发环境搭建2.1 注册小程序账号2.2 安装开发者工具2.3 开发者工具界面介绍2.4 第一个小程序项目 第三章:小程序框架与…...

[免费]微信小程序宠物医院管理系统(uni-app+SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的微信小程序宠物医院管理系统(uni-appSpringBoot后端Vue管理端),分享下哈。 项目视频演示 【免费】微信小程序宠物医院管理系统(uni-appSpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibi…...

乘最多水的容器 | 算法 | 给定一个整数数组。有n条垂线。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

在我们日常生活中,蓄水似乎是一个极为朴素的物理行为:两堵墙之间,注入水,看谁能装得更多。可如果换个角度,从算法的视角去看这个问题,它会变得怎样?你是否意识到,这样一个简单的问题…...

英伟达有意入股 PsiQuantum,释放战略转向量子计算的重要信号

内容来源:量子前哨(ID:Qforepost) 文丨浪味仙 排版丨浪味仙 行业动向:1800字丨5分钟阅读 “十五年太早,三十年又太晚,但如果说二十年,我想很多人都会相信。” emmmm&#xff0c…...

【Ubuntu修改串口延时(Latency Timer)为1毫秒(设备拔插或系统重启后自动生效)】

Ubuntu修改串口延时Latency Timer为1毫秒-设备拔插或系统重启后自动生效 在Ubuntu系统中,串口设备的延时参数(latency_timer)可以通过udev规则永久修改。以下是完整步骤: 创建udev规则文件 sudo vim /etc/udev/rules.d/99-ftdi-low-latency.rules添加以…...

《量子计算实战》PDF下载

内容简介 在加密、科学建模、制造物流、金融建模和人工智能等领域,量子计算可以极大提升解决问题的效率。量子系统正变得越来越强大,逐渐可用于生产环境。本书介绍了量子计算的思路与应用,在简要说明与量子相关的科学原理之后,指…...

Win 系统 conda 如何配置镜像源

通过命令添加镜像源(推荐) 以 清华源 为例,依次执行以下命令: # 添加主镜像源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main # 添加免费开源镜像源 conda config --add channels http…...

[密码学实战]使用C语言实现TCP服务端(二十九)

[密码学实战]使用C语言实现TCP服务端(二十九) 引言 TCP(传输控制协议)是互联网通信中最核心的协议之一,它提供可靠的、面向连接的数据传输服务。通过C语言的标准Socket API,开发者可以灵活地实现TCP客户端和服务端程序。本文将详细讲解TCP通信的原理,并提供完整的代码…...

打卡Day34

问题: 背景: 剩余时长 总时长 - 必须的计算时长(3秒)。记录间隔、记录次数和剩余时长的关系需要进一步分析。 数据观察: 当总epoch为20000时,不同记录间隔对应的记录次数和剩余时长如下: 记…...

谷歌开源医疗领域AI语言模型速递:medgemma-27b-text-it

一、模型概述 MedGemma 是由谷歌开发的一个医疗领域 AI 模型系列,基于 Gemma 3 架构,旨在加速医疗保健相关 AI 应用的开发。该模型系列包含两个主要变体:4B 多模态版本(支持文本和图像理解)以及 27B 纯文本版本&#…...

C++ JSON解析技术详解

一、JSON基础与解析流程 1.1 JSON数据结构 JSON包含两种核心结构(): ​​对象​​:{}包裹的键值对集合​​数组​​:[]包裹的值序列 1.2 解析流程 flowchart TDA[加载JSON数据] --> B{数据来源}B -->|字符串…...

多维应用场景的落地实践的智慧园区开源了

智慧园区场景视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界…...

第三次中医知识问答模型微调

本次参数 llamafactory-cli train \ --stage sft \ --do_train True \ --model_name_or_path /home/qhyz/zxy/LLaMA-Factory/model \ --preprocessing_num_workers 16 \ --finetuning_type lora \ --template deepseek3 \ --flash_attn fa2 \ --dataset_dir data \ --dataset …...

基于SpringBoot的美食分享平台设计与开发(Vue MySQL)

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…...

开闭原则 (Open/Closed Principle, OCP)

定义:一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展 问题由来:任何软件都需要面临一个很重要的问题,即它们的需求会随时间的推移而发生变化。因为变化,升级和维护等原因&…...

在 “Linux 9“ 系统快速安装配置RabbitMQ

这是在 “Linux 9” 系统(如 RHEL 9、AlmaLinux 9、Rocky Linux 9)上安装和配置 RabbitMQ 的中文指南。 前提条件: 你拥有 sudo 权限。你的系统已连接到互联网。firewalld 是你当前活动的防火墙(在基于 RHEL 的系统上很常见&…...

【brpc】安装与使用

brpc安装与使用 1. brpc是什么2. 安装3. 类与接口介绍3.1 日志输出类与接口3.2 protobuf 类与接口3.3 服务端类与接口3.4 客户端类与接口 4. 使用4.1 同步调用4.2 异步调用 1. brpc是什么 brpc 是用 c语言编写的工业级 RPC 框架,常用于搜索、存储、机器学习、广告、…...

C++:关联容器set容器,multiset容器

set与map不一样之处在于set的键值和时值是一样的&#xff0c;且个元素的值不能重复&#xff0c;容器会根据键的大小默认按升序排序&#xff0c;set底层也是红黑树。 multiset则允许键重复。 例如&#xff1a; #include<iostream> #include<set> using namespace…...

Java 调用 GitLab API

前言&#xff1a; 上一篇我们使用了 webhook 的方式获取用户提交代码的信息&#xff0c;本篇我简单分享一下使用 GitLab API 来获取用户提交代码的信息。 业务分析&#xff1a; 我们需要统计每一个用户的提交代码的信息&#xff0c;那 GitLab 是否有这样的接口呢&#xff1f…...

“智”斗秸秆焚烧,考拉悠然以科技之力筑牢生态安全防线

清晨&#xff0c;薄雾笼罩着辽阔的田野&#xff0c;农民们开始了一天的劳作。然而&#xff0c;随着收割季的到来&#xff0c;秸秆焚烧问题也逐渐浮现&#xff0c;成为威胁空气质量与生态安全的隐患。传统监管方式往往显得力不从心&#xff0c;效率低下的困境亟待突破。在此背景…...

数据库基础面试题(回答思路和面试建议)

以下是针对这些数据库基础问题的详细回答思路和面试回答建议&#xff0c;结合理论、应用场景和实际项目经验展开说明&#xff1a; 1. 数据库三大范式是什么&#xff1f;实际项目中是否需要严格遵循&#xff1f; 回答思路&#xff1a; 先解释三大范式&#xff08;逐层递进&…...

数据库blog5_数据库软件架构介绍(以Mysql为例)

&#x1f33f;软件的架构 &#x1f342;分类 软件架构总结为两种主要类型&#xff1a;一体式架构和分布式架构 ● 一体化架构 一体式架构是一种将所有功能集成到一个单一的、不可分割的应用程序中的架构模式。这种架构通常是一个大型的、复杂的单一应用程序&#xff0c;包含所…...

mysql可重复读隔离级别下的快照读和当前读

在MySQL的可重复读隔离级别下&#xff0c;快照读和当前读是两种不同的读取方式&#xff0c;它们的特点和应用场景有所不同。 快照读 定义&#xff1a;快照读是指在事务中读取数据时&#xff0c;读取的是事务开始时的历史版本数据&#xff0c;而非当前最新的数据。实现原理&…...

MySQL 单表与多表操作详解

&#x1f388;边走、边悟&#x1f388;迟早会好 目录 一、单表查询整合 &#xff08;一&#xff09;通用模板展示 &#xff08;二&#xff09;举例说明 1. 简单查询 2. 条件查询 3. 高级查询 &#xff08;三&#xff09;注意事项 &#xff08;四&#xff09;Mapper 简…...

Spring概念问题详解

一、Bean的生命周期 1.1 BeanDefinition Spring容器在进行实例化时&#xff0c;会将xml配置的<bean>的信息封装成一个BeanDefinition对象&#xff0c;Spring根据BeanDefinition来创建Bean对象&#xff0c;里面有很多的属性用来描述Bean。 beanClassName&#xff1a;be…...

使用pm2 部署react+nextjs项目到服务器

记录一下 next.config.js中&#xff1a; output: standalone,package.json配置&#xff1a; "scripts": {"dev": "cross-env NODE_OPTIONS--inspect next dev","build": "next build","start": "cp -r .nex…...

JVM常量池(class文件常量池,运行时常量池,字符串常量池)

文章目录 问题JVM运行时数据区JVM中的常量池Class文件常量池运行时常量池字符串常量池创建了几个对象String的定义intern()问题 超过1W字深度剖析JVM常量池&#xff08;全网最详细最有深度&#xff09; - 跟着Mic学架构 - 博客园 问题 jdk1.8之后 元空间是独立存在的&#xf…...

Java 大视界 -- 基于 Java 的大数据分布式存储在视频会议系统海量视频数据存储与回放中的应用(263)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

光谱相机在地质勘测中的应用

一、‌矿物识别与蚀变带分析‌ ‌光谱特征捕捉‌ 通过可见光至近红外&#xff08;400-1000nm&#xff09;的高光谱分辨率&#xff08;可达3.5nm&#xff09;&#xff0c;精确识别矿物的“光谱指纹”。例如&#xff1a; ‌铜矿‌&#xff1a;在400-500nm波段反射率显著低于围…...

深入解析Java泛型:从定义到实战应用

目录 &#x1f680;前言&#x1f914;泛型的定义&#x1f427;泛型类&#x1f31f;泛型接口✍️泛型方法、通配符、上下限&#x1f4af;泛型方法&#x1f4af; 通配符与上下限⚙️通配符&#xff08;Wildcard&#xff09;⚙️泛型上下限⚙️应用场景 &#x1f99c;泛型支持的类…...

数据结构:绪论之时间复杂度与空间复杂度

作者主页 失踪人口回归&#xff0c;陆续回三中。 开辟文章新专栏——数据结构&#xff0c;恳请各位大佬批评指正&#xff01; 文章目录 作者主页 数据结构的基本知识数据&#xff1a;数据元素&#xff1a;数据对象&#xff1a;数据类型&#xff1a;数据结构&#xff1a;逻辑结…...

ARM Linux远程调试

准备 虚拟机既能ping通开发板,又能ping通外网,还要能ping通Windows主机(如果你有上位机通信(tftp、vsftp、ssh)的需求) VMware 添加网络适配器2用作桥接网卡,原有的网络适配器保持为NAT模式 打开虚拟网络编辑器,配置VMnet0为桥接模式,外部连接设置为Realtek PCIe G…...

PostgreSQL 14 pacemaker 高可用集群

核心架构原理 集群组成&#xff08;典型三节点结构&#xff09;&#xff1a; [Node1] PostgreSQL Pacemaker Corosync pcsd [Node2] PostgreSQL Pacemaker Corosync pcsd [Node3] PostgreSQL Pacemaker Corosync pcsd ↕ ↕ ↕ ← Corosync 多…...

英语学习5.21

Far from sensible 表示“很不明智的”、“离明智相去甚远”。这是一个固定表达&#xff0c;结构是 far from adj.&#xff0c;意思是“根本不……”&#xff0c;常见例子&#xff1a; far from perfect&#xff08;远非完美&#xff09; far from acceptable&#xff08;远…...

实现了TCP的单向通信

1. 客户端代码:Client.java package com.xie.javase.net1;import java.io.*; import java.net.*;public class Client {public static void main(String[] args) {Socket socket = null;BufferedWriter bw = null;try {// 1. 获取本机IP地址对象InetAddress localHost = Inet…...

华为云Flexus+DeepSeek征文 | 基于ModelArts Studio和Cherry Studio快速构建午餐管家助手

目录 一、前言 二、ModelArts Studio&#xff08;MaaS&#xff09;介绍与应用场景 2.1ModelArts Studio&#xff08;MaaS&#xff09;介绍 2.2 ModelArts Studio&#xff08;MaaS&#xff09;使用场景 2.3 开通MaaS服务 2.4 开通DeepSeek-V3商用服务 三、Cherry Studio简介和安…...

Spring AI 1.0 GA 正式发布

Spring AI 1.0 GA 正式发布 快速入门核心特性1. **增强型 LLM&#xff08;大语言模型&#xff09;**2. **MCP 协议支持**3. **RAG&#xff08;检索增强生成&#xff09;**4. **评估与监控**5. **智能代理&#xff08;Agents&#xff09;** 下一步计划 VMware Spring 团队 Mark …...

【计算机网络 第8版】谢希仁编著 第五章运输层 题型总结1 UDP和TCP报文格式

UDP报文 5.13 这一题可以先问AI&#xff1a; 但是问了AI&#xff0c;肯定想知道&#xff1a;这些知识点在书上哪里&#xff1f;怎么这么难找&#xff1f; 没错这题主要是靠IP地址&#xff0c;所以应该在第四章。 P136 P137 省流&#xff1a; 1.UDP的首部格式是8个字节&…...

华为云Flexus+DeepSeek征文 | 基于ModelArts Studio 的 DeepSeek API 实现行业深度搜索和分析

目录 一、前言 二、ModelArts Studio&#xff08;MaaS&#xff09;介绍与应用场景 2.1ModelArts Studio&#xff08;MaaS&#xff09;介绍 2.2 ModelArts Studio&#xff08;MaaS&#xff09;使用场景 2.3 开通MaaS服务 2.4 开通DeepSeek-V3商用服务 三、Deep Research简介和安…...

计算机网络——Session、Cookie 和 Token

在 Web 开发中&#xff0c;Session、Cookie 和 Token 是实现用户会话管理和身份验证的核心技术。它们既有联系&#xff0c;也有明显区别。以下从定义、原理、联系、区别和应用场景等方面详细解析。 一、基本定义与原理 1. Cookie 定义&#xff1a; 是浏览器存储在客户端的小…...