大模型时代的BERT 详解

news2024/11/24 17:09:14

最近在学习BERT。

简单说几句。

BERT=Bidirectional Encoder Representation from Transformer

作者是谷歌的团队

主要亮点是使用transformer和pre-trainning+未标注的数据,训练出来一个通用的语言模型。

0:背景

视觉算法因为有ImageNet的存在,迁移学习或者微调都很方便,但是当时NLP一直没有。

在这个情况下BERT应运而生。

1:技术框架

a:Masked Language Model

在 BERT 中,Masked LM(Masked Language Model)构建了语言模型,简单来说,就是随机遮盖或替换一句话里面的任意字或词,然后让模型通过上下文预测那一个被遮盖或替换的部分,之后做 Loss 的时候也只计算被遮盖部分的 Loss,这其实是一个很容易理解的任务,实际操作如下:

  1. 随机把一句话中 15% 的 token(字或词)替换成以下内容:

    1. 这些 token 有 80% 的几率被替换成 [MASK],例如 my dog is hairy→my dog is [MASK]
    2. 有 10% 的几率被替换成任意一个其它的 token,例如 my dog is hairy→my dog is apple
    3. 有 10% 的几率原封不动,例如 my dog is hairy→my dog is hairy
  2. 之后让模型预测和还原被遮盖掉或替换掉的部分,计算损失的时候,只计算在第 1 步里被随机遮盖或替换的部分,其余部分不做损失,其余部分无论输出什么东西,都无所谓

为什么要这样做?

主要是为了利用transformer提供全局语义信息,使得模型可以考虑上下文。从而增强各个特征之间的联系。

b:Next Sentence Prediction

我们首先拿到属于上下文的一对句子,也就是两个句子,之后我们要在这两个句子中加一些特殊的 token:[CLS]上一句话[SEP]下一句话[SEP]。也就是在句子开头加一个 [CLS],在两句话之间和句末加 [SEP],具体地如下图所示

可以看到,上图中的两句话明显是连续的。如果现在有这么一句话 [CLS]我的狗很可爱[SEP]企鹅不擅长飞行[SEP],可见这两句话就不是连续的。在实际训练中,我们会让这两种情况出现的数量为 1:1(这个比例是为了适配样本不均衡)

Token Embedding 就是正常的词向量,即 PyTorch 中的 nn.Embedding()

Segment Embedding 的作用是用 embedding 的信息让模型分开上下句,我们给上句的 token 全 0,下句的 token 全 1,让模型得以判断上下句的起止位置,例如

[CLS]我的狗很可爱[SEP]企鹅不擅长飞行[SEP]
 0   0 0 0 0 0 0 0  1 1 1 1 1 1 1 1

Position Embedding 和 Transformer 中的不一样,不是三角函数,而是学习出来的

Multi-Task Learning

BERT 预训练阶段实际上是将上述两个任务结合起来,同时进行,然后将所有的 Loss 相加

2:训练

BERT 的 Fine-Tuning 共分为 4 个类型。

这里参考的主要是台大李宏毅老师。

 分类任务的开头是cls,然后将该位置的 output,丢给 Linear Classifier,让其 predict 一个 class 即可。整个过程中 Linear Classifier 的参数是需要从头开始学习的,而 BERT 中的参数微调就可以了。

 如果现在的任务是 Slot Filling,将句子中各个字对应位置的 output 分别送入不同的 Linear,预测出该字的标签。其实这本质上还是个分类问题,只不过是对每个字都要预测一个类别

 如果现在的任务是 NLI(自然语言推理)。即给定一个前提,然后给出一个假设,模型要判断出这个假设是 正确、错误还是不知道。这本质上是一个三分类的问题,和 Case 1 差不多,对 [CLS] 的 output 进行预测即可

