BERT 模型是什么

科学突破很少发生在真空中。相反,它们往往是建立在积累的人类知识之上的阶梯的倒数第二步。要了解 ChatGPT 和 Google Bart 等大型语言模型 (LLM) 的成功,我们需要回到过去并谈论 BERT。

BERT 由 Google 研究人员于 2018 年开发,是首批 LLM 之一。凭借其惊人的结果,它迅速成为NLP任务中无处不在的基线,包括一般语言理解,问答和命名实体识别。

可以说,BERT为我们如今目睹的生成式AI革命铺平了道路。尽管 BERT 是最早的 LLM 之一,但它仍然被广泛使用,有数千个开源、免费和预训练的 BERT 模型可用于特定用例,例如情感分析、临床笔记分析和有害评论检测。

对 BERT 感到好奇吗?继续阅读本文,我们将探讨 Ber 的架构、该技术的内部工作原理、它的一些实际应用及其局限性。

什么是 BERT?

BERT(代表 Bidirectional Encoder Representations from Transformers)是 Google 于 2018 年开发的开源模型。这是一项雄心勃勃的实验,旨在测试所谓的 Transformers(一种创新的神经架构,由谷歌研究人员在 2017 年的著名论文《注意力是你所需要的一切》中提出)在自然语言 (NLP) 任务上的性能。

BERT成功的关键在于其变压器架构。在 Transformer 出现之前,对自然语言进行建模是一项非常具有挑战性的任务。尽管复杂的神经网络(即递归神经网络或卷积神经网络)兴起,但结果仅部分成功。

主要的挑战在于神经网络用于预测句子中缺失单词的机制。当时,最先进的神经网络依赖于编码器-解码器架构,这是一种功能强大但耗时耗资源的机制,不适合并行计算。

考虑到这些挑战,谷歌研究人员开发了转换器,这是一种基于注意力机制的创新神经架构,如下一节所述。

BERT是如何工作的

让我们来看看 BERT 是如何工作的,包括模型背后的技术、它是如何训练的以及它如何处理数据。

核心体系结构和功能

递归神经网络和卷积神经网络使用顺序计算来生成预测。也就是说,一旦在大型数据集上进行训练,他们可以预测哪个单词将遵循给定的单词序列。从这个意义上说,它们被认为是单向或上下文无关的算法。

相比之下,像BERT这样同样基于编码器-解码器架构的转换器驱动的模型是双向的,因为它们根据前一个单词和后面的单词来预测单词。这是通过自注意力机制实现的,自注意力机制是编码器和解码器中都包含的一层。注意力层的目标是捕获输入句子中不同单词之间存在的上下文关系。

如今,预训练的BERT有很多版本,但在最初的论文中,Google 用不同的神经架构训练了两个版本的 BERT: BERTbase 和 BERTlarge。本质上,BERTbase 有12个变压器层,12个关注层,1.1亿个参数,而 BERTlarge 有 24 个变压器层,16个关注层,3.4 亿个参数。正如预期的那样,BERTlarge 在准确性测试中的表现优于它的小兄弟。

变压器结构说明

预训练和微调

Transformer 在庞大的数据语料库上从头开始训练,遵循一个耗时且昂贵的过程(只有包括 Google 在内的少数公司才能负担得起)。

就 BERT 而言,它在维基百科(~2.5B 字)和 Google 的 BooksCorpus(~800M 字)上进行了为期四天的预训练。这使得该模型不仅可以获得英语知识,还可以获得来自世界各地的许多其他语言的知识。

为了优化训练过程,谷歌开发了新的硬件,即所谓的TPU(张量处理单元),专为机器学习任务而设计。

为了避免训练过程中不必要且成本高昂的交互,谷歌研究人员使用迁移学习技术将(预)训练阶段与微调阶段分开。这允许开发人员选择预训练模型,细化目标任务的输入输出对数据,并使用特定于领域的数据重新训练预训练模型的头部。这个特性使像 BERT 这样的 LLM 成为建立在它们之上的无穷无尽的应用程序的基础模型,

掩码语言建模在BERT处理中的作用

