文章目录

  • BERT的训练过程与推理过程
    • 一、预训练过程:学习通用语言表示
      • 1. 数据准备
      • 2. MLM任务训练(核心)
      • 3. NSP任务训练
      • 4. 预训练优化
    • 二、微调过程:适配下游任务
      • 1. 任务定义与数据
      • 2. 输入处理
      • 3. 模型结构调整
      • 4. 微调训练
    • 三、推理过程:对新数据预测
      • 1. 推理输入预处理
      • 2. 模型前向传播
      • 3. 输出预测结果
    • 四、训练与推理的核心区别
    • 五、总结

BERT的训练过程与推理过程

BERT的核心流程分为预训练(无监督学习通用语言知识)和微调(监督学习适配下游任务),而推理则是基于微调后的模型对新数据进行预测。以下结合具体实例详细说明。

一、预训练过程:学习通用语言表示

预训练是BERT的“筑基阶段”,通过无标注文本学习语言规律,核心任务为Masked Language Model(MLM)Next Sentence Prediction(NSP)

1. 数据准备

  • 语料来源:大规模无标注文本(如BooksCorpus、Wikipedia),示例文本片段:
    “自然语言处理是人工智能的重要分支。它研究计算机与人类语言的交互。”
  • 预处理步骤
    1. 分词:用WordPiece分词工具拆分文本为子词(Subword)。例如“人工智能”→“人工”+“智能”;“交互”→“交”+“互”。
    2. 构造输入序列:对单句或句子对添加特殊符号,最长长度限制为512 Token。
      • 单句格式:[CLS] 自然 语言 处理 是 人工 智能 的 重要 分支 。 [SEP]
      • 句子对格式:[CLS] 自然 语言 处理 是 人工智能 的 重要 分支 。 [SEP] 它 研究 计算机 与 人类 语言 的 交互 。 [SEP]

2. MLM任务训练(核心)

目标:随机掩盖部分Token,让模型预测被掩盖的Token,强制学习双向上下文。

  • 具体操作
    从输入序列中随机选择15%的Token进行处理:
    • 80%概率替换为[MASK]
      原序列:[CLS] 自然 语言 处理 是 人工 智能 的 重要 分支 。 [SEP]
      处理后:[CLS] 自然 [MASK] 处理 是 人工 智能 的 [MASK] 分支 。 [SEP]
      (需预测被掩盖的“语言”和“重要”)
    • 10%概率替换为随机Token:
      处理后:[CLS] 自然 图像 处理 是 人工 智能 的 重要 分支 。 [SEP]
      (“语言”被随机替换为“图像”,模型需识别错误并预测正确Token)
    • 10%概率不替换(保持原Token):
      处理后:[CLS] 自然 语言 处理 是 人工 智能 的 重要 分支 。 [SEP]
      (模型需“假装”不知道哪些Token被掩盖,避免依赖[MASK]符号)
  • 损失计算:对被掩盖的Token,通过输出层的Softmax计算预测概率,用交叉熵损失优化模型,让预测值接近真实Token。

3. NSP任务训练

目标:让模型学习句子间的逻辑关系,判断句子对是否连续。

  • 具体操作
    构造句子对(A, B),50%为真实连续句(正例),50%为随机拼接句(负例):
    • 正例:A=“自然语言处理是人工智能的重要分支。”,B=“它研究计算机与人类语言的交互。”(B是A的下一句)。
    • 负例:A=“自然语言处理是人工智能的重要分支。”,B=“猫是一种常见的家养宠物。”(B与A无关)。
      输入序列格式:[CLS] A [SEP] B [SEP],并添加Segment Embedding(A部分为0,B部分为1)。
  • 损失计算:通过[CLS]Token的输出向量接二分类层,用交叉熵损失优化模型,区分正例(标签1)和负例(标签0)。

4. 预训练优化

  • 训练配置:BERT-Base使用12层Transformer,批量大小256,训练步数100万,优化器为Adam(学习率5e-5,β1=0.9,β2=0.999)。
  • 正则化:每层加入Dropout(概率0.1),防止过拟合;使用层归一化稳定训练。
  • 硬件支持:需大规模GPU集群(如16块TPU,训练约4天),通过梯度累积处理大批次数据。

二、微调过程:适配下游任务

预训练完成后,模型已具备通用语言理解能力,微调阶段需针对具体任务(如情感分析、问答)调整输出层并优化参数。以下以情感分析任务(判断文本为“正面”或“负面”)为例说明。

1. 任务定义与数据

  • 任务目标:输入文本(如“这部电影剧情紧凑,演员演技出色!”),输出情感标签(正面/负面)。
  • 微调数据:带标签的情感语料,示例:
    文本标签
    “这部电影剧情紧凑,演员演技出色!”正面
    “画面模糊,音效刺耳,不推荐观看。”负面

2. 输入处理

  • 单句输入格式:[CLS] 这 部 电影 剧情 紧凑 , 演员 演技 出色 ! [SEP]
  • 嵌入向量构造:同预训练,包含Token Embedding(子词向量)、Segment Embedding(全为0,因单句)、Position Embedding(位置编码)。

