prompt模型详解之文本生成

news2024/11/16 11:29:01

prompt在生成方面的应用从两个方面进行介绍:

  • 评估手段

  • 具体任务

评估手段

生成任务的评估手段主要分为四种类型:

  • 1). 基于N-gram匹配

  • 2). 基于编辑距离 

  • 3). 基于词向量 

  • 4). 基于可学习方式。

本小节主要介绍BARTSCORE,其使用prompt方式将评估问题转化为文本生成问题的可学习方式。

自然语言生成的自动评估的目标是评估语义相似性,但通常的方法只是依赖于表面形式的相似性,因此,BERTSCORE借助预训练模型BERT的embedding来衡量两个句子的语义相似性。

BERTSCORE解决了基于N-gram匹配的两个问题:

  • 1)、无法鲁棒匹配语义;

  • 2)、无法捕捉远距离依赖关系和惩罚重要语义顺序的更改。

BARTScore: Evaluating Generated Text as Text

论文链接:https://arxiv.org/pdf/2106.11520.pdf

相较于以往的评估方式,在生成评估的背景下,模型如何使用文本生成任务目标进行预训练和如何被使用作为下游任务的特征提取器之间存在脱节。这将导致预训练模型参数没有被充分利用。该论文将文本生成的评估问题看作生成问题,能够从七个角度评估生成文本的质量,并可以通过prompt和fine-tuning来增强BARTSCORE。

BARTSCORE的核心思想为,一个高质量的假设能够很容易地基于源文本或参考文本生成,反之亦然。计算方式如下,wt 为待生成句子中token的权重(加权重效果不好):

具体计算含义如下所示:

CalculationImplicationEvaluation & Application
Faithfulness(s->h)从source document生成hypothesis的概率Factuality,Relevance,Coherence and Fluency
Precision(r->h)从reference text生成hypothesis的概率precision-focused scenario
Recall(h->r)从hypothesis生成reference text的概率semantic coverage
F-score(r<->h)综合考虑Precision和Recallsemantic overlap(informativeness,adequacy)

prompt增强:对于给定的prompt token:z={z1,...,zl},source token: x={x1,...,xn}和target token:y={y1,...,ym} ,有两种prompt的方式:

  • (i)在source token后添加prompt token:x={x1,...,xn,z1,...,zl};

  • (ii)在target token前添加prompt token:y={z1,...,zl,y1,...,ym}。prompt的模板集合通过paraphrase重构种子模板获取得到。

fine-tuning 任务:

  • 1). summarization 任务,使用CNNDM数据集;

  • 2). paraphrasing任务,使用ParaBank2数据集。

在多个实验中,BARTSCORE取得了很好的效果,但是引入prompt也有可能会导致效果变差,在事实性评估角度中,只有少数的prompt可以提升性能。

具体任务

本小节介绍三篇使用prompt进行文本生成任务的论文,涵盖摘要、QA、诗歌生成、回复生成多个任务。

Generation Planning with Learned Entity Prompts for Abstractive Summarization

论文链接:https://arxiv.org/pdf/2103.10685.pdf

该论文通过引入简单灵活的中间过程来生成摘要,构造prompt prefix提示生成对应的实体链和摘要,prompt模板为:[ENTITYCHAIN] entity chain [SUMMARY] summary,该方式使模型能够学会链接生成的摘要和摘要中的实体链。另外,可以通过删除预测实体链中的不可靠实体来生成可靠摘要,更为灵活。

Controllable Generation from Pre-trained Language Models via Inverse Prompting

论文链接:https://arxiv.org/pdf/2103.10685.pdf

可控文本中给的提示原不足够,这导致易在生成过程中逐渐偏离主题,因此该论文提出inverse prompt来更好的控制文本生成,激励生成文本与prompt之间的联系。模型结构如下图所示:

具体做法为:

  1. 根据给定的生成文本构造inverse prompt,对应图中表格Inverse Prompt cg′ 。

  2. 根据给定的inverse prompt计算其原始prompt,对应图中表格Inverse Text cp′ 。

  3. 依据条件似然计算beam search的分数,生成最佳候选。

