BERT论文阅读

embedded/2024/9/25 7:54:36/

一.前情提要

1.本文理论为主,并且仅为个人理解,能力一般,不喜勿喷

2.本文理论知识较为成体系

3.如有需要,以下是原文,更为完备

BERT 论文逐段精读【论文精读】_哔哩哔哩_bilibili

二.正文

1.前言:

①BERT是一种基于Transformer架构的预训练语言模型

②NLP(即自然语言处理)是人工智能领域的一个重要分支,旨在使计算机能够理解、解释和生成自然语言文本。NLP涉及处理人类语言的各个层面,包括语义理解、语法分析、语言生成等。

2.与ELMO、GPT的区别(因为是在这两篇的基础上发展的)

细节(1)--->区别

①训练深得双向的表示(运用了右侧和左侧的信息),而GPT是单向

②ELMO运用的RNN而BERT运用的是Transformer,故ELMO与用到下游的时候要调整结构而BERT就只用调整最上层--->与GPT是一样的。

细节(2)--->优势

①绝对精度提高7.7%

(ps:BERT本身并没有一个绝对的精度,因为它是一个预训练的模型,其性能取决于具体任务和数据集,但是一些标准的基准数据集上,BERT和其变种通常能够达到非常高的精度。例如,在GLUE上)

3.流程

①普遍流程:语言预训练可以提升自然语言任务:如:句子之间的关系(如:情绪),词源层面输出(如:实体命名)

②预训练策略:(1)基于特征(ELMO):将学到的特征和输入一起放进去

(2)基于微调(GPT):将权重放在下游,最后微调(并且从左到右读句子)

                                    ----------->均使用单项的语言模型

③作者新想法:读句子从左到右从右到左并行

操作:

(1)用带掩码的语言模型(MLM):简而言之是进行句子挖空让机器来预测或着预测两个句子是不是相邻的

(2)好处:1.双向 2.微调 3.直接引用代码

(3)证明了在没有标号的量数据集训练模型比标号的量数据集训练模型(前人常用比如:ImageNet)效果好

4.算法

①预训练:在没有标号的大量数据集训练

②微调:使用预训练中的权重用的是有标号的数据集

(预训练)

③调参:

(1)transformer的的个数

(2)隐藏层的大小

(3)自注意力机制的的个数

(自注意力机制用于序列数据处理的机制,最初引入于Transformer模型中。它允许模型在处理序列数据时,动态地给不同位置的输入赋予不同的注意力权重,从而更有效地捕捉序列中的长距离依赖关系。)

④处理句子

(1)切词:得子序列 (示例如下)

(2)两个句子合在一起仍然可以区分

(3)掩码是占15%----->80%概率真替换 10%概率随机词源 10%概率什么都不干(因为微调不会有掩码)

(示例如下)

(4)正例和负例 (示例如下

5.缺点

①用了Adam的残缺版--->有影响

②训练轮数


http://www.ppmy.cn/embedded/15466.html

相关文章

VSCode配置Springboot开发环境

VSCode配置Springboot开发环境 一、下载和安装JDK一、pandas是什么?二、下载和安装Maven三、VSCode配置3.1 插件管理3.2 VSCode中的Maven配置3.3 创建项目3.4 VSCode中打包springboot项目3.5 springboot项目发布服务后,前端跨域问题: 四、VSC…

C++智能指针

智能指针 1. 异常导致的内存泄露2. 智能指针的使用及原理2.1 RAII 3. 库里面的智能指针3.1 std::auto_ptr3.2 std::unique_ptr3.3 std::shared_ptr3.3.1shared_ptr的缺陷——循环引用3.3.2 weak_ptr 1. 异常导致的内存泄露 在我们异常那块章节中,我们有提到如果异常…

【设计模式】9、facade 外观模式

文章目录 九、外观模式9.1 player9.1.1 player_test.go9.1.2 player.go 9.2 login_register9.2.1 account_test.go9.2.2 account.go 九、外观模式 https://refactoringguru.cn/design-patterns/facade 如果有一个复杂的系统, 内部有很多子系统, 可以用 facade 封装一层, 只暴…

【汇编语言】流程转移和子程序

【汇编语言】流程转移和子程序 文章目录 【汇编语言】流程转移和子程序前言一、“转移”综述二、操作符offset三、jmp指令jmp指令——无条件转移jmp指令:依据位移进行转移两种段内转移远转移:jmp far ptr 标号转移地址在寄存器中的jmp指令转移地址在内存…

csdn上最详细的黑客技术入门教程,从零基础到精通 看这一篇就够了

引言 网络安全领域的快速发展为技术爱好者提供了广阔的学习与实践平台。本文旨在为初学者提供一个由浅入深的学习路线图,特别是在建立必要的基础知识上。 第一阶段:基础知识建设 黑客技术的有效学习需要在多个核心领域内建立坚实的基础。以下是初学者…

OpenAIGPT-4.5提前曝光?

OpenAI GPT-4.5的神秘面纱:科技界的震撼新篇章 在人工智能的世界里,每一次技术的飞跃都不仅仅是一次更新,而是对未来无限可能的探索。近日,科技巨头OpenAI似乎再次站在了这场革命的前沿,其潜在的新产品——GPT-4.5 Tur…

[Java基础面试题] volatie 与 synchronized

1. 说一下 volatie 在Java中,volatile 关键字用于修饰变量,表示该变量是易变的,其值可能会被不同的线程修改。使用volatile关键字声明的变量具有两个特性: 原子性:volatile 变量的读写操作都是原子性的,即…

MySQL事务--隔离级别

1 事务的隔离级别 事务的隔离级别是数据库管理系统(DBMS)提供的一种机制,用于控制并发事务之间的相互影响程度。隔离级别决定了一个事务对于其他事务所做的修改是否可见,以及在多个事务并发执行时可能出现的各种问题的程度。 常…