在BERT(以及每个基于transformers的LLM)中实现双向学习的关键因素是注意力机制。此机制基于掩码语言建模 (MLM)。通过屏蔽句子中的单词,此技术迫使模型在句子中两个方向上分析剩余的单词,以增加预测被屏蔽单词的机会。MLM基于在计算机视觉领域已经尝试过的技术,非常适合需要对整个序列有良好上下文理解的任务。

BERT是第一个应用这种技术的法学硕士。特别是,随机 15% 的标记化单词在训练期间被屏蔽。结果表明,BERT能够较准确地预测隐藏词。

BERT是做什么用的?BERT对NLP的影响

在转换器的支持下,BERT能够在多个NLP任务中实现最先进的结果。以下是 BERT 擅长的一些测试:

  • 问答:BERT是最早由变压器驱动的聊天机器人之一,取得了令人印象深刻的成果。
  • 情绪分析:例如,BERT已经成功地预测了电影评论的正面或负面标点符号。
  • 文本生成:作为下一代聊天机器人的前身,BERT已经能够通过简单的提示创建长文本。
  • 总结文本:同样,BERT能够阅读和总结来自复杂领域的文本,包括法律和医疗保健。
  • 语言翻译:BERT已经接受过多种语言编写的数据训练。这使它成为一个多语言模型,这意味着它非常适合语言翻译。
  • 自动完成任务:BERT 可用于自动完成任务,例如,在电子邮件或消息传递服务中。

BERT的实际应用

许多LLM已经在实验集中进行了尝试,但尚未将许多LLM纳入成熟的应用程序中。BERT的情况并非如此,它每天都有数百万人使用(尽管我们可能没有意识到这一点)。

一个很好的例子是谷歌搜索。2020 年,谷歌宣布已通过 70 多种语言的 Google 搜索采用 BERT。这意味着谷歌使用BERT对内容进行排名并显示精选片段。借助注意力机制,Google 现在可以使用问题的上下文来提供有用的信息,如以下示例所示。

资料来源:谷歌

BERT的变体和改编

但这只是故事的一部分。BERT的成功很大程度上归功于其开源性质,它允许开发人员访问原始BERT的源代码并创建新功能和改进。

这导致了大量的 BERT 变体。下面,您可以找到一些最著名的变体:

  • RoBERTa : RoBERTa 是“Robustly Optimized BERT Approach”的缩写,是 Meta 与华盛顿大学合作创建的 BERT 变体。RoBERTa 被认为是比原始 BERT 更强大的版本,它使用比用于训练 BERT 的数据集大 10 倍的数据集进行训练。至于它的架构,最显着的区别是使用动态掩码学习而不是静态掩码学习。这种技术涉及复制训练数据并对其进行 10 次屏蔽,每次都使用不同的掩码策略,使 RoBERTa 能够学习更强大和可推广的单词表示。
  • DistilBERT:自 2010 年代后期推出第一批 LLM 以来,一直存在着构建更大、更重的 LLM 的综合趋势。这是有道理的,因为模型大小和模型精度之间似乎存在直接关系。然而,模型越大,运行所需的资源就越多,因此,使用它的人就越少。DistilBERT 旨在通过提供更小、更快、更便宜和更轻的变体来使 BERT 更易于访问。基于原始 BERT 的架构,DistilBERT 在预训练期间使用知识提炼技术,将大小减少 40%,同时保留其 97% 的语言理解能力,速度提高 60%。
  • ALBERT:ALBERT 代表 A Lite BERT,专门设计用于在预训练期间提高 BERTlarge 的效率。由于训练更大的模型通常会导致内存限制、更长的训练时间和意外的模型退化,因此 ALBERT 的创建者开发了两种参数缩减技术来减少内存咨询并提高训练期间的速度。

如果您想了解更多关于开源 LLM 运动的信息,我们强烈建议您阅读我们关于 2023 年顶级开源 LLM 的帖子

针对特定任务微调 BERT

BERT 和一般的 LLM 最伟大的事情之一是预训练过程与微调过程是分开的。这意味着开发人员可以采用预先训练的 BERT 版本,并针对他们的特定用例对其进行自定义。

