PEGASUS模型介绍

PEGASUS介绍

概述

模型论文为Pre-training with Extracted Gap-sentences for Abstractive Summarization,简称为PEGASUS。面向的情况主要是因为目前预训练语言任务主要为MLM和NSP任务,即为掩码预测任务和下一句预测任务,没有面向生成式文本摘要的预训练任务。因此PEGASUS提出在预训练阶段的时候,将重要的句子作为MASK1,掩盖后,通过encoder-decoder的结构运用MASK1覆盖后的句子预测MASK1的句子,在一定程度上模拟摘要生成

PEGASUS假设前提为在预训练过程中,约接近下游任务的预训练任务可以获取更好的下游任务性能

PEGASUS模型的预训练任务主要有两个,分别为gap句子生成和掩码预测任务。Gap句子生成主要模拟抽取式摘要文本生成。

  • GSS(Gap Sentence Generation)

  • MLM(Mask Language Model)

模型框架图示

  • MASK1为我们所模拟生成式摘要的句子,MASK2主要为MLM任务

Gap Sentence Generation(GSG)

前提为预训练目标与下游任务约接近,finetune效果会更好。通过运用span mask的思想,将整个句子运用MSAK1遮盖预测,除此之外,将MASK1拼接为起来,形成一个伪摘要。Gap sentence ration(GSR)用于描述MASK1在文档中的总比例。

  • G S R = 输入句子中 M A S K 1 总个数 ) 输入句子中 t o k e n 总个数 GSR = \frac{输入句子中MASK1总个数)}{输入句子中token总个数} GSR=输入句子中token总个数输入句子中MASK1总个数)

但是选择不同的句子会有不一样的结果,因此提出了下列集中选择句子的方式。定义n个句子文档集 D = x i n D = {x_i}n D=xin,n为句子个数, x i x_i xi为第i个句子。D为文档。

  • Random,随机选取m个句子
  • Lead,选取文章中前m个句子
  • Principal, 根据特定指标,选取得分高的top-m个句子

Principle 选择方式

  1. 独立性选择(independently,ind),根据选中句子和其他句子集合的ROUGE1-F1来计算,具体公式如下,最终选取前m个 s i s_i si句子。
    1. s i = r o u g e ( x i , D ∖ { x i } ) s_i=rouge(x_i,D\setminus\{x_i\}) si=rouge(xi,D{xi})
  2. 连续性选择(Sequential Sentence Selection,seq),通过贪婪最大化选择句子集合和其他句子子集的ROUGE1-F1值选取,具体算法描述如下所示。
    1. ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=src%2Fimage-20231213165342464.png&pos_id=img-cyGugoWi-1703923178577在这里插入图片描述

在计算ROUGE1-F1的时候存在UniqOrig,具体差异如下图所示。

  • 如果为Uniq,即为先处理句子集合,去除重复的n-gram,再计算指标
  • 如果为Orig,即为考虑保留原始句子,允许n-gram出现

Tip:Rouge-N实际上是将模型生成的结果和标准结果按N-gram拆分后,计算召回率。比如有2个句子(一般模型生成的成为hypothesis,简写hyp;标准结果称为reference,简写为ref)

R o u g e − N = ∑ S ∈ R e f e r e n c e S u n m a r i e s C o u n t m a t c h ( g r a m n ) ∑ S ∈ R e f e r e n c e S u m a r i e s ∑ g r a m n ∈ S C o u n t ( g r a m n ) Rouge{-}N=\frac{\sum_{S\in ReferenceSunmaries}Count_{match}(gram_n)}{\sum_{S\in ReferenceSumaries}\sum_{gram_n\in S}Count(gram_n)} RougeN=SReferenceSumariesgramnSCount(gramn)SReferenceSunmariesCountmatch(gramn)

结论

最终得到一共有四种,结合之前的Random以及Lead,最终有Ind-Uniq,Ind-Orig,Seq-Uniq,Seq-Orig,Random,Lead共六种选择。