如果现在的任务是 QA(问答),举例来说,如上图,将一篇文章,和一个问题(这里的例子比较简单,答案一定会出现在文章中)送入模型中,模型会输出两个数 s,e,这两个数表示,这个问题的答案,落在文章的第 s 个词到第 e 个词。具体流程我们可以看下面这幅图 

首先将问题和文章通过 [SEP] 分隔,送入 BERT 之后,得到上图中黄色的输出。此时我们还要训练两个 vector,即上图中橙色和黄色的向量。首先将橙色和所有的黄色向量进行 dot product,然后通过 softmax,看哪一个输出的值最大,例如上图中 d2 对应的输出概率最大,那我们就认为 s=2 

同样地,我们用蓝色的向量和所有黄色向量进行 dot product,最终预测得 d3 的概率最大,因此 e=3。最终,答案就是 s=2,e=3 .

3:代码实现

我是在A100的卡上跑的。

 从结果上来看,只能说能用。

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

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

相关文章

Matlab --- 如何用matlab在三维坐标系中画一个三维向量

用MATLAB画三维向量 前两天,我在写Gram-Schmidt正交化的文章时,想到最好用matlab把还没有经过正交化计算的原始向量,和已经经过正交化处理后的正交基,在三维坐标系中,用图像的方式表示出来。这样可以更加直观的看到向量…

vue3实现动态菜单和动态路由和刷新后白屏处理

前言: 项目中,当每一个角色得到的界面不一致的时候,我们就不能使用静态菜单了,而是要从后端得到动态的菜单数据,然后动态的将菜单数据展示在界面上。 除了在界面展示,也还要将界面的路由动态添加&#xf…

档案管理流程,文件上传,文件解析流程

