UniLM模型简单介绍

news2024/11/18 12:46:47

目录

一、概要

二、深入扩展

2.1 预训练任务

2.2 模型精调 


一、概要

如果将基于Transformer的双向语言模型(如BERT模型中的掩码语言模型)与单向的自回归语言模型(如BART模型的解码器)进行对比,可以发现,两者的区别主要在于模型能够使用序列中的哪部分信息进行每一时刻隐含层表示的计算。对于双向 Transformer,每一时刻隐含层的计算可以利用序列中的任意单词;而对于单向Transformer,只能使用当前时刻以及“历史”中的单词信息。基于这一思想,研究人员提出了单向Transformer结构的 统一语言模型 Unified LanguageModel,UniLM)。
不同于BART模型的编码器--解码器结构,UniLM只需要使用一个Transformer网络,便可以同时完成语言表示以及文本生成的预训练,进而通过模型精调应用于语言理解任务与文本生成任务。它的核心思想是通过使用不同的自注意力掩码矩阵控制每个词的注意力范围,从而实现不同语言模型对于信息流的控制。

二、深入扩展

2.1 预训练任务

UniLM 模型提供了一个统一的框架,可以利用双向语言模型、单向语言模型和序列到序列语言模型进行预训练。其中,基于双向语言模型的预训练使模型具有语言表示的能力,适用于语言理解类下游任务;而基于单向语言模型以及序列到序列语言模型的预训练任务使模型具有文本生成的能力。下图展示了不同的预训练任务对应的自注意力掩码模式

假设第 L 层 Transformer 的自注意力矩阵为AL,在UniLM中,AL可由下式计算

式中,QL、KL分别为第L层上下文表示经线性映射后得到的查询、键分别对应的向量:d是向量的维度。UniLM在原始自注意力计算公式的基础上增加了掩码矩阵M ∈ R(维度:n x n) ,n是输入序列的长度,M 是一个常数矩阵,定义如下

通过控制M,便可以实现不同的预训练任务。

(1)双向语言模型。输入序列由两个文本片段组成,由特殊标记 [EOS] 相隔。与 BERT 模型类似,在输入文本中随机采样部分单词,并以一定概率替换为[MASK]标记,最后在输出层的相应位置对正确词进行预测。在该任务中,序列中的任意两个词都是相互“可见”的,因此在前向传播过程中都能够被“注意”到。反映在Transformer模型中,则是一个全连接的自注意力计算过程,如图(a)所示。此时,对原始自注意力掩码矩阵不作任何变化,即M=0。
(2)单向语言模型。包括前向(自左向右)与后向(自右向左)的自回归语言模型。以前向语言模型(图(b))为例,对于某一时刻隐含层表示的计算,只能利用当前时刻及其左侧(前一层)的上下文表示。相应的自注意力分布是一个三角矩阵,灰色代表注意力值为0。相应的,掩码矩阵M在灰色区域处的值为负无穷(−∞)。
(3)序列到序列语言模型。利用掩码矩阵,还可以方便地实现序列到序列语言模型,进而应用于条件式生成任务。此时,输入序列由分别作为条件以及目标文本(待生成)的两个文本片段构成。条件文本片段内的词相互“可见” ,因此使用全连接的自注意力;对于目标文本片段,则采用自回归的方式逐词生成,在每一时刻,可以利用条件文本中的所有上下文表示,以及部分已生成的左侧上下文表示,如图(c)所示。在有关文献中,也将该结构称为前缀语言模型(PrefixLM)
与BART模型的编码器--解码器框架不同,这里的编码与解码部分共享同一套参数,而且在自回归生成的过程中,与条件文本之间的跨越注意力机制也有所区别。

2.2 模型精调 

(1)分类任务。对于分类任务,UniLM的精调方式与BERT类似。这里使用双向Transformer编码器(M=0),并以输入序列的第一个标记[BOS]处的最后一层隐含层表示作为文本的表示,输入至目标分类器,再利用目标任务的标注数据精调模型参数。
(2)生成任务。对于生成任务,随机采样目标文本片段中的单词并替换为[MASK]标记,精调过程的学习目标是恢复这些被替换的词。值得注意的是,输入序列尾部的[EOS]标记也会被随机替换,从而让模型学习什么时候停止生成。

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

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

相关文章

常见的注册中心Nacos、Eureka

常见的注册中心 1.Eureka(原生,2.0遇到瓶颈,停止维护) 2.Zookeeper(支持,专业的独立产品。例如:dubbo) 3.Consul(原生,GO语言开发) 4.Nacos …

中国社科院与美国杜兰大学金融管理硕士项目——在职读研的日子里藏着我们未来无限可能

人生充满期待,梦想连接着未来。每一天都可以看作新的一页,要努力去成为最好的自己。在职读研的光阴里藏着无限的可能,只有不断的努力,不断的强大自己,未来会因为你的不懈坚持而发生改变,纵使眼前看不到希望…

算法---统计参与通信的服务器

题目 这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。 如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。 请你统计并返回能够与至少一台其…

【C语言】调试工具GDB简述

一、说明 GDB(GNU Debugger)是UNIX及UNIX-like下的强大调试工具,可以调试ada, c, c, asm, minimal, d, fortran, objective-c, go, java,pascal等语言。本文介绍GDB启动调试的方式。 二、Ubuntu上安装gdb。 在root用户权限下: roo…