最终确定了将文档的SGR(选取30%)的句子作为Gap sentence句子,而且在选择MASK1的时候,运用Ind-Orig对方式,结果最好。

MLM掩码预测任务选择

在文中共有三种方法。

  1. 类似于BERT做法,输入文本的15%的tokens, 80%的被替换为[MASK2], 10%的被随机的token替换 10%未发生变化,在finetune的时候共享encoder参数
  2. 只用CSG,不运用常见MLM
  3. 在运用CSG的基础上,在没有被选中的句子中选取15%作为常见MLM任务。

结论

只用MLM的效果最差,但是在100K-200K的参数中,用MLM+GSG效果较好,但是在200K之后,运用MLM效果反而下降,因此在训练大规模参数PEGASUS-large中只运用了GSG,在PERASUS-base中只运用了GSG+MLM。

参考

此在训练大规模参数PEGASUS-large中只运用了GSG,在PERASUS-base中只运用了GSG+MLM。

参考

PEGASUS模型:一个专为摘要提取定制的模型
PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive Summarization

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

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

相关文章

普中STM32-PZ6806L开发板(HAL库函数实现-USART1 printf+scanf/gets)

简介 实现printfscanf/gets通过USART1 的发送接收。 电路原理图 板载USB CH340串口电路原理图主芯片串口引脚图 我的板子板子自带串口坏掉了, 所以使用USB转TTL线, 连接如下 电路原理图 实物图 其他知识 scanf是以空白符(空格、制表符、换行等等)为结束标志的,当遇到空白符…

Unity坦克大战开发全流程——开始场景——开始界面

开始场景——开始界面 step1:设置UI 反正按照这张图拼就行了 step2:写脚本 前面的拼UI都是些比较机械化的工作,直到这里写代码的时候才真正开始有点意思了,从这里开始,我们就要利用面向对象的思路来进行分析&#xff1…

AJAX:整理3:原生AJAX的相关操作

注意AJAX的步骤 // 1.创建对象 const xhr new XMLHttpRequest()// 2.初始化 设置 请求方法 和 url xhr.open("GET", "http://localhost:9090/server")// 3.发送 xhr.send()// 4.事件绑定 处理服务端返回的结果 // readyState 是xhr对象中的属性&#xff…

超维空间S2无人机使用说明书——51、基础版——使用yolov8进行目标跟踪

引言:为了提高yolo识别的质量,提高了yolo的版本,改用yolov8进行物体识别,同时系统兼容了低版本的yolo,包括基于C的yolov3和yolov4,以及yolov7。 简介,为了提高识别速度,系统采用了G…

Vue小练习--任务列表

这是一个非常实用的例子,主要实用的是v-model、v-on、v-for指令,javaScript的数组也会涉及一些,javaScript数组方法有很多,本文使用的添加元素和删除元素非常实用,可以记下来。 设计思路 很多例子看起来很难&#xf…

使用Google OSV工具扫描依赖安全漏洞

安全漏洞是软件工程化能力的试金石 2021年年底,Log4j的漏洞陆续被公开。因为该框架被大量的开源软件依赖,所以,漏洞影响面非常大。 面对这个漏洞,我们遇到的第一个问题是:如何知道我们哪些工程使用了Log4j?…

用python画最简单的图案,用python画小猫简单代码

本篇文章给大家谈谈用python画小猫简单100行代码,以及用python画最简单的图案,希望对各位有所帮助,不要忘了收藏本站喔。 Source code download: 本文相关源码 from turtle import * #两个函数用于画心 defcurvemove():for i in range(200): …

电池充电器、监控器和控制器AD7284WBSWZ、LT8490EUKJ、LTC4162EUFD-FAD、LTC4162IUFD-LAD【电源管理】