就 BERT 而言,有数百个针对各种 NLP 任务开发的 BERT 微调版本。下面,您可以找到一个非常非常有限的 BERT 微调版本列表:

  • BERT-base-chinese:一个针对中文 NLP 任务训练的 BERTbase 版本
  • BERT-base-NER: 为命名实体识别定制的 BERTbase 版本
  • Symps_disease_bert_v3_c41。自然语言聊天机器人的症状到疾病分类模型。
  • BERT专利:是谷歌在全球100M+专利上训练的模型。它基于 BERTlarge。

了解 BERT 的局限性

BERT 具有与 LLM 相关的传统限制和问题。BERT的预测始终基于用于训练它的数据的数量和质量。如果训练数据有限、贫乏且有偏见,BERT 可能会抛出不准确、有害的结果,甚至是所谓的LLM幻觉 。

在原始 BERT 的情况下,这种情况更有可能发生,因为该模型是在没有从人类反馈中强化学习 (RLHF) 的情况下训练的,RLHF 是 ChatGPT、LLaMA 2 和 Google Bard 等更高级模型使用的标准技术,用于增强 AI 安全性。RLHF 涉及在培训期间使用人类反馈来监控和指导 LLM 的学习过程,从而确保有效、安全和可信的系统。

此外,尽管与其他最先进的 LLM (如 ChatGPT)相比,它可以被认为是一个小模型,但它仍然需要相当大的计算能力来运行它,更不用说从头开始训练它了。因此,资源有限的开发人员可能无法使用它。

BERT和NLP的未来

BERT是最早的现代LLM之一。但远非老式,BERT仍然是最成功和最广泛使用的LLM之一。 由于其开源性质,今天,有多种变体和数百个预训练版本的BERT专为特定的NLP任务而设计。

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

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

相关文章

代码随想录算法训练营第27天 | 39. 组合总和 40.组合总和II 131.分割回文串

目录 39. 组合总和 💡解题思路 💻实现代码 40.组合总和II 💡解题思路 💻实现代码 131.分割回文串 💡解题思路 # 判断回文子串 💻实现代码 39. 组合总和 题目链接:39. 组合总和 给定…

C++OpenCV学习笔记(0):从开始到放弃

文章目录 前言环境配置Hello worldC 和C# 语法对比模板字符串list列表 总结 前言 作为一个计算机本科学生,我大学的时候深深的被指针和内存管理给折磨过。我深刻的理解内存泄漏的巨大问题。但是我最近学习Python的时候发现,Python是真的不好进行项目管理…

回归预测 | Matlab基于SO-GRU蛇群算法优化门控循环单元的数据多输入单输出回归预测

回归预测 | Matlab基于SO-GRU蛇群算法优化门控循环单元的数据多输入单输出回归预测 目录 回归预测 | Matlab基于SO-GRU蛇群算法优化门控循环单元的数据多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于SO-GRU蛇群算法优化门控循环单元的数…

分布式I/O应用于智慧停车场的方案介绍

客户案例背景 目前车位检测技术有磁电技术、超声波技术、红外线技术、图像识别车位技术。考虑到例如电磁干扰、信号干扰等的环境因素影响,通常会采用组合使用的方式进行,如采用不同的传感器、应用不同的协议等,以便提高车位检测的准确性和实时…

鼠标随动指定区域高亮显示(Excel聚光灯)

实例需求:工作表中数据表实现跟随鼠标选中高亮效果,需要注意如下几个细节需求 数据表为连续区域,但是不一定从A1单元格开始数据表的前两行(标题行)不使用高亮效果数据表中已经应用了条件格式,高亮显示取消…

Docker 安装部署

1、Docker 安装 ① 卸载docker,清空之前的docker文件 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \docker-ce…

AI Table应用程序接口表的格式说明和作用

AI Table 首先全拼不是AI人工智能表,而是Application Interface Table应用程序接口表。此表按照AUTOSAR的格式规范去定义,并且使用此Excel 表格生成相应的应用软件组件Arxml文件。下面就让我们按照AUTOSAR_EXP_AIUserGuide.pdf文档官方解释描述文件去看看…

