新智元报道
2020年5月至今,GPT-3发布近两年半的时间里,在其神奇的文本生成能力加持下,已经能够很好地辅助人类进行写作了。
但GPT-3说到底也就是个文本生成模型,与人类的写作过程可以说是完全不同了。
比如要写一篇论文或者作文,我们需要先在脑海里构造一个框架,查相关资料,打草稿,再找导师不断地修改、润色文字,期间可能还会修改思路,最终才可能成为一篇好文章。
而生成模型得到的文本也就是能满足语法要求,在内容编排上就毫无逻辑,也没有自我修改的能力,所以让AI独立写作文这件事还很遥远。
最近Meta AI Research和卡内基梅隆大学的研究人员提出一个新的文本生成模型PEER(计划Plan,编辑Edit,解释Explain,重复Repeat),完全模拟人类写作文的过程,从打草稿、征求建议到编辑文本,再不断迭代。
论文地址:https://arxiv.org/abs/2208.11663
PEER解决了传统语言模型只会生成最终结果,并且生成文本无法控制的问题,通过输入自然语言命令,PEER可以对生成文本进行修改。
最重要的是,研究人员训练了多个PEER的实例,能够填补写作过程中的多个环节,借此可以使用自训练(self-training)技术提高训练数据的质量、数量以及多样性。
能生成训练数据,也就代表PEER的潜力远不止写作文那么简单,还可以在其他没有编辑历史的领域使用PEER,让它自己逐渐提高遵循指令、编写有用评论和解释其行为的能力。
NLP也来仿生学
大型神经网络在用自然语言进行预训练后,文本生成的效果已经非常强了,但这些模型的生成方式基本就是从左到右一次性输出结果文本,与人类写作的迭代过程有很大不同。
一次性生成也有很多弊端,比如无法追溯文本中的句子进行修改或完善,也无法解释某句文本的生成原因,并且检验生成文本的正确性也很难,结果中经常会生成幻觉(hallucinate)内容,即不符合事实的文本。这些缺陷也限制了模型与人类合作进行写作的能力,因为人类需要的是连贯且符合事实的文本。
PEER模型通过在文本的「编辑历史」上进行训练,使得模型能够模拟人类的写作过程。
1、PEER模型运行时,需要用户或模型指定一个计划(Plan),通过自然语言描述他们想要执行的行动(action),比如说add some information或者fix grammar errors;
2、然后通过编辑(Edit)文本来实现这一行动;
3、模型可以用自然语言和指向相关资源来解释(Explain)该次编辑结果,比如在文末加一个参考文献;
4、重复(Repeat)该过程,直到生成的文本不再需要进一步的更新。
这种迭代的方法不仅使该模型可以将写一个连贯、一致、事实性的文本这一复杂的任务分解成多个较容易的子任务,还允许人类在生成过程中的任何时刻进行干预,引导模型向正确的方向发展,提供用户的计划和评论,或者自己上手进行编辑。
通过方法描述就可以看出来,功能实现上最难的并不是用Transformer搭建模型,而是找训练数据,想要找到能够以训练大型语言模型所需的规模来学习这一过程的数据显然是很困难的,因为大部分网站都没有提供编辑历史,所以通过爬虫获得的网页没办法作为训练数据。
即使通过爬虫获取不同时间相同网页作为编辑历史也不可行,因为没有对该次编辑做出计划或解释的相关文本。
PEER与之前的迭代编辑方法类似,使用维基百科作为主要编辑和相关评论的数据来源,因为维基百科提供了完整的编辑历史,包括对各种主题的评论,而且规模很大,文章中经常包含引文,对寻找相关文件很有帮助。
但仅依靠维基百科作为训练数据的唯一来源也存在各种缺点:
1、仅使用维基百科训练得到的模型在预期文本内容的样子和预测的计划和编辑方面需要和维基百科相似;
2、维基百科中的评论是有噪音的,因此在许多情况下,评论并不是计划或解释的恰当输入;
3、维基百科中的许多段落不包含任何引文,虽然这种背景信息的缺乏可以通过使用检索系统来弥补,但即使这样的系统也可能无法为许多编辑找到支持性的背景信息。
研究人员提出了一个简单的方法来解决因维基百科是唯一的评论编辑历史来源而产生的所有问题:即训练多个PEER实例,并用这些实例学习填充编辑过程的各个环节。这些模型可以用来生成合成数据作为训练语料库中缺失部分的替代。
最终训练得到四个encoder-decoder模型:
1、PEER-Edit的输入为文本x和一组文档,模型输出为计划和编辑后的文本,其中p为计划文本。
2、PEER-Undo的输入为编辑后的文本和一组文档,模型输出结果为是否撤销该次编辑。
3、PEER-Explain用来生成该次编辑的解释,输入为源文本、编辑后的文本和一组相关文档。
4、 PEER-Document输入源文本、编辑后的文本和计划,模型输出为该次编辑中最有用的背景信息。
PEER的所有变体模型都用来生成合成数据,既生成缺失的部分来补充的训练数据,也用来替换现有数据中的「低质量」部分。
为了能够对任意文本数据进行训练,即使该段文本没有编辑历史,也使用PEER-Undo来生成合成的「后向」编辑,即对源文本反复应用PEER-Undo直到文本为空,再调用PEER-Edit在相反的方向进行训练。
在生成计划时,使用PEER-Explain来修正语料库中许多低质量的评论,或者处理没有评论的文本。从PEER-Explain的输出中随机采样多个结果作为「潜在的计划」,通过计算实际编辑的似然概率,并选择概率最高的作为新计划。
如果对于特定编辑操作无法找到相关文档,则使用PEER-Document生成一组合成的文档,包含执行该次编辑操作的信息。最关键的是,仅在训练PEER-Edit这么做,在推理阶段并不提供任何合成文档。
为了提高生成的计划、编辑和文档的质量和多样性,研究人员还实现了一个控制机制,即在模型被训练生成的输出序列中预置特定的控制标记,然后在推理过程中使用这些控制标记来指导模型的生成,标记包括:
1、type用来控制PEER-Explain生成的文本类型,可选值为instructon(输出必须以不定式开头to ....)和other;
2、length, 控制PEER-Explain的输出长度,可选值包括s(少于2个词), m(2-3个词),l(4-5个词)和xl(多于或等于6个词);
3、overlap, 是否PEER-Explain生成的词可以与编辑文本重复,可选值为true和false;
4、words,用来控制PEER-Undo在源文本和编辑后文本之间不同词的个数,可选值为所有整数;
5、contains,用来确保PEER-Document输出的文本包含某个substring
PEER没有对PEER-edit引入控制符,即没有假定用户可能会用模型解决编辑任务的类型,使得模型更加通用。
在实验对比阶段,PEER使用LM-Adapted T5的3B参数版本预训练初始化。
为了评估了PEER在不同领域中遵循一系列计划、利用所提供的文档和进行编辑的能力,特别是在没有编辑历史的领域中的表现,文中引入了一个新的数据集Natural Edits,一个针对不同文本类型和领域的自然发生的编辑的集合。
数据从三个英文网络资源中收集获得:从维基百科中收集百科全书式的页面,从Wikinews收集新闻文章,从StackExchange的烹饪、园艺、法律、电影、政治、旅游和工作场所子论坛收集问题,所有这些网站都提供了带有评论的编辑历史,这些评论详细说明了编辑的意图,并将其作为计划提供给模型。
在Wikinews和StackExchange子集的训练中,只提供纯文本数据,而非实际的编辑,从而测试在没有编辑历史的领域的编辑能力。
实验结果可以看出PEER的表现在一定程度上超过了所有的基线,并且计划和文档提供了模型能够使用的互补信息
在Natural Edits的所有子集上评估PEER后可以发现,计划对各领域都有很大的帮助,这表明理解维基百科编辑中的计划的能力可以直接转移到其他领域。重要的是,在Natural Edits的所有子集上,PEER的领域适应性变体明显优于常规的PEER,尤其是在园艺、政治和电影子集上有很大的改进(分别为84%、71%和48%的EM-Diff),也显示了在不同领域中应用PEER时,生成合成编辑的有效性。