自然语言处理从入门到应用——预训练模型总览:预训练模型的拓展

分类目录:《自然语言处理从入门到应用》总目录


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

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

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

引入知识

预训练模型通常从通用大型文本语料库中学习通用语言表示,但是缺少特定领域的知识。预训练模型中设计一些辅助的预训练任务,将外部知识库中的领域知识整合到预训练模型中被证明是有效的。

  • ERNIE-THU:将在知识图谱中预先训练的实体嵌入与文本中相应的实体提及相结合,以增强文本表示。由于语言表征的预训练过程和知识表征过程有很大的不同,会产生两个独立的向量空间。为解决上述问题,在有实体输入的位置,将实体向量和文本表示通过非线性变换进行融合,以融合词汇、句法和知识信息。
  • LIBERT(语言知识的BERT):通过附加的语言约束任务整合了语言知识。
  • SentiLR:集成了每个单词的情感极性,以将MLM扩展到标签感知MLM(LA-MLM),ABSA任务上都达到SOTA。
  • SenseBERT:不仅能够预测被mask的token,还能预测它们在给定语境下的实际含义。使用英语词汇数据库WordNet作为标注参照系统,预测单词在语境中的实际含义,显著提升词汇消歧能力。
  • KnowBERT:与实体链接模型以端到端的方式合并实体表示。
  • KG-BERT:显示输入三元组形式,采取两种方式进行预测:构建三元组识别和关系分类,共同优化知识嵌入和语言建模目标。这些工作通过实体嵌入注入知识图的结构信息。
  • K-BERT:将从KG提取的相关三元组显式地注入句子中,以获得BERT的扩展树形输入。
  • K-Adapter:通过针对不同的预训练任务独立地训练不同的适配器来注入多种知识,从而可以不断地注入知识,以解决注入多种知识时可能会出现灾难性遗忘问题。

此外,这类预训练模型还有WKLM、KEPLER等。

模型压缩

由于预训练的语言模型通常包含至少数亿个参数,因此很难将它们部署在现实应用程序中的在线服务和资源受限的设备上。模型压缩是减小模型尺寸并提高计算效率的有效方法。

  • Pruning(剪枝):将模型中影响较小的部分舍弃。如Compressing BERT,还有结构化剪枝LayerDrop,其在训练时进行Dropout,预测时再剪掉Layer,不像知识蒸馏需要提前固定student模型的尺寸大小。
  • Quantization(量化):将高精度模型用低精度来表示。如Q-BERT和Q8BERT,量化通常需要兼容的硬件。
  • Parameter Sharing (参数共享):相似模型单元间的参数共享。ALBERT主要是通过矩阵分解和跨层参数共享来做到对参数量的减少。
  • Module Replacing(模块替换):BERT-of-Theseus根据伯努利分布进行采样,决定使用原始的大模型模块还是小模型,只使用task loss。
  • Knowledge Distillation (知识蒸馏):通过一些优化目标从大型、知识丰富、fixed的teacher模型学习一个小型的student模型。蒸馏机制主要分为3种类型:
    • 从软标签蒸馏:DistilBERT、EnsembleBERT
    • 从其他知识蒸馏:TinyBERT、BERT-PKD、MobileBERT 、MiniLM、DualTrain
    • 蒸馏到其他结构:Distilled-BiLSTM
预训练模型知识蒸馏方法
DistilBERT软标签蒸馏,KL散度作为沁ss
TinyBERT层与层蒸馏:Embedding / Hidden State / Self-attention Dlstributions
BERT-PKD层与层蒸馏:Hidden State
MobileBERT软标签蒸馏+层与层蒸馏:Hidden State / Self-attention Dlstributions
MiniLMSelf-attention Dlstributions / Self-attention Value Relation
Dual TrainDual Projection
Distilled-BiLSTM软标签蒸馏,将Transformer蒸馏到LSTM
EnsembleBERT取多个Ensemble模型的软标签进行蒸馏

多模态

随着预训练模型在自然语言处理领域的成功,许多研究者开始关注多模态领域的预训练模型,主要为通用的视觉和语言特征编码表示而设计。多模态的预训练模型在一些庞大的跨模式数据语料库(带有文字的语音、视频、图像)上进行了预训练,如带有文字的语音、视频、图像等,主要有 VideoBERT、CBT 、UniViLM、ViL-BERT、LXMERT、 VisualBERT、B2T2、Unicoder-VL、UNITER、VL-BERT、SpeechBERT等。

领域预训练

大多数预训练模型都在诸如Wikipedia的通用语料中训练,而在领域化的特定场景会收到限制。如基于生物医学文本的BioBERT,基于科学文本的SciBERT,基于临床文本的Clinical-BERT。一些工作还尝试将预训练模型适应目标领域的应用,如医疗实体标准化、专利分类PatentBERT、情感分析SentiLR关键词提取。

多语言和特定语言