【通过蓝牙滚动文本和Android控制】

【通过蓝牙滚动文本和Android控制】 1. 概述2. MAX72193. 电路原理图4. MAX7219基本Arduino代码5. 88 LED矩阵滚动Arduino代码6. 用于通过蓝牙控制 88 LED 矩阵的安卓应用程序1. 概述 我们将做三个例子,第一个例子我们将解释MAX7219的基本工作原理,在第二个例子中,我们将看…

scala控制抽象之传名参数(名调用)

我们在用scala定义函数时,一般参数都是各种类型的值,这是常见的值调用 但偶尔也有需要把代码块作为参数传入的情况(名调用) 匿名函数经常可以作为函数的参数传入,非匿名函数也行(函数作为返回值返回就更常见…

都说软件测试不行了,真的是这样吗?

最近在各大平台经常会听到大家说这样的话: 现在公司都不招人,测试员根本找不到工作 简历石沉大海、面试机会也没有,软件测试是不是不行了 软件测试行情到底如何? 作为软件员在如今的情况下又该怎么做? 其实现在所…

ai生成文章 免费-自动生成文章

原创文章自动生成器 随着人工智能技术的快速发展,越来越多的创新产品得以应用到我们的日常工作中。其中,原创文章自动生成器是一种高效、智能的工具,它可以帮助企业快速生成符合要求的优质文章。在本文中,我将向您介绍原创文章自…

数据结构算法leetcode刷题练习(1)

给定一个三角形 triangle ,找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一…

4.2 插值多项式的求法

学习目标: 我会采取以下几个步骤来学习插值多项式的求法: 学习预备知识:插值多项式的求法需要掌握一定的数学知识,例如多项式函数的定义、导数、微积分、线性代数等等。因此,学习插值多项式的求法前,需要先…

掘金AIGC时代,开发者更需要什么样的大模型?

当前,火热的AI大模型领域需要一些冷思考。 自去年年底ChatGPT掀起一轮AIGC热潮以来,国内科技企业扎堆发布大模型和类ChatGPT产品。截止2023年4月,已公开宣布发布或即将发布AI大模型的企业达数十家。多模态大模型的能力不断迭代,市…

2023年自动化测试真有那么重要吗?内卷严重,测试技能水涨船高......

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 学习自动化测试有…

应用现代化语境下的技术重塑:谁在帮助企业自我革命?

文丨智能相对论 作者丨沈浪 在数字经济时代,应用现代化正在成为一个共识。在IDC发布的《IDC FutureScape:全球云计算2022年预测-中国启示》报告中,应用现代化就位居首位。同时,IDC也预测,到2025年,数字经…

更新 WinForms | InitializeComponent 的现代代码生成

当你使用 Visual Studio 中的 WinForms Designer 来创建一个 WinForms 表单或用户控件时,它并没有像 XML 或 HTML 那样的特殊定义或文件格式来表示用户界面。从一开始,WinForms 使用的唯一格式就是程序代码。在 WinForms Visual Basic 项目中定义的表单或…

ONES 联合中国信通院发布《中国企业软件研发管理白皮书》

4月20日,由 ONES 与中国信通院联合发起的《中国企业软件研发管理白皮书》发布会暨「软件质效沙龙一北京站」正式举行。发布会上,ONES 与中国信通院云计算与大数据研究所的各位领导、行业专家及众多软件从业者一起,聚焦研发管理热点动态&#…

【hello C++】内存管理

目录 前言: 1. C/C内存分布 2. C语言动态内存管理方式 3. C内存管理方式 3.1 new / delete 操作内置类型 3.2 new和delete操作自定义类型 4. operator new与operator delete函数 4.1 operator new与operator delete函数 5. new和delete的实现原理 5.1 内置类型 5.2…

杭州乐芯CNC 机器人采集方法汇总

杭州乐芯CNC数据采集方法及支持的系统 一,杭州乐芯CNC 机器人采集方法汇总 1,采用SDK开发包采集,比如发那科 FANUC \三菱 、海德汉、大隈OKUMA(O-API)、华中数控、凯恩帝、沙迪克、牧野电火花、台湾宝元、上海来钠克…

怎么把avi文件转换成mp4视频格式,4个高能方法

怎么把avi文件转换成mp4视频格式? 当您下载到avi格式的视频文件时,您可能会选择将其转换为MP4格式的文件。 avi是一种由微软开发的多媒体容器格式,尽管现在已经被认为是老旧的技术,但由于其简单易懂的开发API和Windows的通用性&am…

【CSS3】CSS3 2D 转换 - rotate 旋转 ② ( 使用 rotate 旋转绘制三角形 )

文章目录 一、使用 rotate 旋转绘制三角形二、代码示例 一、使用 rotate 旋转绘制三角形 使用 rotate 旋转绘制三角形 的原理 : 先绘制正方形 , 为该正方形设置边框 , 只设置 右侧 和 下方的 边框 , div {width: 40px;height: 40px;border-right: 2px solid black;border-bott…

tmux---linux终端复用器使用

tmux---linux终端复用器使用 tmux 介绍安装使用tmux会话管理新建会话分离会话接入会话杀死会话切换会话重命名会话 窗格操作划分窗格移动光标交换窗格位置窗格快捷键 tmux 介绍 命令行的典型使用方式是,打开一个终端窗口(terminal window,以…