3. 模型结构调整

  • 复用预训练的Transformer编码器,仅在输出层添加分类头
    [CLS]Token经过12层Transformer后的输出向量(768维),接入全连接层+Softmax,输出“正面”“负面”的概率。
    即:P(正面/负面)=Softmax(W⋅H[CLS]+b)P(正面/负面) = Softmax(W \cdot H_{[CLS]} + b)P(正面/负面)=Softmax(WH[CLS]+b),其中H[CLS]H_{[CLS]}H[CLS][CLS]的最终向量,WWWbbb是微调阶段待学习的参数。

4. 微调训练

  • 参数设置:冻结部分底层Transformer参数(或微调所有参数),学习率设为2e-5(低于预训练,避免破坏预训练知识),批量大小32,训练轮次3-5轮。
  • 损失计算:对每个样本,用交叉熵损失计算预测概率与真实标签的差异,通过反向传播更新分类头和少量Transformer参数。
  • 早停策略:用验证集监控性能,若连续多轮无提升则停止训练,防止过拟合。

三、推理过程:对新数据预测

微调完成后,模型可对未标注的新文本进行情感预测,推理过程即模型的前向传播计算。

1. 推理输入预处理

  • 输入新文本:“这部电影的特效震撼,剧情感人至深。”
  • 分词与格式转换:
    分词后:[CLS] 这 部 电影 的 特效 震撼 , 剧情 感人 至 深 。 [SEP]
    转换为嵌入向量:Token Embedding + Segment Embedding(全0) + Position Embedding。

2. 模型前向传播

  • 嵌入向量输入12层Transformer编码器:
    每层通过多头自注意力捕捉Token间关联(如“特效”与“震撼”、“剧情”与“感人”的语义强化),前馈网络进行非线性变换,最终输出每个Token的上下文向量。
  • 提取[CLS]向量:H_{[CLS]}(768维)聚合了整个句子的情感语义。

3. 输出预测结果

  • H_{[CLS]}输入分类头,计算概率:
    P(正面)=0.92P(正面) = 0.92P(正面)=0.92P(负面)=0.08P(负面) = 0.08P(负面)=0.08
  • 决策:取概率最高的标签,输出“正面”。

四、训练与推理的核心区别

维度预训练过程微调过程推理过程
数据类型无标注文本(大规模)有标注任务数据(小规模)无标注新文本(单条/批量)
目标学习通用语言规律(MLM+NSP)适配具体任务(如情感分类)输出新数据的预测结果
参数更新全量参数优化(数百万步)少量参数微调(数轮)无参数更新(仅前向传播)
计算复杂度极高(需大规模算力)中等(单GPU可完成)低(实时响应)

五、总结

BERT的训练过程通过“预训练筑基+微调适配”实现知识迁移:预训练用无监督任务从海量文本中学习语言本质,微调则用少量标注数据将通用知识转化为任务能力;而推理则是微调后模型对新数据的高效预测。这种模式大幅降低了NLP任务的落地门槛,成为现代自然语言处理的核心范式。

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

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

相关文章

[TryHackMe]Challenges---Game Zone游戏区

这个房间将涵盖 SQLi(手动利用此漏洞和通过 SQLMap),破解用户的哈希密码,使用 SSH 隧道揭示隐藏服务,以及使用 metasploit payload 获取 root 权限。 1.通过SQL注入获得访问权限 手工注入 输入用户名 尝试使用SQL注入…

北京JAVA基础面试30天打卡09

1.MySQL存储引擎及区别特性MyISAMMemoryInnoDBB 树索引✅ Yes✅ Yes✅ Yes备份 / 按时间点恢复✅ Yes✅ Yes✅ Yes集群数据库支持❌ No❌ No❌ No聚簇索引❌ No❌ No✅ Yes压缩数据✅ Yes❌ No✅ Yes数据缓存❌ NoN/A✅ Yes加密数据✅ Yes✅ Yes✅ Yes外键支持❌ No❌ No✅ Yes…

AI时代的SD-WAN异地组网如何落地?

在全球化运营与数字化转型浪潮下,企业分支机构、数据中心与云服务的跨地域互联需求激增。传统专线因成本高昂、部署缓慢、灵活性差等问题日益凸显不足。SD-WAN以其智能化调度、显著降本、敏捷部署和云网融合的核心优势,成为实现高效、可靠、安全异地组网…

css中的color-mix()函数

color-mix() 是 CSS 颜色模块(CSS Color Module Level 5)中引入的一个强大的颜色混合函数,用于在指定的颜色空间中混合两种或多种颜色,生成新的颜色值。它解决了传统颜色混合(如通过透明度叠加)在视觉一致性…

Github desktop介绍(GitHub官方推出的一款图形化桌面工具,旨在简化Git和GitHub的使用流程)

文章目录**1. 简化 Git 操作****2. 代码版本控制****3. 团队协作****4. 代码托管与共享****5. 集成与扩展****6. 跨平台支持****7. 适合的使用场景****总结**GitHub Desktop 是 GitHub 官方推出的一款图形化桌面工具,旨在简化 Git 和 GitHub 的使用流程,…

整数规划-分支定界