学习跨语言共享的多语言文本表示形式对于许多跨语言的NLP任务起着重要的作用。Multi-lingualBERT在104种Wikipedia文本上进行MLM训练(共享词表),每个训练样本都是单语言文档,没有专门设计的跨语言目标,也没有任何跨语言数据,Multi-lingualBERT也可以很好的执行跨语言任务。XLM通过融合跨语言任务(翻译语言模型)改进了M-BERT,该任务通过拼接平行语料句子对进行MLM训练。Unicoder提出了3种跨语言预训练任务:cross-lingual word recovery、cross-lingual paraphrase classification和cross-lingual masked language model。虽然多语言的预训练模型在跨语言上任务表现良好,但用单一语言训练的预训练模型明显好于多语言的预训练模型。此外一些单语言的预训练模型被提出:BERT-wwm、ZEN、NEZHA[、ERNIE-Baidu、BERTje、CamemBERT、FlauBERT、RobBERT。

参考文献:
[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/4474.html

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

相关文章

短视频seo源码部署打包分享---开源

功能概要: 1. 按关键词搜索账号排名 2. 按关键词布局查询视频排名 3. 按天计费功能开发 4. 达标天数及关键词数量统计 开发概要: 区别于其他开发者,同类产品多用第三方,如:站长之家,本系统代码开发使…

手机便签软件推荐 有没有什么好用的手机便签软件app

在外出需要记事的时候,很多人会使用手机上的便签工具来完成。那手机便签软件推荐哪个比较好,有没有好用的手机便签软件app推荐呢?下面小编就为大家推荐一些用起来体验很不错的手机便签app软件。 一、敬业签 敬业签具备多种便签记事和提醒方式…

Vulnhub: EvilBox:One靶机

kali:192.168.111.111 靶机:192.168.111.130 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.130 secret目录爆破 feroxbuster -k -d 1 --url http://192.168.111.130/secret/ -w /opt/zidian/SecLists-2022.2/Disco…

element封装 table表格 ,插槽的使用,修改el-table-column的值

举例 vue2这种不封装的 直接写的很罗嗦麻烦 下面圈起来的可以封装一个对象 进行循环 弊端: 循环后 无法进行获取更改某一列的值 比如data日期我需要转换年月日 不循环我直接在这个el-table-column的这一列进行写&#xff08;如下&#xff09; <el-table-column label&quo…

Vue Router replace 编程式导航 缓存路由组件

6.9.路由跳转的 replace 方法 作用&#xff1a;控制路由跳转时操作浏览器历史记录的模式浏览器的历史记录有两种写入方式&#xff1a;push和replace push是追加历史记录replace是替换当前记录&#xff0c;路由跳转时候默认为push方式 开启replace模式 <router-link :replac…

创业书籍推荐,这些书经商必读

对于许多想要创业的人来说&#xff0c;成功的关键在于掌握正确的知识和技能。虽然创业的实际经验是无可替代的&#xff0c;但是通过阅读经验丰富的人士写的书籍&#xff0c;可以提前了解创业、经商过程中可能遇到的挑战&#xff0c;并为成功奠定基础。在这篇文章中&#xff0c;…

CPU acceleration status: KVM requires a CPU that supports vmx or svm

关闭虚拟机&#xff0c;选择处理器将虚拟化引擎第一个选项选上&#xff0c;重新打开虚拟机&#xff0c;进行编译打开模拟器。 source build/envsetup.shlunch aosp_x86_64-engemulator

数据结构--队列的顺序实现

数据结构–队列的顺序实现 队列的顺序存储代码定义 #define MaxSize 10 //定义队列中元素最大个数 typedef struct {ElemType data[MaxSize]; //静态数组存放队列元素int front, rear; //对头指针 & 队尾指针 } SqQueue; 初始化操作 void InitQueue(SqQueue &Q) {Q.r…

C# Excel表列名称

168 Excel表列名称 给你一个整数 columnNumber &#xff0c;返回它在 Excel 表中相对应的列名称。 例如&#xff1a; A -> 1 B -> 2 C -> 3 … Z -> 26 AA -> 27 AB -> 28 … 示例 1&#xff1a; 输入&#xff1a;columnNumber 1 输出&#xff1a;“A”…

ChatGPT 和爬虫有什么区别?

ChatGPT是一种基于人工智能的对话模型&#xff0c;它通过训练大量的文本数据来生成自然语言回复。它可以用于实现智能对话系统&#xff0c;能够理解用户的输入并生成相应的回复。ChatGPT的目标是模拟人类对话&#xff0c;使得对话更加流畅和自然。 而爬虫是一种用于自动化地从…

36.SpringBoot实用篇—运维

目录 一、实用篇—运维。 &#xff08;1&#xff09;程序打包与运行&#xff08;Windows版&#xff09;。 &#xff08;2&#xff09;spring-boot-maven-plugin插件作用。 &#xff08;3&#xff09;程序打包与运行&#xff08;Linux版&#xff09;。 &#xff08;4&#…

Vue3对于一个前端来讲意味着什么?

最近很多技术网站&#xff0c;讨论的最多的无非就是Vue3了&#xff0c;大多数都是Composition API和基于Proxy的原理分析。但是今天想着跟大家聊聊&#xff0c;Vue3对于一个低代码平台的前端更深层次意味着什么&#xff1f; 首先&#xff0c;Vue是前端三大主流框架之一&#xf…