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

Bert模型

一、定义

只用做 Transformer 架构的编码器(Encoder)堆叠多层,训练出一个懂文本语言的通用特征提取器

二、BERT 机制

1.双向注意力(Bidirectional Attention)

①定义

普通 RNN/LSTM 只能从左到右看一句,BERT 可以同时看一句话的左右两边

双向= 每个位置可以关注:左边所有词 + 右边所有词(一句话内)

也就是:上下文 full context,无任何未来遮挡。

例如:

句子:“我喜欢吃苹果,因为它很甜。”

BERT 看 “苹果” 时:

  • 左边:喜欢吃
  • 右边:很甜
  • 同时理解,真正双向注意力

②标准自注意力公式(也即双向注意力公式)

  • Q:查询(当前词)
  • K:键(所有词)
  • V:值(所有词)
  • 无 mask!

2.多头注意力(Multi-Head)

BERT 注意力是多头并行

  • 每一头都是完整双向注意力
  • 每头学习不同语义关系:主谓、指代、上下文关联…
  • 最后拼接输出

三、BERT 预训练任务

任务:

模型的任务 = 看【最后一层输出 + 损失函数】怎么定义,同一个模型结构,只要改最后输出层和损失,任务完全变掉。

1.Bert模型

Bert 模型主体完全不动,只改最后一层:

① 输出:每个 token 预测原词 + 交叉熵损失

MLM 任务(掩码语言模型)

② 输出:CLS 向量二分类(IsNext/NotNext)+ 交叉熵

NSP 任务(下一句预测)

③ 输出:CLS 向量二分类(积极 / 消极)

情感分析任务

④ 输出:每个 token 分类(B/I/O)

NER 命名实体识别

⑤ 输出:每个 token 做分类(起止位置)

阅读理解问答任务

2. 再看 GPT

GPT 结构(Decoder)本身也不是生成模型只是因为它最后输出 “下一个词概率”+ 自回归损失才变成生成模型

1. MLM(Masked Language Model)掩码语言模型

随机遮住 15% 的词,让模型去猜。

例子:“我喜欢吃 [MASK],因为它很甜。”模型要猜:是苹果?香蕉?还是橘子?

目的:让模型学会双向上下文推理。

2. NSP(Next Sentence Prediction)下句预测

给模型两句话,判断是不是同一段文章的连续两句,输出:是 / 不是(二分类)。

目的:让模型学会段落级别的逻辑关系。

四、BERT 的输入

  1. Token Embedding词向量
  2. Segment Embedding句子编号向量(A 或 B)
  3. Positional Encoding位置向量

BERT 的输入向量,是由三种 Embedding 直接相加得到的:

[CLS] 和 [SEP] 作用?

[CLS]分类专用 token.

最后一层 [CLS] 代表整个句子的语义向量

[SEP]句子分隔符 + 注意力边界

句间隔离,不让两句词互相看见

五、Bert预训练流程

以下列图片为例

1.分词

将 “商将务大床房”拆成单个汉字"商 务 大 床 房"。这是 BERT 的中文分词方式:按单个字 / 词切分(也可以是词粒度,但中文 BERT 通常用字粒度)。

注意:

  • 实际 BERT 分词器还会加上特殊符号商 务 大 床 房商 务 大 床 房
  • 最终序列是:[CLS] 商 务 大 床 房 [SEP]

2.生成标准输入向量

1.input_ids:词表索引

(101, 2112, 555, 2315, 13145, 32141, 102)
  • 每个数字代表该 token 在词表中的索引
  • 101[CLS]的 ID,102[SEP]的 ID
  • 后续模型会通过这些 ID,在嵌入层查表得到词向量

2.mask:注意力掩码

(1,1,1,1,1,1,1, 0,0,0,0,0,0,0,0,......)
  • 1代表真实 token,模型需要处理
  • 0代表 padding(填充的无效 token),模型会忽略
  • 作用:让所有输入序列长度一致,不影响注意力计算

3.seq_ids(segment_ids):句子标记

(0,0,0,0,0,0,0,0 ........................)
  • 标记每个 token 属于哪个句子(0代表第一句,1代表第二句)
  • 这张图是单句输入,所以全是0
  • 如果是句子对任务(如问答),第一句标0,第二句标1

3.Embedding 嵌入

根据标准输入向量得到3种Embedding:

Token Embedding(词嵌入)———— input_ids

Segment Embedding(句子嵌入)———— seq_ids

Position Embedding(位置嵌入)————pos_ids

BERT 把这三种向量直接相加,得到每个 token 的最终输入向量:

嵌入的实际操作:

input_ids,seq_ids,pos_ids 各自通过一次全连接,输出维度为768的向量

4.多头自注意力(Multi-Head Attention)

1.输入向量 Embeedding 经过3个分别的全连接线性变换,得到Query(Q)、Key(K)、Value(V)

2.计算多头注意力:

  • 把 Q/K/V 分成多个头
  • 每个头独立计算注意力,再拼接起来

3.输出的向量维度和输入保持一致,还是768

5.Add & Norm(残差连接与层归一化,第1次)

1.Add(残差连接):把「多头注意力的输出」和「原始输入向量」直接相加

2.Norm(层归一化):对相加后的结果做层归一化,稳定分布

结果:输出的向量维度和输入保持一致,还是768,作为下一层(前馈网络)的输入

6.前馈神经网络(Feed Forward)

这是一个两层的全连接网络 Linear,BERT 里的标准结构是:

  1. 第一层:Linear(768 → 3072),然后加激活函数(GELU)
  2. 第二层:Linear(3072 → 768),恢复维度

作用:对每个位置的向量做非线性变换提取更复杂的语义特征

7.Add & Norm(残差连接与层归一化,第2次)

  1. Add:把「前馈网络的输出」和「前馈网络的输入」直接相加
  2. Norm:对相加后的结果做层归一化,稳定分布
  3. 输出的向量维度和输入保持一致,还是768,传给 BERT 的下一层(或者传给Pooler output层)

8.Pooler output

1.取最后一层[CLS]token 的 hidden state

也就是从 BERT 输出的最终向量里,只拿出每句话的第 0 个位置 = [CLS]。即每句话开头的[CLS] 768维向量【以BERT-base 的 768 为例】

为什么要拿[CLS] 768 维向量

因为[CLS] 经过了全部 12 层双向注意力它融合了整句话所有词的信息所以可以当作句子的总代表向量

2.拿到 [CLS] 768 维向量后通过一个全连接层(Linear)+ Tanh 激活

公式:pooler_output=tanh(W⋅CLS_hidden+b)

  • 输入维度:hidden_size(BERT-base 是 768)
  • 输出维度:和输入一样,也是 768
  • 作用:[CLS]的向量,映射成一个 “句子级的向量表示”

9.输出给解码器

http://www.cnnetsun.cn/news/1695690.html

相关文章:

  • 从“炼金术”到“建筑学”:深度学习结构设计的五大范式
  • Go的runtime.GOMAXPROCS:设置最大CPU核心数
  • 零基础新手如何用快马AI一键生成9·1免费版安装教程网站
  • eNSP第三次作业
  • Vibe Coding 有哪些实用技巧?这篇文章讲透工作流、提示词和避坑方法
  • JL杰理AC696N开发板PWM波形生成与控制(1):频率、占空比
  • new AbortController()
  • React生态学习路线
  • 【skill-creator 】技术解析:Claude Code 元技能系统的设计原理与核心特点
  • 终极指南:如何使用novel-downloader构建你的个人小说离线图书馆
  • AP和CP区别
  • error: passing ‘const CameraRuntime’ as ‘this’ argument discards qualifiers [-fpermissive]
  • 跨境支付风控难?查IP归属地如何识别交易风险与合规隐患
  • BooruDatasetTagManager架构解析:构建高效AI训练数据集标签管理系统的设计哲学与实践
  • 常用芯片引脚图,原理图
  • claude skill 官方评测方式解读
  • 告别低效搜索:GitHub宕机时,用快马AI快速生成效率工具代码
  • Product Hunt 每日热榜 | 2026-04-04
  • 2026年6款AI驱动的人力系统测评:谁更适合科技企业
  • MouseClick:解放双手的跨平台鼠标自动化神器,告别重复点击的烦恼
  • 2025届最火的五大降重复率平台解析与推荐
  • 深度解析ComfyUI-Easy-Use中Flux采样器Guidance参数的技术实现与优化策略
  • ANSYS焊接与增材制造仿真专题:温度场、应力场及热应力分析实例详解(附APDL代码)
  • 2026全网首发:Claude Code 终端智能体系统底层架构拆解(附3万字PDF白皮书)
  • 中医诊疗智能化革命:仲景大语言模型如何重塑传统医学知识传承
  • 【工业互联网合集】300余份工业互联网大脑、工业互联网平台、工业互联网体系、工业互联网平台、工业互联网应用方案资料合集(PPT+WORD)
  • APK状态检测工具
  • Autodesk全系列产品许
  • Qwen3语义搜索快速上手:自定义知识库,实时查询结果
  • spring-ai 第一步集成入门