系统存储架构升级分享 | 京东云技术团队

一、业务背景 系统业务功能:系统内部进行数据处理及整合, 对外部系统提供结果数据的初始化(写)及查询数据结果服务。 系统网络架构: 部署架构对切量上线的影响 - 内部管理系统上线对其他系统的读业务无影响分布式缓存可进行单独扩容, 与存储及查询功能升级无关通过…

编译ZLMediaKit(win10+msvc2019_x64)

前言 因工作需要,需要ZLMediaKit,为方便抓包分析,最好在windows系统上测试,但使用自己编译的第三方库一直出问题,无法编译通过。本文档记录下win10上的编译过程,供有需要的小伙伴使用 一、需要安装的软件…

C# 图解教程 第5版 —— 第23章 异常

文章目录 23.1 什么是异常23.2 try 语句23.3 异常类23.4 catch 子句23.5 异常过滤器23.6 catch 子句段23.7 finally 块23.8 为异常寻找处理程序23.9 进一步搜索23.9.1 一般法则23.9.2 搜索调用栈的示例(*) 23.10 抛出异常23.11 不带异常对象的抛出23.12 …

【AI视野·今日NLP 自然语言处理论文速览 第七十二期】Mon, 8 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 8 Jan 2024 Totally 17 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers DeepSeek LLM: Scaling Open-Source Language Models with Longtermism Authors DeepSeek AI Xiao Bi, Deli Ch…

Spirng MVC见解1

1. SpringMVC概述 1.1 MVC介绍 MVC是一种设计模式,将软件按照模型、视图、控制器来划分: M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为数据承载Bean&#x…

初学unity学习七天,经验收获总结

初学unity七天,经验收获总结 学习就是认识新观念和新想法的过程。 假如人们始终以同一种思维方式来考虑问题的话,那么始终只会得到同样的结果。 因为我对你讲述的许多内容是你以前从未接触过的,所以我建议你,在你还没有做之前&…

Matlab 使用 DH table 建立的 robot 和实际不符

机器人仿真 想借助 matlab robotics toolbox 来仿真机器人,但是直接输入自己的 DH table 显示出来的 robot 和实际不情况不符。 DH table 建立 robot Build Manipulator Robot Using Kinematic DH Parameters 主要使用 setFixedTransform,DH table 中…

Centos报错failovermethod 和 appstream

Centos报错failovermethod 和 appstream 报错failovermethod 编辑/etc/yum.repos.d/CentOS-Epel.repo vim /etc/yum.repos.d/CentOS-epel.repo将failovermethod选项删除即可 报错appstream 参考这篇文章:https://blog.csdn.net/weixin_46533577/article/details…

重学Java 3 变量 数据类型转换 运算符

路上难免会有许多挫折,你要学会应对,要坚不可摧 ——24.1.12 一、常量 1.概述:在代码的运行过程中,值都不会发生改变的数据 2.分类: 整数常量:所有整数,包含正负 小数常量:所有带小数…

2-认识小程序项目

基本结构 myapp├─miniprogram┊ └──pages┊ ┊ └──index┊ ┊ ┊ ├──index.json┊ ┊ ┊ ├──index.ts┊ ┊ ┊ ├──index.wxml┊ ┊ ┊ └──index.wxss┊ ┊ └──logs┊ ┊ ├──index.json┊ ┊ ├──index.ts┊ ┊ ├…

第 3 章 Keepalived 双机热备

技能展示: 会构建双机热备系统 会构建 LVSHA 高可用群集 在这个高度信息化的 IT 时代,企业的生产系统、业务运营、销售和支持,以及日常管理等环节越来越依赖于计算机信息和服务,对高可用(HA)技术的应用需求…

C++力扣题目98--验证二叉搜索树

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入…

bootloader学习笔记及SD卡启动盘制作

Bootloader介绍 在操作系统运行之前运行的一小段代码,用于将软硬件环境初始化到一个合适的状态,为操作系统的加载和运行做准备(其本身不是操作系统) Bootloader基本功能 1、初始化软硬件环境 2、引导加载linux内核 3、给linux…