人类语言处理nlp部分笔记——二、BERT和它的家族-介绍和微调

news2024/10/6 8:37:07

参考自李宏毅课程-人类语言处理

二、BERT和它的家族-介绍和微调

在这里插入图片描述

1. What is pre-train model

这里所说的pre-train model是输入一串tokens,能够输出一串vectors,且每个vector可以表示对应的语义的模型,这些vectors也被称作为embeddings。以前常用的模型有word2vec,Glove等,这里并没有详细介绍,之后需要单独去看,由于英文单词太多了,只要来一个新单词,整个embedding的模型就需要重新train,为了解决这个问题,有了fasttext。fasttext是针对英文的,针对中文的则是输入图片,让模型通过图片中文字的偏旁部首去预测出训练时没见过的文字的embedding。这种训练embedding的方式,根据语言的不同会有不同的方法。
在这里插入图片描述
但是有一个问题,如果输入的token是一样的,那么每次出来的vector也一样,所以希望模型可以在输入某个token的embedding的时候,考虑上下文信息,这叫做contextualized word embedding。这样的模型基本就是基于LSTM或者self-attention layer去搭建的一个seq2seq的模型(如Bert,Megatron,Turing NLG等),可以理解为encoder。
在这里插入图片描述
为了让模型效果变好,所用的模型越来越大,参数量越来越多,有一些模型压缩方面的技术,比如Distill BERT,Tiny BERT,ALBERT等,这里没有细说。

2. How to fine-tune

将pre-train model应用到各种任务中,这里将任务按照输入和输出分类
在这里插入图片描述

2.1 Input

  • one sentence
    输入只有一个句子时,直接输入就行了,因为pre-train model也是一个句子的输入。
  • multiple sentences
    输入有多个句子时,用一个叫做“[SEP]”的分隔符将两个句子拼成一个句子,然后再输入。
    在这里插入图片描述

2.2 Output

  • one class
    输入只有一个分类的时候,有两种做法,一种做法是,在输入的开头加“[CLS]”token,然后在“[CLS]”对应的输出的embedding后面加一个head,也就是比较浅的神经网络,可以是一层全连接,然后输出想要的类别数量;另一种做法是,把所有token的输出都输入到一个head当中去,然后输出想要的类别数量。
    在这里插入图片描述
  • class for each token
    当每个token都要做分类的时候,那在模型的后面加一个seq2seq的head就可以了。
    在这里插入图片描述
  • copy from input
    比如,当任务是Extraction-based QA时,输入有question和document,因此加入“[SEP]”分隔符合并成一个序列,然后输出是找出document中的哪个token为答案的start,哪个为答案的end,这个时候,就要用两个额外的向量去分别和document中每个token的输出做dot product,然后和start向量最相关的token是start token,和end向量最相关的token是end token。
    在这里插入图片描述
  • general sequence
    当希望模型的输出也是一个sequence的时候,可以把pre-train model的输出作为输入,在后面接一个decoder,让decoder去完成输出sequence的步骤,这样的坏处是decoder是一个比较大的模型,同时也没有进行pre-train。
    在这里插入图片描述
    另一种做法是把pre-train model当作decoder去做,这就需要在inout后面加一个类似“[SEP]”的特殊符号,然后把符号的输出丢到自定义的head中,然后输出一个token,然后把这个token当作输入,重复这个过程,直到输出"[EOS]"。
    在这里插入图片描述

2.3 Fine-tune

  • 在训练的时候,可以把pre-trained model的weights都固定住,只去训练最后自定义加上去的head。
  • 也可以直接训练整个模型,虽然模型很大,但是大部分的weights是与训练过的,所以训练起来没有重头训练困难,实际经验也是这种方法比上面的方法更好。
    在这里插入图片描述
    如果要用第二种方法,不同的tast需要train不同的模型,而这样的模型往往非常大,这就很浪费计算资源和存储资源,所以就有了Adaptor。Adaptor是我们在pretrained-model里加一些layer,然后训练的时候就训练这些layer和最后的head,这样pretrained model还是不动的。
    在这里插入图片描述
    下图就是一种插入Adaptor的方式。实验证明,Adapter可以让模型调很少的参数,却达到finetune整个模型的效果,Adaptor怎么加是需要考虑的。
    在这里插入图片描述