文件上传 先简单说下文件上传的步骤吧 控制层简单左下转发 PostMapping("uploadAndParsing") public ResponseResult uploadAndParsing(RequestParam("file") MultipartFile file){try {String accessToken Header.getAuthorization(request.getHeader(…

2022年度互联网平均薪资出炉~

近期,国家统计局发布2022年平均工资数据,互联网行业薪资再次成为大家关注的焦点。 在2022年分行业门类分岗位就业人员年平均工资中,信息传输、软件和信息技术服务业的薪资遥遥领先其他行业,为全国平均薪资水平的 1.78 倍&#xf…

H-buildX项目(学习笔记1.0)

记录一下自己的学习过程。 首先,下载H-buildX软件,直接度娘下载即可。 以前一直用的是vscode,这次做网上的项目用到了这个。 打开 就是这样的界面,首先介绍几个常用的功能 右上角的预览,也就是运行你的Vue项目的界面效…

2023华为OD机试(A卷+B卷)(Java C++ Python JS)真题目录 + 考点 + 通过率

文章目录 🚀前言华为OD刷题列表,每天十题,刷出算法新高度,刷出人生新际遇🔰刷题列表:华为OD机试真题(Java C Python JS) 🚀其他华为OD机试题清单 📝最后作者&…

【最新整理】一起看看86 个 ChatGPT 插件

今天我们来看看这86个插件都是做什么的? Shimmer:跟踪膳食并获得更健康生活方式的见解 World News:总结新闻头条 Bohita:用您能描述的任何图像制作服装 Portfolio Pilot:您的 AI 投资指南:投资组合评估…

跟着我学 AI丨五分钟了解人工智能的发展史

随着 ChatGPT 火出圈,又接二连三出现了文心一言、Midjourney、FireFly 等创新性的 AI 产品,互联网掀起的 AI 风暴已经席卷了全球各个角落。AI 究竟为什么这么强大?从什么时候开始冒出来的呢?今天我就带大家认识一下 AI 的发展史。…

软件设计师考试——面向对象设计模式分类

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、面向对象设计——设计模式的分类一、创建型模式二、结构型模式三、行为型模式 二、历年真题——面向对象设计模式分类2009上半年2009下半年2010上半年2010下半年…

深度学习神经网络学习笔记-多模态方向-12-DBpedia: A Nucleus for a Web of Open Data

摘要 DBpedia是一个社区努力从维基百科中提取结构化信息,并使这些信息在网络上可用。DBpedia允许您对来自维基百科的数据集提出复杂的查询,并将网络上的其他数据集链接到维基百科数据。我们描述了DBpedia数据集的提取,以及产生的信息如何在网…

img标签-访问绝对路径图片出现403的解决办法

img标签-访问绝对路径图片出现403的解决办法 图片请求显示403打不开 403是防止盗链的错误(这种设计,是api厂商正常保证自己的服务器不被刷流量) 方法一:使用no-referrer 这种方案不仅针对图片的防盗链,还可以是其他标签. 在前端…

「谷云科技」RestCloud新一代(智能)全域数据集成平台发布

5月18日,RestCloud在其成立六周年的当天,发布了“新一代(智能)全域数据集成平台”。 根据业内专家、学者和从业者通过实践和研究总结,数据集成大体可以分为4个阶段:早期阶段、数据集成软件工具、企业级数据…

chat gpt 中国镜像网站

随着人工智能技术的快速发展,自然语言处理对人们日常生活和工作中的应用变得越来越普及,其中机器翻译、自动问答、智能客服和语音识别等技术尤其受到欢迎。Chat GPT模型是其中一种被广泛使用的技术,由OpenAI开发,使用了Transforme…

【TCP】状态转换

TCP状态转换 这个图N多人都知道,它排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻的认识,不能只停留在一知半解之中。下面对这张图的…

Blender 建模风扇(UV贴图、图像纹理、环境纹理、伽玛、Cycles渲染)

目录 1. 风扇建模1.1 风扇外壳1.2 风扇内壳1.3 前盖1.4 后盖1.5 风扇叶1.6 扇叶连接部分1.7 其他细节 2. UV、材质、渲染2.1 材质属性:图像纹理2.2 UV贴图2.3 基础材质2.4 伽玛值2.5 世界属性:环境纹理2.6 背景平面2.7 灯光、摄像机2.8 渲染属性2.9 渲染…

COCO-Annotator安装和使用 [非常详细]

COCO-Annotator安装和使用 1.所需环境 安装COCO-Annotator前需要先安装Docker,有需要可以参考这篇文章:Windows下安装docker 2.安装 在要安装的目录下进入cmd输入命令 git clone https://github.com/jsbroks/coco-annotatorcd命令进入文件夹 cd co…

DICOM通信协议标准解析

DICOM通信协议的特点和内容概述 DICOM标准的主要特点 DICOM标准的主要特点 是一种上层网络协议 只有在建立“关联”之后,才能进行DICOM命令和数据的发送和接收。 DICOM编码的特点 标准定义了26中内部数据类型像素数据的编码支持JPEG的图像压缩图像可以包含缩略…

《元宇宙之声》:Meta MCDH

为下一代建造未来就绪的校园。 在本期节目中,我们访问了香港路德会马锦明慈善基金马陈端喜纪念中学(MCDH)的陈婉玲校长,讨论了 MCDH 改革教育的愿景,通过培养年轻的创作者,让他们迈出进入 The Sandbox 的第…

【谷粒商城之秒杀服务】

本笔记内容为尚硅谷谷粒商城秒杀服务部分 目录 一、秒杀业务的介绍 秒杀设计 秒杀流程 二、搭建秒杀服务环境 1、秒杀服务后台管理系统 2、搭建秒杀服务环境 二、定时任务 1、cron 表达式 2、测试 三、商品上架 1、远程查询秒杀的活动以及关联的商品信息 2、在R…

「一本通 1.2 练习 3」灯泡

题目描述 相比 w i l d l e o p a r d wildleopard wildleopard 的家,他的弟弟 m i l d l e o p a r d mildleopard mildleopard 比较穷。他的房子是狭窄的而且在他的房间里面仅有一个灯泡。每天晚上,他徘徊在自己狭小的房子里,思考如何赚…