内容来自:b站数学建模老哥 如:3.4,先找小于3的,再找大于4的 逐个

JetPack系列教程(六):Paging——让分页加载不再“秃”然

前言 在Android开发的世界里,分页加载就像是一场永无止境的马拉松,每次滚动到底部,都仿佛在提醒你:“嘿,朋友,还有更多数据等着你呢!”但别担心,Google大佬们早就看透了我们的烦恼&a…

扎实基础!深入理解Spring框架,解锁Java开发新境界

大家好,今天想和大家聊聊Java开发路上绕不开的一个重要基石——Spring框架。很多朋友在接触SpringBoot、SpringCloud这些现代化开发工具时,常常会感到吃力。究其原因,往往是对其底层的Spring核心机制理解不够透彻。Spring是构建这些高效框架的…

Heterophily-aware Representation Learning on Heterogeneous Graphs

Heterophily-Aware Representation Learning on Heterogeneous Graphs (TPAMI 2025) 计算机科学 1区 I:18.6 top期刊 📌 摘要 现实世界中的图结构通常非常复杂,不仅具有全局结构上的异质性,还表现出局部邻域内的强异质相似性(heterophily)。虽然越来越多的研究揭示了图…

计算机视觉(7)-纯视觉方案实现端到端轨迹规划(思路梳理)

基于纯视觉方案实现端到端轨迹规划,需融合开源模型、自有数据及系统工程优化。以下提供一套从模型选型到部署落地的完整方案,结合前沿开源技术与工业实践: 一、开源模型选型与组合策略 1. 感知-预测一体化模型 ViP3D(清华&#…

Nginx 屏蔽服务器名称与版本信息(源码级修改)

Nginx 屏蔽服务器名称与版本信息(源码级修改) 一、背景与目的 在生产环境部署 Nginx 时,默认配置会在 Server 响应头中暴露服务类型(如 nginx)和版本号(如 nginx/1.25.4)。这些信息可能被攻击者…

从钢板内部应力视角,重新认识护栏板矫平机

一、为什么钢板会“自带波浪”? 钢卷在热轧后冷却、卷取、长途运输、多次吊运时,不同部位受到的温度、张力、碰撞并不一致,内部会产生不均匀的残余应力。应力大的区域想“伸长”,应力小的区域想“缩短”,宏观上就表现为…

C++中的`auto`与`std::any`:功能、区别与选择建议

引言 在C编程中,auto和std::any是两个功能强大但用途不同的工具。理解它们的区别和适用场景对于编写高效、可维护的代码至关重要。本文将详细介绍auto和std::any的基本概念、使用方法、适用场景以及它们之间的区别,并提供选择建议,帮助开发者…

【Linux】进程(Process)

一、什么是进程二、进程的创建三、进程的状态四、僵尸进程五、孤儿进程六、进程的优先级 以及 并发/并行七、进程的切换一、什么是进程?什么是进程呢(一)?官方话来说:进程是一个执行实例、正在执行的程序、是系统资源分配的基本单位按课本官方话可能有一…

销售管理系统哪个好?14款软件深度对比

本文将深入对比14款销售管理系统:1.纷享销客; 2.Zoho CRM; 3.神州云动 CRM; 4.励销云 CRM; 5.Microsoft Dynamics 365 CRM; 6.悟空 CRM; 7.泛微 CRM; 8.HubSpot CRM; 9.…

如何从 0 到 1 开发企业级 AI 应用:步骤、框架与技巧

本文来自作者 莫尔索 的 企业级 AI 应用开发与最佳实践指南, 欢迎阅读原文。 大家好,我之前出版的《LangChain 编程:从入门到实践》一书获得了良好的市场反响和读者认可。近期推出了第二版,我对内容进行了大幅更新:近 …

【LLM】Openai之gpt-oss模型和GPT5模型

note gpt-oss模型代理能力:使用模型的原生功能进行函数调用、网页浏览(https://github.com/openai/gpt-oss/tree/main?tabreadme-ov-file#browser)、Python 代码执行(https://github.com/openai/gpt-oss/tree/main?tabreadme-o…

Ubuntu 20.04 虚拟机安装完整教程:从 VMware 到 VMware Tools

目录 一、VMware的安装 1. 资源获取 1. 网盘提取 2. VMware官网,选择自己合适的版本,我下载的是16.2版本 2.安装步骤 二、Ubuntu的安装 1. Ubuntu 镜像文件官网下载 2. Ubuntu的安装步骤 第一步:打开刚刚安装好的VMware16.2.0&#…

【DL】最优化理论和深度学习

最优化理论是计算机科学中一个重要的概念,它用于帮助我们找到最优解(即最小或最大值)的算法。在深度学习中,最优化理论用于帮助深度学习模型找到最优解。训练误差(Training Error):指模型在训练…

商品分类拖拽排序设计

商品分类、菜单项以及其他需要排序的元素常常会用到拖拽排序功能。这个看似简单的交互背后,其实涉及到一系列复杂的后端逻辑处理,尤其是在如何高效地更新数据库记录方面。本文将探讨两种常见的实现方案,并分析各自的优缺点,帮助你…