BERT:让AI真正“读懂”语言的革命

BERT:让AI真正“读懂”语言的革命

——图解谷歌神作《BERT: Pre-training of Deep Bidirectional Transformers》

2018年,谷歌AI团队扔出一篇核弹级论文,引爆了整个NLP领域。这个叫BERT的模型在11项任务中屠榜,甚至超越人类表现!它背后的秘密是什么?本文将用最通俗的方式揭秘它的工作原理。


一、传统AI的致命缺陷:单向理解

想象你教AI完形填空:

“小明买了__去北京。”

  • 旧方法(GPT):只能从左向右看 → “买了__”
    可能猜:”车票“(但正确答案可能是”机票“或”高铁票“)
  • 人类思维:同时看左右上下文 → ”去北京“暗示需长途交通工具

BERT的突破在于:首次让模型同时看到整个句子,像人类一样双向理解语境!


二、BERT核心设计:双向Transformer

1. 模型架构(简单版)
输入句子 → [Transformer编码器] x 12/24层 → 输出每个词的深度表示
  • 抛弃解码器:只保留Transformer的编码器部分
  • 堆叠多层:12层(BERT-Base)或24层(BERT-Large),每层学习不同抽象特征
2. 输入处理:三合一嵌入

BERT将每个词转换为包含三种信息的向量:

[词嵌入] + [段落嵌入] + [位置嵌入]

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
▲ 例如:区分“银行”在“河岸”vs“存款”的不同含义(图源:Jay Alammar)


三、预训练:让AI博览群书

BERT通过两个自监督任务学习语言本质:

任务1:掩码语言模型(MLM)

随机遮盖15%的词,让AI预测:

“人工智能[MASK]改变世界。” → 答案应为“将”

关键技巧

  • 80%用[MASK]替换
  • 10%换随机词(如“人工智能改变世界”)
  • 10%保留原词 → 强迫模型深度分析语境
任务2:下一句预测(NSP)

判断两句话是否连续:

输入A:”猫在沙发上睡觉“
输入B:”它梦见抓老鼠“ → 连续(标签=IsNext)
输入B:”火箭发射升空“ → 不连续(标签=NotNext)

作用:学习句子间逻辑关系(对问答/推理任务至关重要)


四、微调:快速适配具体任务

预训练后的BERT已成为“语言通才”,通过简单改造就能解决不同任务:

任务类型改造方式实例
文本分类[CLS]对应输出接分类层情感分析
问答任务输出答案起止位置概率SQuAD数据集
序列标注每个词输出接标签分类层命名实体识别(NER)
句子关系判断输入两个句子用[SEP]分隔文本蕴含推理

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
▲ BERT的变形金刚能力(图源:Chris McCormick)


五、为什么BERT如此强大?

1. 上下文双向感知

旧模型: ”苹果股价上涨,因为它发布了新__“ → 可能填”产品“
BERT: ”苹果股价上涨,因为它发布了新__“ → 看到”股价“填”财报“

2. 迁移学习范式
  • 预训练:用海量无标签数据(维基百科+图书语料)学习通用语言知识
  • 微调:用少量标注数据快速适配下游任务(训练速度提升100倍!)
3. 注意力机制

每个词都与其他词建立连接权重:

"银行"的注意力: [存款:0.7, 账户:0.2, 河流:0.05, ...]  

自动聚焦关键信息,解决长距离依赖问题。


六、BERT的影响:NLP的工业革命

里程碑成果
  • GLUE基准:得分提升7.6% (80.4% → 88.0%)
  • SQuAD 2.0:F1分数首次超越人类(90.9% vs 89.0%)
  • 引爆大模型时代:直接催生GPT-3、T5等千亿级模型
典型应用场景
智能搜索
语义匹配
客服机器人
意图识别
医疗文本
疾病实体抽取
金融舆情
情感分析

七、动手体验BERT

使用Hugging Face库3行代码调用BERT:

from transformers import pipeline
classifier = pipeline('fill-mask', model='bert-base-uncased')
print(classifier("Artificial Intelligence [MASK] change the world."))
# 输出:[{'token_str': 'will', 'score': 0.89}, ...]

在线体验:BERT Playground


结语
BERT的成功证明:通过大规模预训练+简单微调,AI能真正理解语言本质。它像给机器安装了“语言大脑”,使NLP从手工作坊进入工业化时代。正如论文作者所说:

“BERT为所有人提供了强大的NLP基础模型,
就像计算机视觉领域的ImageNet预训练模型一样。”

如今,尽管更大模型层出不穷,BERT仍是工业界部署最广泛的NLP引擎——它当之无愧地重塑了人工智能的语言理解能力。

论文:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
开源代码:Google Research GitHub

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

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

相关文章

爬虫入门:从基础到实战全攻略

🧠 一、爬虫基础概念 1.1 爬虫定义 爬虫(Web Crawler)是模拟浏览器行为,自动向服务器发送请求并获取响应数据的一种程序。主要用于从网页中提取结构化数据,供后续分析、展示或存储使用。 1.2 爬虫特点 数据碎片化&…

uni-app学习笔记二十一--pages.json中tabBar设置底部菜单项和图标

如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定一级导航栏,以及 tab 切换时显示的对应页。 在 pages.json 中提供 tabBar 配置,不仅仅是为了方便快速开发导航,更重要的是在App和小程序端提升性能。在这两个平台&#xff…

行业分析---小米汽车2025第一季度财报

1 背景 最近几年是新能源汽车的淘汰赛,前短时间比亚迪再次开始了降价,导致一片上市车企的股价大跌,足见车圈现在的敏感度。因此笔者会一直跟踪新势力车企的财报状况,对之前财报分析感兴趣的读者朋友可以参考以下博客:…

