Transformer-Bert---散装知识点---mlm,nsp,较之经典tran的区别和实际应用方式

        本文记录的是笔者在了解了transformer结构后嗑bert中记录的一些散装知识点,有时间就会整理收录,希望最后能把transformer一个系列都完整的更新进去。

1.自监督学习

        bert与原始的transformer不同,bert是使用大量无标签的数据进行预训练,下游则使用少量的标注数据进行微调。预训练使用的就是自监督学习。
        自监督学习直白来说就是对原始数据添加辅助任务来使得数据能够根据自身生成标签。

举几个简单的例子来解释一下常见的自监督学习:(ps:插一嘴,bert使用的是mlm,会在最后的例子中解释)

1.1图像类:

1.1.1填充:

将图片扣掉一块,让模型进行填充。
输入:扣掉一块的图片
输出:填充部分
标签:原图扣掉的部分

1.1.2拼图

选取图片中的一部分图片A以及其相邻的某一部分图片B作为输入,预测图B于图A的相对位置。
输入: (A图) +  (B图)
输出:1-8之间的整数,代表图B相对于图A的位置
标签5(对应原图中数字5的部分)
这类辅助任务就旨在训练模型对于局部特征分布位置的识别能力。

1.2 文本类

1.2.1 完形填空
简单的来说就是在原始数据中扣掉一个或多个单词,让模型进行补充。

原始数据:All the world's a stage, and all the men and women merely players.
输入:All the world's a stage, and all the __ and women merely players.
输出:预测的单词     
标签:men

1.2.2 Masked Language Model (MLM)(划重点拉)
MLM模型会随机的选择需要掩盖的单词(大概15%)(主要用于让模型习得语义语法)
ps:由于是随机的一般我们都会指定一个参数max_pred用来表示一个句子最多被掩盖单词的数量

原始数据:All the world's a stage, and all the men and women merely players.
输入:All the world's a stage, and all the MASK and MASK merely players.
输出:预测的单词     
标签:men, women

为了更好的适应下游任务,bert的作者对与MLM的规则进行了一定的微调。
被替换的单词:men :    MASK-------------------80%
                                         apple(随机单词)------10%
                                         men(保持不变--)------10%
依然还是对标注为MASK的单词进行预测。
下面是论文原文对于这段的描述附上中英文对照

        为了训练一个深度双向表示,我们简单地随机遮盖输入标记的一定比例,然后预测这些被遮盖的标记。我们称这个过程为“遮盖语言建模”(Masked Language Modeling,MLM),尽管文献中通常称之为Cloze任务(Taylor, 1953)。在这种情况下,对应于遮盖标记的最终隐藏向量被馈送到一个标准语言模型中的词汇表上的输出softmax层。在所有实验中,我们随机遮盖每个序列中所有WordPiece标记的15%。与去噪自编码器(Vincent et al., 2008)不同,我们仅预测遮盖的单词,而不是重构整个输入。

        In order to train a deep bidirectional representation, we simply mask some percentage of the input tokens at random, and then predict those masked tokens. We refer to this procedure as a “masked LM” (MLM), although it is often referred to as a Cloze task in the literature (Taylor, 1953). In this case, the final hidden vectors corresponding to the mask tokens are fed into an output softmax over the vocabulary, as in a standard LM. In all of our experiments, we mask 15% of all WordPiece tokens in each sequence at random. In contrast to denoising auto-encoders (Vincent et al., 2008), we only predict the masked words rather than reconstructing the entire input.
        尽管这使我们能够获得一个双向预训练模型,但其缺点是在预训练和微调之间创建了不匹配,因为在微调过程中不存在[MASK]标记。为了减轻这一问题,我们并不总是用实际的[MASK]标记替换“遮盖”的单词。训练数据生成器随机选择15%的标记位置进行预测。如果选择第i个标记,则有80%的概率将第i个标记替换为[MASK]标记,10%的概率将其替换为随机标记,以及10%的概率保持不变。然后,使用交叉熵损失来预测原始标记。我们在附录C.2中比较了这一过程的变化。

        Although this allows us to obtain a bidirectional pre-trained model, a downside is that we are creating a mismatch between pre-training and fine-tuning, since the [MASK] token does not appear during fine-tuning. To mitigate this, we do not always replace “masked” words with the actual [MASK] token. The training data generator chooses 15% of the token positions at random for prediction. If the i-th token is chosen, we replace the i-th token with (1) the [MASK] token 80% of the time (2) a random token 10% of the time (3) the unchanged i-th token 10% of the time. Then, T i will be used to predict the original token with cross entropy loss. We compare variations of this procedure in Appendix C.2.


