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

【大模型】Bert

一、背景与起源

  • 上下文建模的局限:在 BERT 之前,诸如 Word2Vec、GloVe 等词向量方法只能给出静态的词表示;而基于单向或浅层双向 LSTM/Transformer 的语言模型(如 OpenAI GPT)只能捕捉文本从左到右(或右到左)的上下文信息。
  • 论文贡献:2018 年 Google 的 Devlin 等人提出 BERT,通过真正的“深度双向”Transformer 编码器,在大规模语料上同时从左右两个方向学习上下文,显著提升了各类 NLP 任务的基线性能。

二、核心架构

  1. Transformer Encoder

    • BERT 完全由多层 Transformer Encoder 组成,每层包括多头自注意力(Multi-Head Self-Attention)和前馈网络(Feed-Forward Network),并配以层归一化与残差连接。
    • 常见版本有
      • BERT-Base:12 层 Encoder、768 维隐藏层、12 个注意力头,约 1.1 亿参数;
      • BERT-Large:24 层 Encoder、1024 维隐藏层、16 个注意力头,约 3.4 亿参数。
  2. Embedding 层

    • Token Embeddings:子词(WordPiece)级别的初始向量;
    • Segment Embeddings:用于区分句子 A/B,在下游需要句间关系时有效;
    • Position Embeddings:表示序列中各 token 的位置;
    • 三者逐元素相加后,送入第一层 Encoder。
      在这里插入图片描述

三、输入表示

给定输入文本对 (Sentence A, Sentence B),BERT 构造如下序列:

[CLS] tokens_A [SEP] tokens_B [SEP]
  • [CLS]:分类标记,其最终层输出向量用于下游分类任务;
  • [SEP]:分隔符标记,标识句子边界;
  • Segment ID:句子 A 中所有 token 的 segment embedding 为 0,句子 B 中为 1;
  • Attention Mask:指示哪些位置是真实 token(1)或填充(0)。

四、预训练任务

BERT 的成功很大程度上来自于两个预训练目标的设计

  1. Masked Language Model (MLM)
    • 思路:随机遮蔽输入中 15% 的 token ([MASK]),让模型预测这些被遮蔽位置原本的词。
    • 细节
      • 遮蔽策略:80% 用 [MASK] 替换,10% 保留原词,10% 随机替换为词表中其他词;
      • 这样既避免模型过度依赖 [MASK],又能学习对真实 token 的预测能力。
  2. Next Sentence Prediction (NSP)
    • 思路:给定句子对,50% 概率为原序列中相邻的两句话(“IsNext”),50% 概率随机抽取另一段文字(“NotNext”);模型判别它们是否具有上下文连续关系。
    • 作用:为下游的问答、自然语言推理等任务提供句间关系判断能力。

五、模型微调(Fine-Tuning)

  • 通用流程

    1. 在预训练的 BERT 模型上,追加一个或多个任务相关的输出层(如分类头、回归头、序列标注头等);
    2. 以较小的学习率(如 2e-5–5e-5)在下游任务标注数据上继续训练整个网络;
    3. 最终得到一个在该任务上性能优异的专用模型。
  • 示例任务

    • 文本分类:取 [CLS] 对应的隐藏向量接一个全连接 + Softmax;
    • 命名实体识别:对每个 token 的输出向量接一个分类层,识别实体标签;
    • 问答阅读理解:为每个位置预测开始/结束概率,找到答案所在 span。

六、BERT 的优势与局限

优势

  1. 深度双向上下文:相比单向或浅层双向模型,在理解句子含义时更全面;
  2. 统一框架:一个预训练模型可微调到几十种不同任务,极大简化了模型部署;
  3. 强大基线:在 GLUE、SQuAD、MNLI 等多项公开基准上创纪录。

局限

  1. 计算与内存开销大:特别是 BERT-Large,在推理时对 GPU/TPU 资源要求高;
  2. 预训练目标简单:如 NSP 的效果有限,后续研究多选择取消或替换
  3. 固定长度限制:标准 BERT 的最大输入长度为 512,难以直接处理超长文本。

七、应用与生态

  • 下游生态
    自 BERT 发布以来,社区围绕预训练与微调构建了丰富工具与框架,例如 Hugging Face Transformers、TensorFlow Hub 等,用户可以方便地加载各类 BERT 模型及其变种。

  • 行业应用
    包括智能客服中的意图识别与槽位填充、搜索引擎中的语义匹配、法律/医药领域的文档分类与信息抽取等。

http://www.xdnf.cn/news/9706.html

相关文章:

  • 计算机网络 | 1.1 计算机网络概述思维导图
  • Nginx代理、缓存与Rewrite
  • 使用LSTM进行时间序列分析
  • 流程自动化引擎:让业务自己奔跑
  • C++031(变量的存储类型-auto变量)
  • 塔能空化泵节能方案:工厂能耗精准控制的革新之选
  • 博图SCL基础知识-寻址调用及新建SCL
  • 记一次前端逻辑绕过登录到内网挖掘
  • 计算机内存管理全解析:从基础原理到前沿技术(含分页/分段/置换算法/大页/NVM/CXL等技术详解
  • C++ explicit关键字有什么作用
  • Dify+MCP Server打造禅道AI智能助手
  • LeetCode 136:只出现一次的数字 - 巧用异或运算的极致解法
  • Open3D上可视化Nuscenes 数据集
  • 谷歌浏览器Google Chrome v137.0.7151.41 中文版本版+插件 v1.11.1
  • 【Echarts】象形图
  • : influxdb + grafana+JMeter
  • 自回归建模模型(AR)
  • C++进阶--C++11(03)
  • 一种字典树的Python实现
  • 什么是数字化转型,如何系统性重构业务逻辑
  • Android 构建系统中常见的 .mk 文件及其作用
  • 涨薪技术|0到1学会性能测试第88课-Web_service_call函数
  • Spring AI Alibaba 发布企业级 MCP 分布式部署方案
  • LeetCode 169:多数元素 - 摩尔投票法的精妙解法
  • 【freertos-kernel】queue(发送)
  • # Python 语音助手本地的ollama实现
  • nt!MmMapViewInSystemCache函数分析PointerPte的填充
  • AD/DA HAL库API
  • 内容中台的构建基础是什么?
  • King3399(ubuntu文件系统)iic(i2c)功能测试