2.4 Weighted Features

由于pre-trained model往往很大,不同层得到的feature代表的意义也不同,所以可以把各层的feature抽出来加权后输入到head,加权的weights可以是模型自己去学的。
在这里插入图片描述

3. Why fine-tune

那为什么需要fine-tune,一方面是trainning loss可以更快的收敛,下图对比随机初始化训练和预训练之后训练的training loss随epoch的变化过程。
在这里插入图片描述
另一方面是fine-tune得到的模型有更好的泛化能力,在同样去找极小值点的时候,预训练的模型找到的极小值点附近的区域更加平缓,意味着泛化能力更好。
在这里插入图片描述

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

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

相关文章

NXdfefefef

prototype:原型 CORS(Cross-Origin Resource Sharing):跨资源共享 Interceptor:拦截器 BOM:Browser Object Module(浏览器对象模型) Ajax(Asynchronous Javascript And XML):异步的JavaScript和XML,Ajax其实就是浏览器…

apifox 生成签名

目录 前言准备编写签名脚本签名说明捋清思路编码获取签名所需的参数生成签名将签名放到合适的位置完整代码 在apifox中配置脚本新增公共脚本引用公共脚本添加环境变量 参考 前言 略 准备 查看apifox提供的最佳实践文章:接口签名如何处理 编写签名脚本 签名说明…

NineData蔡冬者参与编写墨天轮《2023年中国数据库行业年度分析报告》正式发布!

为明晰发展脉络,把握未来趋势,墨天轮于5月29日正式发布 《2023年中国数据库年度行业分析报告》。该报告由墨天轮联合业界专家学者共同编写,共330页,旨在梳理和洞察中国数据库行业的发展趋势、技术创新、市场动态以及面临的挑战&am…

不讲废话,热门主食冻干鲜朗、希喂、生生不息横向分析

随着科学养宠的普及,主食冻干喂养成为了新的流行趋势。除了知名的“四大金刚”K9、VE、SC、PR外,希喂、鲜朗等新兴品牌也以其营养和高肉含量的特点,获得了消费者的青睐。各大猫粮厂商也看准了这一市场机遇,纷纷推出了自家的主食冻…

【Vue】小兔鲜首页 - 拆分模块组件 - 局部注册

文章目录 一、分析二、局部注册 一、分析 小兔仙组件拆分示意图 开发思路 分析页面,按模块拆分组件,搭架子 (局部或全局注册) 根据设计图,编写组件 html 结构 css 样式 (已准备好) 拆分封装通用小组件 (局部或全局注册),一般这…

万字详解 MySQL MGR 高可用集群搭建

文章目录 1、MGR 前置介绍1.1、什么是 MGR1.2、MGR 优点1.3、MGR 缺点1.4、MGR 适用场景 2、MySQL MGR 搭建流程2.1、环境准备2.2、搭建流程2.2.1、配置系统环境2.2.2、安装 MySQL2.2.3、配置启动 MySQL2.2.4、修改密码、设置主从同步2.2.5、安装 MGR 插件 3、MySQL MGR 故障转…

立创·天空星开发板-GD32F407VE-GPIO