实验证明该方法在QA和诗歌生成两个任务上均可以取得很好的效果,能够给出准确流利的信息。但同时也存在数字输出混乱和无法理解出现频率低的词的问题。

Response Generation with Context-Aware Prompt Learning

论文链接:https://arxiv.org/pdf/2111.02643.pdf

该论文设计了一个新颖的动态prompt编码器来鼓励上下文感知的prompt learning,以更好地重利用大规模预训练语言模型中的知识并生成更有知识的回复。模型结构如下图所示:

首先将上文文本的embedding送入可学习的prompt编码器中获得感知上文的prompt编码表示,再同时利用prompt的编码表示和上文文本来预测下文。论文中实验证明该方法可以有效利用预训练语言模型中的知识来促进富有知识的高质量回复。

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

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

相关文章

Python杂题

目录 一、前言 二、例题1——修剪灌木 三、例题2—— 付账问题 四、例题3——最少砝码 五、例题四——矩形拼接 六、例题五——蜂巢 一、前言 竞赛题有很多不需要什么算法的题目&#xff0c;只要学过编程语言就能做&#xff0c;其考核思维、逻辑、编码能力。而这种题有“…

【算法题解】 8. K 个一组翻转链表

文章目录题目解题思路代码实现复杂度分析题目 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持…

Python中编码(encode)解码(decode)讲解

嗨害大家好鸭&#xff01;我是小熊猫~ 这次也是给大家带来一点干货~ 所用素材:点击此处跳转文末名片获取 一、python3中str与unicode 在python3中&#xff0c;字符串有两种形式&#xff1a;str和bytes&#xff0c;两者区别如下&#xff1a; unicode string(str类型)&#xf…

【经验】关于区分cin、getline、cin.getline三种字符串输入的区别

cin 既可以输入char[]数组&#xff0c;也可以输入string类型&#xff0c;输入会被空格打断 cin对char进行输入 #include<bits/stdc.h> using namespace std; int main(){char ch[50];cin>>ch;cout<<strlen(ch)<<endl;for(int i0;i<strlen(ch);i){…

1.移动机器人发展现状

移动机器人主要应用场景&#xff1a; 场景1.仓储机器人(AGV自动导引运输车)&#xff1a;电商企业用户下单后机器人可以实现自动分拣和发货。需要多个传感器配合 2.自动驾驶领域(AMR自主移动机器人):车辆避让行人、导航等 热点研究领域&#xff1a; 环境感知和建模、人机交互…

2022简要总结和2023行动指南

在这辞旧迎接之际&#xff0c;心存感恩&#xff0c;放眼未来。 祝宝妈妈宝&#xff0c;幸福快乐&#xff1b; 祝国泰民安&#xff0c;政通人和。 祝百融云创系&#xff0c;生意兴隆&#xff1b; 祝公司老板们&#xff0c;大展宏图&#xff1b; 祝同事同行er&#xff0c;身…

Java算法_LeetCode:旋转数组

旋转数组 给你一个数组&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2,3,…

Fastsapi的小疑问

1. Fastapi中的get和post区别是什么&#xff1f; 答&#xff1a;get参数传输暴露在外&#xff0c;post隐式传输 GET参数获取&#xff1a;获取一个URL后面带?param11&param22这种形式。 特点&#xff1a;URL上直接编辑传输&#xff0c;方便快捷&#xff0c;但是信息暴露在…

【nowcoder】笔试强训Day16

目录 一、选择题 二、编程题 2.1扑克牌大小 2.2完全数计算 一、选择题 1.在关系型是数据库中&#xff0c;有两个不同的事务同时操作数据库中同一表的同一行&#xff0c;不会引起冲突的是&#xff1a; A. 其中一个DELETE操作&#xff0c;一个是SELECT操作 B. 其中两个都是…

植物大战僵尸:代码实现无限阳光

