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.mzph.cn/news/606355.shtml

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

相关文章

docker的安装使用以及优势

前段时间和朋友开发电商分布式项目作为学习,由于远程开发的需要,需要将redis,mysql,mq等一些基础的服务放在阿里云服务器上,并使用docker来安装这些服务,使容器服务化。 1.使用docker的优势 将 Redis 和 MySQL 等数据库直接安装在…

C++合并K个有序链表

本篇博客介绍如何使用C合并k个有序链表,在代码中会用到std::priority_queue,首先需要介绍一下std::priority_queue的用法,介绍完std::priority_queue后将介绍如何使用std::priority_queue来辅助合并k个有序链表。 一、C priority_queue用法介…

RTMO:迈向高性能的单阶段实时多人姿态估计

摘要 https://arxiv.org/pdf/2312.07526.pdf 实时多人姿态估计在平衡速度和精度方面提出了重大挑战。虽然两阶段自上而下的方法随着图像中人数增加而变慢,但现有的单阶段方法往往无法同时提供高精度和实时性能。本文介绍了RTMO,这是一种单阶段姿态估计框…

用通俗易懂的方式讲解:如何提升大模型 Agent 的能力?

大型语言模型(LLM)的出现带火了Agent。利用LLM理解人类意图、生成复杂计划并且能够自主行动的能力。Agent具有无与伦比的能力,能够做出类似于人类复杂性的决策和完成一些复杂的工作。 目前市面上已经出现非常多得Agent框架:XAgen…

make_unique 数组,智能指针

【C14算法】make_unique_c make_unique-CSDN博客 #include <iostream> #include <memory>int main() {std::size_t size 5;std::unique_ptr<int[]> ptr std::make_unique<int[]>(size);for (std::size_t i 0; i < size; i) {ptr[i] i 1;}std:…

MongoDB复制集原理

复制集高可用 复制集选举 MongoDB 的复制集选举使用 Raft 算法&#xff08;https://raft.github.io/&#xff09;来实现&#xff0c;选举成功的必要条件是大多数投票节点存活。在具体的实现中&#xff0c;MongoDB 对 raft 协议添加了一些自己的扩展&#xff0c;这包括&#x…

Spring Retry(方法重试、方法重新调用)

Spring Retry——方法重试、方法重新调用 简介&#xff1a;使用1. 配置 2.使用 总结注意 简介&#xff1a; Spring Retry 是一个 Spring Boot 官方提供的支持重试机制的库。它提供了一种简单而灵活的方式来处理方法调用可能失败的情况&#xff0c;通过自动重试失败的操作&…

Mysql大数据量下流式查询优化:Jdbc中的useFetchSize参数及其原理解析

前言 最近我朋友公司有个需求场景&#xff1a;查询千万级数据量并写入txt文件的程序优化需求。 朋友找到我对程序进行优化&#xff0c; 不然饭碗不保......&#x1f4a6; 下面就分享一下解决这个优化问题的过程和思路&#xff0c;并总结一下&#xff0c;在以后不要在踩同样的坑…

加油吧! 学习无线电!

pyhackrf2 已经修复 pyhackrf2 修改bw问题-CSDN博客 OOK 已经写出来了 ook 模块 基础测试完成 准备调整参数-CSDN博客 最先后一个程序 关于 wfm解码

C++指南——拷贝构造函数和赋值运算符重载

文章目录 1 举个例子&#xff08;问题由来&#xff09;2 拷贝构造函数与构造函数不同3 默认拷贝构造函数是浅拷贝4 默认赋值运算符是浅拷贝 1 举个例子&#xff08;问题由来&#xff09; 在C中&#xff0c;使用Car car2 car1; 这种形式的语句被称为拷贝构造&#xff08;用一个…

[算法]使用aes进行数据加密

一、需求 有一段信息需要进行安全加密。 二、方案 对称加密和非对称加密两种方案&#xff0c;其中由于公钥密钥的管理还未形成规范&#xff0c;因此考虑使用对称加密。其中&#xff0c;对称加密算法使用openssl中&#xff0c;关于aes的部分&#xff0c;输出结果为128位数据。…

【青书学堂】 2023年第二学期 刑法学(总论)(直播课) 作业

【青书学堂】 2023年第二学期 刑法学(总论)(直播课) 作业 为了方便日后复习&#xff0c;青书学堂成人大专试题整理。 若有未整理的课程&#xff0c;请私信我补充&#xff0c;欢迎爱学习的同学们收藏点赞关注&#xff01;文章内容仅限学习使用&#xff01;&#xff01;&#xff…

自然语言处理中的语言模型

知乎好文章&#xff0c;建议参考学习语言模型 语言模型&#xff08;Language Model, LM&#xff09;是用于计算或预测一系列词语&#xff08;句子或文本段落&#xff09;出现概率的统计模型。它们能够基于已知的词序列来预测下一个词或者评估一个句子的语言学合理性。 发展历程…

【代码学习】einops,更简单的张量变化

官方教程&#xff1a;https://github.com/arogozhnikov/einops/blob/master/docs/2-einops-for-deep-learning.ipynb 常见操作&#xff1a; 维度变换 rearrange 维度变换 y rearrange(x, b c h w -> b h w c) # 已经 表明 x的每个轴 变量 b c h w guess(y.shape)flatten…

oracle-undo

tips&#xff1a;串行化隔离级别&#xff1a;事务开始后&#xff0c;对一张表不会被别人影响&#xff0c;对于审计工作比较有用&#xff0c;避免了幻读。 undo表空间&#xff1a;自动生成段&#xff0c;自动生成区&#xff0c;自动维护的&#xff0c;不像一般的表空间&#xff…

独立式键盘控制的4级变速流水灯

#include<reg51.h> // 包含51单片机寄存器定义的头文件 unsigned char speed; //储存流水灯的流动速度 sbit S1P1^4; //位定义S1为P1.4 sbit S2P1^5; //位定义S2为P1.5 sbit S3P1^6; //位定义S3为P1.6 sbit S4P1^7; //位…

泽攸科技完全自主研制的电子束光刻机取得阶段性成果

国产电子束光刻机实现自主可控&#xff0c;是实现我国集成电路产业链自主可控的重要一环。近日&#xff0c;泽攸科技联合松山湖材料实验室开展的全自主电子束光刻机整机的开发与产业化项目取得重大进展&#xff0c;成功研制出电子束光刻系统&#xff0c;实现了电子束光刻机整机…

rime中州韵小狼毫 生字注音滤镜 汉字注音滤镜

在中文环境下&#xff0c;多音字是比较常见的现象。对于一些不常见的生僻字&#xff0c;或者一些用于地名&#xff0c;人名中的常见字的冷门读音&#xff0c;如果不能正确的阅读&#xff0c;例如把 荥阳 读成了 miāo yng&#xff0c;则会怡笑大方。 今天我们在rime中州韵小狼…

python自动化运维管理拓扑

目录 1、简介 2、实验环境 3、拓扑图 4、需求及其代码 4.1、测试连通性 4.2、远程登陆 4.3、配置loopback 4.4、监控内存使用率 4.5、自动化巡检内存使用率 4.6、自动化配置snmp服务 4.7、提取分析字符串 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业…

2024 年 20+ 个 Node.js 开发工具

2024了&#xff0c;你准备好提升你的Node.js开发体验了吗&#xff1f;有了合适的工具集&#xff0c;你可以将你的项目提升到新的高度&#xff0c;简化你的工作流程&#xff0c;创建强大的、高性能的应用程序。这篇全面的指南将向你介绍Node.js开发的顶级工具&#xff0c;提供使…