自然语言处理从入门到应用——预训练模型总览:迁移学习与微调

分类目录:《自然语言处理从入门到应用》总目录
相关文章:
· 预训练模型总览:从宏观视角了解预训练模型
· 预训练模型总览:词嵌入的两大范式
· 预训练模型总览:两大任务类型
· 预训练模型总览:预训练模型的拓展
· 预训练模型总览:迁移学习与微调
· 预训练模型总览:预训练模型存在的问题


从大量无标注数据中进行预训练使许多自然语言处理任务获得显著的性能提升。总的来看,预训练模型的优势包括:

  • 在庞大的无标注数据上进行预训练可以获取更通用的语言表示,并有利于下游任务
  • 为模型提供了一个更好的初始化参数,在目标任务上具备更好的泛化性能、并加速收敛
  • 是一种有效的正则化手段,避免在小数据集上过拟合,而一个随机初始化的深层模型容易对小数据集过拟合

下图就是各种预训练模型的思维导图,其分别按照词嵌入(Word Embedding)方式分为静态词向量(Static Word Embedding)和动态词向量(Dynamic Word Embedding)方式分类、按照监督学习和自监督学习方式进行分类、按照拓展能力等分类方式展现:
预训练模型总览
思维导图可编辑源文件下载地址:https://download.csdn.net/download/hy592070616/87954682

预训练模型从大型语料库中获取通用语言知识,如何有效地将其知识适应下游任务是一个关键问题。迁移学习的方式主要有归纳迁移(顺序迁移学习、多任务学习)、领域自适应(转导迁移)、跨语言学习等。自然语言处理中预训练模型的迁移方式是顺序迁移学习。

  • 选择合适的预训练任务:语言模型是预训练模型是最为流行的预训练任务,但不同预训练任务有其自身的偏置,并且对不同的任务会产生不同的效果。例如,NSP任务可以使诸如问答(QA)和自然语言推论(NLI)之类的下游任务受益。
  • 选择合适的模型架构:例如BERT采用的MLM策略和Transformer-Encoder结构,导致其不适合直接处理生成任务。
  • 选择合适的数据:下游任务的数据应该近似于预训练模型的预训练任务,现在已有有很多现成的预训练模型可以方便地用于各种特定领域或特定语言的下游任务。
  • 选择合适的Layers进行迁移:主要包括Embedding迁移、Top Layer迁移和All Layer迁移。如word2vec和Glove可采用Embedding迁移,BERT可采用Top Layer迁移,Elmo可采用All Layer迁移。
  • 特征集成与微调:对于特征集成预训练参数是冻结的,而对于微调不是冻结的。特征集成方式却需要特定任务的体系结构,微调方法通常比特征提取方法更为通用和方便。

通过更好的微调策略进一步激发预训练模型性能:

  • 两阶段微调策略:如第一阶段对中间任务或语料进行微调,第二阶段再对目标任务微调。第一阶段通常可根据特定任务的数据继续进行微调预训练。
  • 多任务微调:MTDNN在多任务学习框架下对BERT进行了微调,这表明多任务学习和预训练是互补的技术。
  • 采取额外的适配器:微调的主要缺点是其参数效率低,每个下游任务都有自己的微调参数。因此,更好的解决方案是在固定原始参数的同时,将一些可微调的适配器注入预训练模型。
  • 逐层阶段:逐渐冻结而不是同时对所有层进行微调,也是一种有效的微调策略。

参考文献:
[1] QIU XIPENG, SUN TIANXIANG, XU YIGE, et al. Pre-trained models for natural language processing: A survey[J]. 中国科学:技术科学(英文版),2020.

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

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

相关文章

【夜深人静学数据结构与算法】回溯算法

目录 前言: 回溯算法: 回溯法的常见应用: 回溯法的模板: 回溯法的图解:​ 案例: 77. 组合 - 力扣(LeetCode) 总结: 前言: 回溯算法是一个比较抽象的算法,因此我们…

基于Springboot+vue的垃圾分类网站设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

Transformer(四)--实现验证:transformer 机器翻译实践

转载请注明出处:https://blog.csdn.net/nocml/article/details/125711025 本系列传送门: Transformer(一)–论文翻译:Attention Is All You Need 中文版 Transformer(二)–论文理解:transformer 结构详解 Transformer(三)–论文实…

【Spring】Bean的作用域与生命周期详情:请简述Spring的执行流程并分析Bean的生命周期?

前言 我们都知道,Spring框架为开发人员提供了很多便捷,这使得开发人员能够更加专注于应用程序的核心业务逻辑,而不需要花费大量时间和精力在技术细节上。作为一个包含众多工具方法的IoC容器,存取JavaBean是其极为重要的一个环节。…

linux运维常用命令(持续更新)

目录 一: 查看指定端口是否被监听 二:查看某个端口/服务相关进程 三:在B机器查看是否可以访问A机器某个端口,查看端口是否开放 四:查看端口占用列表 五:查看端口占用情况 六:查看哪些进程监听了2181端…

OpenCV(加载、修改、保存图像)

目录 1、图像加载 2、显示图像 3、修改图像 4、图像保存 OpenCV官方文档查询地址:OpenCV: OpenCV modules 1、图像加载 加载图像(用cv::imread )imread功能是加载图像文件成为一个Mat对象,其中第一个参数表示图像文件名称 第二个参数&…

Debian 环境使用 docker compose 部署 sentry

Debian 环境使用 docker compose 部署 sentry Sentry 简介什么是 Sentry ?Sentry 开发语言及支持的 SDKSentry 功能架构 前置准备条件规格配置说明Docker Desktop 安装WSL2/Debian11 环境准备 Sentry 安装步骤docker 部署 sentry 步骤演示过程说明 卸载关闭 Sentry总…

数据库系统概论(三)数据库设计、数据库恢复技术、并发控制

作者的话 前言:总结下知识点,自己偶尔看一看。 一、数据库设计 数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统 1.1概述 1.1.1数据库设计…

C#winform吃棋子

实训内容: (1)设计 WinForm应用程序用于获取指定主机名的IP地址,结果如图8-12所示。 (2)编写一个可以通过因特网对弈的“吃棋子”游戏。 服务器可以同时服务多桌,每桌允许两个玩家通过因特网对弈。 2允许玩家自由选择坐在哪一桌的哪一方。如果两个 玩家坐在同一桌,双方应都能看…

PyQt5入门1——PyQt5的安装与Hello World应用

PyQt5入门1——PyQt5的安装与Hello World应用 学习前言简介(From 百度百科)安装Hello World1、窗口构建a、构建基础类b、编写UI 2、主程序运行 全部代码 学习前言 搞搞可视化界面哈,虽然不一定有用,但是搞一下。 简介&#xff…

青岛大学_王卓老师【数据结构与算法】Week03_09_线性表的链式表示和实现9_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享,另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础–…

使用Python+Flask+HTML写一个测试小工具

背景: 由于公司安全规范限制,我司的测试、预发布、灰度、生产环境,接口间的数据通信通常是加密处理的,给我们日常定位缺陷带来了一定的阻碍,因此我决定使用Python写一个工具,将加密数据转换为正常数据&…