1、AD7284WBSWZ 8通道锂离子电池监控系统 IC 64LQFP AD7284 8通道锂离子电池监控系统包括对堆叠式锂离子电池进行通用监控所需的全部功能。AD7284具有支持四到八个电池管理单元的多路复用单元电压和辅助模数转换器 (ADC) 测量通道。设计人员可以使用四个辅助ADC输入通道进行温…

lag-llama源码解读(Lag-Llama: Towards Foundation Models for Time Series Forecasting)

Lag-Llama: Towards Foundation Models for Time Series Forecasting 文章内容: 时间序列预测任务,单变量预测单变量,基于Llama大模型,在zero-shot场景下模型表现优异。创新点,引入滞后特征作为协变量来进行预测。 获得…

Power Apps 学习笔记 - IOrganizationService Interface

文章目录 1. IOrganization Interface1.1 基本介绍1.2 方法分析 2. Entity对象2.1 Constructor2.2 Properties2.3 Methods 3. 相关方法3.1 单行查询 Retrive3.2 多行查询 RetriveMultiple3.3 增加 Create3.4 删除 Delete3.5 修改 Update 1. IOrganization Interface 1.1 基本介…

rax3000m刷openwrt固件

rax3000m刷机过程(nand版本) 刷机准备文件https://www.123pan.com/s/X5m9-6Ynj.html提取码:VtBW 接线关系:路由器lan口接电脑 1.上传配置开启ssh的配置文件(登录路由器后台管理界面在找到配置管理,上传配置文件rax3…

[NCTF 2022] web题解

[NCTF 2022]calc 考点:python环境变量注入 打开题目,F12有hint 访问一下得到源码 app.route("/calc",methods[GET]) def calc():ip request.remote_addrnum request.values.get("num")log "echo {0} {1} {2}> ./tmp/log…

【Unity美术】Unity工程师对3D模型需要达到的了解【一】

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

后端程序员React初接触1

后端程序员React初接触 学习react基础与相关库的使用学习 包括react基础 路由 组件库等等 react是用于构建用户界面的JavaScript库 发送请求获取数据处理数据操作dom呈现页面(react帮忙操作dom) 数据渲染为视图 有facebook打造并开源 解决的问题 dom操…

集群部署篇--Redis 哨兵模式

文章目录 前言一、哨兵模式介绍:1.1 介绍:1.2 工作机制: 二、哨兵模式搭建:2. 1 redis 主从搭建:2.2 setinel 集群搭建:2.2.1 配置: sentinel.conf :2.2.2 运行容器:2.2.…

jQuery日历签到插件下载

jQuery日历签到插件下载-遇见你与你分享

【MySQL】数据库之存储过程(“SQL语句的脚本“)

目录 一、什么是存储过程? 二、存储过程的作用 三、如何创建、调用、查看、删除、修改存储过程 四、存储过程的参数(输入参数,输出参数,输入输出参数) 第一种:输入参数 第二种:输出参数 …

Leetcode算法系列| 10. 正则表达式匹配

目录 1.题目2.题解C# 解法一:分段匹配法C# 解法二:回溯法C# 解法三:动态规划 1.题目 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 1.‘.’ 匹配任意单个字符 2.‘.’ 匹配任意单个字…

【DevOps 工具链】日志管理工具 - 22种 选型(读这一篇就够了)

文章目录 1、简述2、内容分类3、归纳对比表(排序不分先后)4、日志管理主要目的5、日志管理工具 22种 详细(排序不分先后)5.1、ManageEngine EventLog Analyzer5.1.1、简介5.1.2、效果图5.1.3、日志管理架构5.1.4、EventLog Analyz…

HarmonyOS 路由传参

本文 我们来说两个page界面间的数据传递 路由跳转 router.pushUrl 之前我们用了不少了 但是我们只用了它的第一个参数 url 其实他还有个params参数 我们第一个组件可以编写代码如下 import router from ohos.router Entry Component struct Index {build() {Row() {Column() …