Python 解释器安装全攻略(适用于 Linux / Windows / macOS)

目录 一、Windows安装Python解释器1.1 下载并安装Python解释1.2 测试安装是否成功1.3 设置pip的国内镜像------永久配置 二、macOS安装Python解释器三、Linux下安装Python解释器3.1 Rocky8.10/Rocky9.5安装Python解释器3.2 Ubuntu2204/Ubuntu2404安装Python解释器3.3 设置pip的…

考研系列—操作系统:冲刺笔记(1-3章)

目录 第一章 计算机系统概述 1.基本概念 2.内核态和用户态 3.中断(外中断)、异常(内中断-与当前执行的) 4.系统调用 5.操作系统引导程序 2021年真题: 6.操作系统结构 大纲新增 (1)分层结构 (2)模块化 (3)外核 7.虚拟机 第二章 进程管理 1.画作业运行的顺序和甘…

监控 100 台服务器磁盘内存CPU利用率

监控 100 台服务器磁盘,内存,CPU利用率脚本 以下是一个优化后的监控脚本,用于同时监控100台服务器的磁盘、内存和CPU利用率,并支持并发执行以提高效率: #!/bin/bash # 服务器监控脚本 - 支持并发获取100台服务器系统指标 # 功能…

[5-02-04].第01节:Jmeter环境搭建:

JMeter笔记大纲 Jmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量 一、JMeter概述: 1.1.JMeter是什么: JMeter是Appache组织使用java开发的一款测试工具 可以用于对服务器、网络或对象模拟巨大的负载…

【兽医处方专用软件】佳易王兽医电子处方软件:高效智能的宠物诊疗管理方案

一、软件概述与核心优势 (一)试用版获取方式 资源下载路径:进入博主头像主页第一篇文章末尾,点击卡片按钮;或访问左上角博客主页,通过右侧按钮获取详细资料。 说明:下载文件为压缩包&#xff…

MapReduce(期末速成版)

起初在B站看3分钟的速成视频,感觉很多细节没听懂。 具体例子解析(文件内容去重) 对于两个输入文件,即文件A 和文件B,请编写MapReduce 程序,对两个文件进行合并,并剔除 其中重复的内容,得到一个新的输出文件…

Java高级 | 【实验四】Springboot 获取前端数据与返回Json数据

隶属文章: Java高级 | (二十二)Java常用类库-CSDN博客 系列文章: Java高级 | 【实验一】Spring Boot安装及测试 最新-CSDN博客 Java高级 | 【实验二】Springboot 控制器类相关注解知识-CSDN博客 Java高级 | 【实验三】Springboot …

从零打造AI面试系统全栈开发

🤖 AI面试系统开发完整教程 📋 项目概述 本教程将带你从零开始构建一个完整的AI面试系统,包含前端、后端、AI集成和部署的全流程。 源码地址 技术栈 前端: React TypeScript Vite Vaadin Components后端: Spring Boot Spring Securi…

【硬件】PCIe协议 | 电脑的高速公路

文章目录 PCIe | 外围设备高速互联通道(peripheral component interconnect express)的核心概念和应用 基础概念 1.1 电脑内的”高速“,连接CPU、显卡、SSD(固态硬盘)等核心组件;数据传输速度极快&#xff…

【 Redis | 完结篇 缓存优化 】

前言:本节包含常见redis缓存问题,包含缓存一致性问题,缓存雪崩,缓存穿透,缓存击穿问题及其解决方案 1. 缓存一致性 我们先看下目前企业用的最多的缓存模型。缓存的通用模型有三种: 缓存模型解释Cache Asi…

MySQL访问控制与账号管理:原理、技术与最佳实践

MySQL的安全体系建立在精细的访问控制和账号管理机制上。本文基于MySQL 9.3官方文档,深入解析其核心原理、关键技术、实用技巧和行业最佳实践。 一、访问控制核心原理:双重验证机制 连接验证 (Connection Verification) 客户端发起连接时,MySQL依据user_name@host_name组合进…

Go语言爬虫系列教程4:使用正则表达式解析HTML内容

Go语言爬虫系列教程4:使用正则表达式解析HTML内容 正则表达式(Regular Expression,简称RegEx)是处理文本数据的利器。在网络爬虫中,我们经常需要从HTML页面中提取特定的信息,正则表达式就像一个智能的&quo…

笔记 | docker构建失败

笔记 | docker构建失败 构建报错LOG1 rootThinkPad-FLY:/mnt/e/02-docker/ubunutu-vm# docker build -t ubuntu16.04:v1 . [] Building 714.5s (6/11) docker:default> [internal] load …

CentOS 7.9 安装 宝塔面板

在 CentOS 7.9 上安装 宝塔面板(BT Panel) 的完整步骤如下: 1. 准备工作 系统要求: CentOS 7.x(推荐 7.9)内存 ≥ 1GB(建议 2GB)硬盘 ≥ 20GBroot 权限(需使用 root 用户…

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…

【AI News | 20250604】每日AI进展

AI Repos 1、jaaz Jaaz是一款免费开源的AI设计代理,作为Lovart的本地替代品,它能实现图像、海报、故事板的设计、编辑和生成。Jaaz集成了LLM,可智能生成提示并批量生成图像,支持Ollama、Stable Diffusion等本地及API模型。用户可…

Docker load 后镜像名称为空问题的解决方案

在使用 docker load命令从存档文件中加载Docker镜像时,有时会遇到镜像名称为空的情况。这种情况通常是由于在保存镜像时未正确标记镜像名称和标签,或者在加载镜像时出现了意外情况。本文将介绍如何诊断和解决这一问题。 一、问题描述 当使用 docker lo…