通过逆向分析植物阳光数量的动态地址找到阳光的基址与偏移&#xff0c;从而实现每次启动游戏都能够使用基址加偏移的方式定位阳光数据&#xff0c;最后我们将通过使用C语言编写通用辅助实现简单的无限阳光辅助&#xff0c;在教程开始之前我们先来说一下为什么会有动态地址与基址…

光缆单盘检测与光缆线路测试需使用双窗口吗?

1 引言 光缆线路和宽带接入工程中&#xff0c;通常会涉及光缆单盘检测与光缆线路的测试工作&#xff0c;光缆线路测试包括&#xff1a;中继段测试、用户光缆测试等。这些测试条目&#xff0c;有的只需采用测试仪表的1个波长进行测试&#xff0c;即单窗口测试&#xff0c;有的则…

代码随想录算法训练营第2天 977. 有序数组的平方、209. 长度最小的子数组

代码随想录算法训练营第2天| 977. 有序数组的平方、209. 长度最小的子数组 有序数组的平方 力扣题目链接(opens new window) 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 数组其实是有…

C 语法--编译相关

1&#xff0c; 单下划线和双下划线 #pragma #pragma 用于指示编译器完成一些特定的动作。#pragma 所定义的很多指示字是编译器特有的&#xff0c;在不同的编译器间是不可移植的 #pragma section APP_VERSION //__far const unsigned long version 0x01010101; __far const un…

redis缓存淘汰策略-基于LinkedHashMap实现LRU算法

redis缓存淘汰策略-LRU算法&#xff08;最近最少使用&#xff09; LRU是Least Recently Used的缩写&#xff0c;即最近最少使用&#xff0c;是一种常用的页面置换算法&#xff0c; 选择最近最久未使用的数据予以淘汰。 1&#xff0c;所谓缓存&#xff0c; 必须要有读写两个操作…

【叨叨与总结】2022年总结

如果我记得没错&#xff0c;这个记录时间的软件应该是在6月份或者7月份才开始用的&#xff0c;大概记录的时间有半年。个人觉得还是不错的&#xff0c;下面还是简单的总结一下。   首先睡眠时长是有一定保障的&#xff0c;甚至有好多时候还睡了9、10个小时&#xff0c;当然这…

【Python基础】模块化编程-包调用

datitle: Python Module&&Invoking date: 2020-05-12 00:16:58 img: https://gitee.com/github-25970295/blogImage/raw/master/img/woman-3219507__340.webp categories: 编程语言 reprintPolicy: cc_by cover: false tags: python ​ 无论我们选择用何种语言进行程序…

2022年度总结:凝神聚力 踔厉奋发

2021年底手里握了几份offer&#xff0c;有研究型大学&#xff0c;也有教学型大学。是选择去前者继续拼搏&#xff0c;还是选择去后者直接躺平&#xff1f;二者的权衡和取舍确实不太容易抉择。尽管也咨询了很多前辈&#xff0c;最后还是得自己做决定。尽管我还是很喜欢做研究工作…

spark理论

前言&#xff1a; 本文是之前19年学生时学习林子雨老师《Spark大数据 》网易公开课的中关于spark的理论部分的部分笔记。主要包括大数据产品与spark的一些概念与运行原理介绍。 目录 大数据产品与hadoop生态系统 Spark概念 MapReduce与spark的比较 Spark运行 Spark运行基本流程…

【Spring 系列】Spring Session 深度解析

文章目录Spring Session 架构及应用场景为什么要spring-sessionSR340规范与spring-session的透明继承Spring Session探索特点核心 APIservlet session 与 spring-session 关系webflux 与 spring session 的关系基于 Servlet 的 Spring Session 实现思考题背景1、注册到 Filter …

Pytorch—模型微调(fine-tune)

随着深度学习的发展&#xff0c;在大模型的训练上都是在一些较大数据集上进行训练的&#xff0c;比如Imagenet-1k&#xff0c;Imagenet-11k,甚至是ImageNet-21k等。但我们在实际应用中&#xff0c;我们自己的数据集可能比较小&#xff0c;只有几千张照片&#xff0c;这时从头训…