Prompt之文本生成详解教程

简介: Prompt之文本生成详解教程

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

  • 评估手段
  • 具体任务


评估手段

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


本小节主要介绍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的权重(加权重效果不好):


e804ea2b910b3710b078d3c841d2ce26.png


具体计算含义如下所示:


image.png

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、诗歌生成、回复生成多个任务。


GenerationPlanning 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之间的联系。模型结构如下图所示:



5cde6730f82edfa43e921b42db29e395.jpg



具体做法为:


  1. 根据给定的生成文本构造inverse prompt,对应图中表格Inverse Prompt cg′ 。
  2. 根据给定的inverse prompt计算其原始prompt,对应图中表格Inverse Text cp′ 。
  3. 依据条件似然计算beam search的分数,生成最佳候选。


cc33bd1f92e1476b0332ea9bd5c3679c.jpg


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


Response Generation with Context-Aware Prompt Learning

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


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

9170de59f06073636ac6a21894ee0351.jpg


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


相关文章
|
人工智能 编解码 自然语言处理
Midjourney|文心一格 Prompt:完整参数列表、风格汇总、文生图词典合集
Midjourney|文心一格 Prompt:完整参数列表、风格汇总、文生图词典合集
Midjourney|文心一格 Prompt:完整参数列表、风格汇总、文生图词典合集
|
自然语言处理 Shell 开发者
【DSW Gallery】基于EasyNLP的英文文本摘要
EasyNLP提供多种模型的训练及预测功能,旨在帮助自然语言开发者方便快捷地构建模型并应用于生产。本文以英文文本摘要为例,为您介绍如何在PAI-DSW中使用EasyNLP。
【DSW Gallery】基于EasyNLP的英文文本摘要
|
存储 人工智能 API
10 分钟打造基于 ChatGPT 的 Markdown 智能文档
10 分钟打造基于 ChatGPT 的 Markdown 智能文档
220 0
|
机器学习/深度学习 自然语言处理 NoSQL
|
Linux 开发工具 git
文本查看命令 | 学习笔记
快速学习文本查看命令。
199 0
|
10月前
|
数据采集 机器学习/深度学习 自然语言处理
【相关问题解答2】bert中文文本摘要代码:结果输出为一些重复的标点符号和数字
【相关问题解答2】bert中文文本摘要代码:结果输出为一些重复的标点符号和数字
83 0
|
安全 Shell Android开发
Airtest输入文本那点事
Airtest输入文本那点事
960 0
|
人工智能 自然语言处理
|
人工智能 编解码 机器人
Midjourney|文心一格prompt教程[基础篇]:注册使用教程、风格设置、参数介绍、隐私模式等
Midjourney|文心一格prompt教程[基础篇]:注册使用教程、风格设置、参数介绍、隐私模式等