2.NSP任务

Bert中的NSP实质上就是一个二分类任务。
主要就是预测句子2是否是句子1的下一句,其中句子2有50%是真,50%是从句库中随机挑选的句子。目的就是为了让模型学习到句子之间的关系。
输入:句子1  'esp'  句子2
ps:esp是词向量层中的特殊符号,表示一句话的结束,也常用来分割句子
输出:0或1
标签:0或1

3.bert较之TransFormer的区别

1.bert模型和经典transformer模型的任务目的是有区别的,TransFormer旨在生成新的内容,而bert则是为了学习上下文和句段之间的关系
2.bert整体是mlm和nsp两个任务模型,未使用decoder层(decoder的作用就是生成新文本),关于transformer中decode层的作用可以见我的另一份博客(回头发出来了贴连接)

3.transformer的位置编码采用的是固定方式编码,而bert则是使用可学习的embed层来实现

待续

4.bert的广泛应用

bert模型可以很好的学习到文本、图片、信号等等输入信息之间时序、位置、语义等方面的关联性信息,但却不能直接生成文本序列,我们看到很多各方面的模型都有bert的身影,这是如何实现的?
bert通常是不能直接生成内容的,常常作为一个特征提取器或者是编码器来为生成模型提供输入,这和前段时间比较火的cox+transformer类似(通过卷积来为transformer模型提供输入),常见的操作方式如下
1.Fine-tuning:针对下游任务进行微调,使其能够更加适应下游任务(上文说过bert是使用大量无标签数据进行预训练,少数标注数据进行微调)
2.原始数据经过bert模型后的输出:(1)作为条件编码器提供给生成式模型,(2)直接将学习到上下文信息和语境后的输出直接作为生成式模型的输入

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

LINUX 孤儿进程和僵尸进程

1、孤儿进 一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作 为了释放子进程的占用的系统资源: 进程结束之后&#xf…

意象万千的紫

文章目录 引言中国紫梦幻紫莫奈紫引言 2024巴黎奥运会的临近,很多网友都被“法式浪漫奥运紫”惊艳了,大到赛场跑道,小到一个羽毛球的设计,紫色的嵌入使竞技体育增添了不少梦幻的感觉。 中国紫 清代: 陈曾寿 【 雪青衫子绮罗新,一晌当前色相真】 青莲 五代十国李璟 “青…

mysql数据库管理(2)

数据库增删改查 将sql文件传到Linux /home目录下面 mysql –uroot –p create database test; use test; source myemployees.sql(如果在home目录下,直接source .sql) show tables; select * from departments; ps:SQL 语言大小写…

开始尝试从0写一个项目--前端(三)

器材管理板块 添加器材管理导航 src\views\home\Home.vue src\router\index.js src\views\equipment\Equipment.vue <template><div>hello!</div></template> 测试 搜索导航分页查询 src\views\equipment\Equipment.vue <template><div&…

《动手做科研 》| 01.AI的最新进展与科研应用

地址链接:《动手做科研》01. AI的最新进展与科研应用 导读: 该部分介绍AI的最新进展以及在科研各个领域的应用 目前AI发展到什么程度了&#xff1f;哪些问题可以尝试用AI解决呢&#xff1f;如何快速构建一个属于自己的AI应用程序&#xff1f; 本教程目标&#xff1a; 与语言模…

【C++笔试强训】day01

数字统计 思路 用%10取出个位的数字&#xff0c;用/10迭代。 代码 #include <iostream> using namespace std;int main() {int l, r, res 0;cin >> l >> r;for (int i l; i < r; i){int x i;while (x){if (x % 10 2) res;x / 10;}}cout << r…

GPT-4O 的实时语音对话功能在处理多语言客户时有哪些优势?

最强AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量 我瞄了一眼OpenAI春季发布会&#xff0c;这个发布会只有26分钟&#xff0c;你可以说它是一部科幻短片&#xff0c;也可以说它过于“夸夸其谈”&#xff01;关于…

计算机网络实验-RIP配置与分析

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、相关知识 路由信息协议&#xff08;Routing Information Protocol&#xff0c;RIP&#xff09;是一种基于距离向量&#xff08;Distance-Vector&…