本文以 立创天空星开发板-GD32F407VET6-青春版 作为学习的板子,记录学习笔记。 立创天空星开发板-GD32F407VE-GPIO 基础概念三极管MOS管 GPIO输出模式输出线与GPIO输入模式GPIO点灯 基础概念 GPIO,全称为“通用输入/输出”(General Purpose …

nvm,node不是内部命令,npm版本不支持问题(曾经安装过nodejs)

nvm安装后nvm -v有效,node指令无效 环境变量配置无问题 推荐方案 下载你需要的node版本 Index of /dist/ (nodejs.org) 下载后解压到你的nvm存储版本的位置 cmd进入切换你的使用版本(此时你的nodejs是从网上下载的,npm文件是存在的&…

react、vue动态form表单

需求在日常开发中反复写form 是一种低效的开发效率,布局而且还不同这就需要我们对其封装 为了简单明了看懂代码,我这里没有组件,都放在一起,简单抽离相信作为大佬的你,可以自己完成, 一、首先我们做动态f…

谷歌上架防关联,打包环境到底是不是关联因素之一?

在Google play上架应用,防关联是开发者们最关注的问题之一,只要开发者账号被谷歌审核系统与其它违规的开发者账号或应用存在关联,就很有可能被封号。 如果账号被封了,通常谷歌的封号通知邮件里只是写了因为关联或高风险、多次违规…

鸿蒙轻内核M核源码分析系列十七(3) 异常信息ExcInfo

本文中所涉及的源码,以OpenHarmony LiteOS-M内核为例,均可以在开源站点 https://gitee.com/openharmony/kernel_liteos_m 获取。鸿蒙轻内核异常钩子模块代码主要在components\exchook目录下。 1、异常信息的宏定义、枚举和结构体 在文件components\exch…

NSSCTF-Web题目7

目录 [SWPUCTF 2022 新生赛]ez_rce 1、题目 2、知识点 3、思路 ​编辑 [MoeCTF 2022]baby_file 1、题目 2、知识点 3、思路 [SWPUCTF 2022 新生赛]ez_rce 1、题目 2、知识点 ThinkPHP V5 框架漏洞的利用,命令执行 由于ThinkPHP5在处理控制器传参时&#xff…

RK3588+FPGA+算能BM1684X:高性能AI边缘计算盒子,应用于视频分析、图像视觉等

搭载RK3588(四核 A76四核 A55),CPU主频高达 2.4GHz ,提供1MB L2 Cache 和 3MB L3 ,Cache提供更强的 CPU运算能力,具备6T AI算力,可扩展至38T算力。 产品规格 系统主控CPURK3588,四核…

38页 | 工商银行大数据平台助力全行数字化转型之路(免费下载)

【1】关注本公众号,转发当前文章到微信朋友圈 【2】私信发送 工商银行大数据平台 【3】获取本方案PDF下载链接,直接下载即可。 如需下载本方案PPT/WORD原格式,请加入微信扫描以下方案驿站知识星球,获取上万份PPT/WORD解决方案&a…

leetcode刷题-栈与队列03

代码随想录栈与队列part02|239. 滑动窗口最大值、347.前 K 个高频元素、总结 239. 滑动窗口最大值347.前 K 个高频元素栈与队列总结 239. 滑动窗口最大值 leetcode题目链接 代码随想录文档讲解 思路: 滑动窗口的移动过程很像一个队列(先进先出&#xff0…

『大模型笔记』Transformer系列技术博文汇总!

Transformer系列技术博文汇总! 文章目录 第1篇:矩阵乘法概念解释第2篇:使用缩放点积方法的自注意力第3篇:深入探讨多头注意力、自注意力和交叉注意力第4篇:Transformer 架构第5篇:PostLN,PreLN…

Linux存储管理

简介 硬件上的存储设备目前有两类,通过磁头读写信息的机械硬盘和用主控芯片将信息写入晶体管的固态硬盘,硬盘调度算法等知识可以通过前面的操作系统设备管理文章学习,本章只介绍Linux中能对存储设备的操作。 为了让操作系统识别和管理物理磁…

企业差旅费管理如何实现真正的降本增效

看企业发展,不能只看当下,尤其对于看重长期价值的企业家来说,必须要用更长远的目光去看行业的未来。开源节流,扔掉一些没用的包袱减少负担,然后轻装上阵,并寻找企业发展的新增长点,仍然是众多企…

探索未来制造,BFT Robotics引领潮流

“买机器人,上BFT” 在这个快速变化的时代,创新和效率是企业发展的关键。BFT Robotics,作为您值得信赖的合作伙伴,专注于为您提供一站式的机器人采购和自动化解决方案。 产品系列: 协作机器人:安全、灵活、…

Vue3_对接腾讯云COS_大文件分片上传和下载

目录 一、腾讯云后台配置 二、安装SDK 1.script 引入方式 2.webpack 引入方式 三、文件上传 1.new COS 实例 2.上传文件 四、文件下载 腾讯云官方文档: 腾讯云官方文档https://cloud.tencent.com/document/product/436/11459 一、腾讯云后台配置 1.登录 对…