推荐3款将相片变为动漫风格的免费AI工具推荐

toonme ToonMe是一款功能强大的在线和移动端应用&#xff0c;专门用于将照片转换成卡通风格图像。该工具利用先进的AI技术&#xff0c;能够快速识别照片中的面部特征&#xff0c;并进行智能处理&#xff0c;生成高清晰度的卡通肖像。 功能特点 ToonMe通过其内置的人工智能算法…

【STL之·容器·queue】

系列文章目录 文章目录 前言一、概述1.1 特点&#xff1a;1.2 queue的工作原理和内部实现 二、基本操作三、性能分析3.1 STL队列的时间复杂度和空间复杂度3.2 STL队列和自定义队列的性能差异 四、实例演示总结 前言 常见的应用场景包括&#xff1a; 任务调度&#xff1a; 队列可…

Dav_笔记11:SQL Tuning Overview-sql调优 之 5

构建SQL测试用例 对于许多与SQL相关的问题&#xff0c;获得可重现的测试用例可以更轻松地解决问题。从11g第2版&#xff08;11.2&#xff09;开始&#xff0c;Oracle数据库包含SQL测试用例构建器&#xff0c;它可以自动完成收集和复制尽可能多的有关问题及其发生环境的信息的难…

CIT分布式版本控制系统

一、GIT概述 在Linux虚拟机中配置DNS主从&#xff08;Master-Slave&#xff09;服务&#xff0c;通常涉及到BIND&#xff08;Berkeley Internet Name Domain&#xff09;软件的安装、主服务器&#xff08;Master&#xff09;的配置以及从服务器&#xff08;Slave&#xff09;的…

MFC开发,自定义消息

在MFC开发中&#xff0c;主要核心机制就是消息机制。QT与之类似的机制就是信号与槽。QT中的信号与槽是非常容易自定义的&#xff0c;MFC也是如此&#xff0c;自定义也是比较方便&#xff0c;况且自定义消息或者控件在整个GUI图形化界面开发中也是非常重要的部分&#xff0c;上篇…

【python】python销售数据分析可视化(源码+论文+数据集)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

记忆、思维、问题解决与创造、想象

记忆 思维 问题解决与创造性 想象

食家巷一窝丝:丝丝入味,口口留香

在美食的大观园中&#xff0c;有一种独特的美味让人难以忘怀&#xff0c;那就是食家巷一窝丝。食家巷一窝丝&#xff0c;以其精湛的制作工艺和独特的口感&#xff0c;成为了众多美食爱好者的心头好。 当你第一眼看到一窝丝&#xff0c;定会被它那精致的外形所吸引。纤细如丝的面…

nodejs - express 学习笔记

express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架&#xff0c;官方网址&#xff1a;https://www.expressjs. com.cn/ 简单来说&#xff0c;express 是一个封装好的工具包&#xff0c;封装了很多功能&#xff0c;便于我们开发 WEB 应用&#xff08;HTTP 服务&am…

如何恢复最近删除的文件?5种简单方法!

数据丢失在我们的工作生活中经常发生。当你决定清理硬盘或U盘时&#xff0c;你会删除一些文件夹或文件。如果你通过右键单击删除文件&#xff0c;则可以很容易从回收站恢复已删除的文件。但是&#xff0c;如果你按Shift Delete键、清空回收站或删除大于8998MB的大文件夹&#…

哪些ESP32系列芯片具有双道通I2S和PDM RX?

ESP32芯片选择&#xff1a; 需要使用2个通道IIS的&#xff0c;只能选择ESP32、ESP32-S3、ESP32-P4三种之一&#xff0c;需要适应PDM RX时也只能选择这3个芯片系列。 芯片I2S 标准PDM TXPDM RXTDMADC/DACLCD/摄像头ESP32I2S 0/1I2S 0I2S 0无I2S 0I2S 0ESP32-S2I2S 0无无无无I2…

[C++实战]日期类的实现

&#x1f496;&#x1f496;&#x1f496;欢迎来到我的博客&#xff0c;我是anmory&#x1f496;&#x1f496;&#x1f496; 又和大家见面了 欢迎来到C探索系列 作为一个程序员你不能不掌握的知识 先来自我推荐一波 个人网站欢迎访问以及捐款 推荐阅读 如何低成本搭建个人网站…