​GPT-3好“搭档”:这种方法缓解模型退化,让输出更自然

文本生成对于许多自然语言处理应用来说都是非常重要的。

但神经语言模型的基于最大化的解码方法(如 beam search)往往导致退化解,即生成的文本是不自然的,并且常常包含不必要的重复。现有的方法通过采样或修改训练目标来引入随机性,以降低某些 token 的概率(例如,非似然训练)。然而,它们往往导致解决方案缺乏连贯性。

近日,来自剑桥大学、香港中文大学、腾讯 AI 实验室和 DeepMind 的科学家们证明,自然语言生成模型出现退化现象的一个潜在原因是 token 的分布式表示向量存在各向异性。

他们进一步提出了一个基于对比学习的自然语言生成框架。在两种语言的三个基准测试上进行的大量实验和分析表明,该方法在人工评估和自动评估两个方面上优于目前最先进的文本生成方法。

研究动机与主要研究内容

图片

图1. Token 表示向量的 cosine 相似度矩阵

这项研究中,研究团队发现,神经语言模型的退化源于 token 表示向量的各向异性分布,即它们的表示向量驻留在整个空间的一个狭窄子集中。

图1(a)展示了 token 表示向量的 cosine 相似度矩阵,其中表示向量来源于 GPT-2 的最后一个隐层的输出。研究团队看到句子中 token 之间的余弦相似度超过 0.95,这意味着这些表征彼此十分接近。

在理想情况下,模型的 token 表示应遵循各向同性分布,即 token 相似度矩阵应是稀疏的,不同 token 的表示应是有区别的,如图2(b)所示。在解码过程中,为了避免模型退化,需要保留生成文本的 token 相似矩阵的稀疏性。

基于上述动机,研究团队提出了 SimCTG(一个简单的神经文本生成对比框架),该框架鼓励模型学习有区分度的、各向同性的 token 表示。

对比搜索背后的关键直觉是:

(1)在每个解码步骤,输出应该从组中选择最有可能的候选词的预测模型,以更好地维护生成的文本之间的语义一致性;
(2)token 相似矩阵的稀疏性应该保持以避免退化。

主要方法

对比训练

研究团队的目标是鼓励语言模型学习有区别且各向同性的 token 表示。为此,在语言模型的训练中引入了一个对比损失函数 LCL。给定任意一个变长序列 x,该对比损失函数定义为:

图片

其中,ρ 是预先设定的 margin,hxi 是模型输出的 xi 的表示向量。相似度函数 s 计算任意两个表示向量之间的余弦相似度:

图片

可以想象,通过训练上述对比损失函数,不同 token 的表示间的距离将被拉开。因此,可以得到一个可分的、各向同性的模型表示空间。最终的总损失函数为:

图片

对比搜索

研究团队提出一种新的解码方法:对比搜索(contrastive search)。每一步解码时,(1)模型从最可能的候选集合中选出一个作为输出,(2)产生的输出应当与前面已经生成的内容足够不同。这种方式下生成的文本在保持与前文的语义一致性的同时还能避免模型退化。具体来说,输出 xt 的生成满足:

图片

其中 V(k) 是候选词集合,k 通常取 3 到 10。上式的第一项代表模型对 v 的支持度 v(model confidence),是模型估计的候选词 v 为下一个词的概率。第二项是对模型退化的惩罚项(degeneration penalty)是下一个词 v 与前面已生成的词的相似度最大值。α 是超参数,负责调节两项损失之间的平衡。当 α=0 时,解码方法退化到贪婪搜索。

效率分析:该方法可以有效地实现对比搜索。所需的额外计算是退化罚的计算,该计算可以通过简单的矩阵乘法来实现。后文将证明,对比搜索的译码速度优于或可与其他广泛应用的译码方法相媲美。

文本生成

首先在开放式文本生成任务(open-ended document generation)上评价研究团队所提出的新方法。

模型和基线 本文提出的方法与模型结构无关,因此可以应用于任何生成模型。在这项实验中,他们在具有代表性的 GPT-2 模型上评估了所提出的方法。

具体来说,研究团队在评估基准(详细如下)上使用提出的目标 LSimCTG 对 GPT-2 进行了调优,并使用不同的解码方法生成连续文本。使用基础模型(117 M 参数)进行实验,该模型由 12 个 Transformer 层和 12 个 attention head 组成,将本方法与两个强基线方法进行比较:
(1)GPT-2 在标准 MLE 损失函数上微调;(2)利用非似然目标函数微调。研究团队的实现基于 Huggingface 库(Wolf 等人,2019)。

基准数据集 研究团队在 Wikitext-103 数据集(Merity 等人, 2017)上进行了实验,该数据集包含了一个包含超过 1 亿单词。Wikitext-103 是一个文档级数据集,已被广泛用于大规模语言建模的评估。

评价指标

研究团队从两个方面进行评价:
(1)语言建模质量,衡量模型的内在质量;
(2)生成质量,用来衡量生成文本的质量。

l 语言建模质量
n 困惑度
n 预测准确率
n 预测重复率
l 文本生成质量
n 生成重复度
n 多样性
nMAUVE(一种度量机器生成文本与人类生成文本间相近程度的指标;MAUVE 越高,机器文本越像人类文本)
n 语义连贯性
n 生成文本的困惑度

实验结果

在这里插入图片描述
表1. 多种方法在 Wikitext-103 数据集上的测试结果

表1 展示了 Wikitext-103 数据集上的实验结果。

语言建模质量 从结果来看,SimCTG 获得了最好的困惑度和下一个 token 预测准确率。因为其使用了更有区分度的分布式表示,SimCTG 在进行下一个 token 预测时更不容易混淆,从而提高了模型性能。在 rep 和 wrep 度量上,非似然模型产生了最好的结果,但代价是复杂性和下一个 token 预测准确性方面的性能下降。

文本生成质量

首先,在 rep-n 和多样性指标上,SimCTG+对比搜索获得了最好的性能,表明它最好地解决了模型退化问题。其次,MAUVE 分数表明 SimCTG+对比搜索生成的文本在令牌分布方面与人类编写的文本最接近。第三,在所有方法中,SimCTG+对比搜索是唯一一种一致性得分在 0.6 以上的方法,表明该方法生成的文本质量高,且相对于前缀而言语义一致。最后,gen-ppl 度量也验证了 SimCTG+对比搜索的优越性,因为与其他方法相比,它获得了明显更好的生成困惑度。

此外,从 MLE 和 Unlikelihood 基线的结果来看,对比搜索仍然比贪婪搜索和 beam 搜索带来了额外的性能提升。然而,对比训练的性能提高仍然滞后于 SimCTG,这说明了对比训练的必要性。一个可能的原因是,没有对比损失 LCL,MLE 或 unlikelihood 训练出来的 token 表示不具备充分的可区分性。因此,不同候选对象的退化惩罚不易区分,输出的选择受模型置信度的影响,使得对比搜索的有效性降低。

人工评价

研究团队还通过内部评分平台,在高英语水平学生的帮助下进行了人工评价。所有生成文本和真实的后文放在一起随机打乱,然后由 5 个人类评分者评估,最终产生总共 9000 个标注样本。评估遵循李克特 5 点量表(1、2、3、4 或 5),从以下三个方面进行打分:
连贯性:生成的文本是否与前文在语义上保持一致
流畅性:生成的文本是否易读
信息量:生成的文本是否多样,是否包含有趣的内容
图片
表2. 文本生成的人工评价

表2 给出了人工评价结果,其中第一行显说明了人类评价能够很好的发现参考文本。首先,研究团队发现直接使用 MLE 或 Unlikelihood 模型进行对比搜索并不能得到满意的结果。这是由于它们表示空间的各向异性。第二,Unlikelihood 模型的一致性得分明显低于 MLE 和 SimCTG,表明其产生的结果最不可能,这从表1 的 generation perplexity(gen-ppl)中也可以看出。此外,SimCTG +对比搜索结果在一致性和流畅性方面明显优于不同模型的核抽样。

最后,SimCTG-large +对比搜索获得了全面的最佳性能,甚至在流畅度指标上与人类书写的文本表现相当。这揭示了该方法对于大型模型的通用性,未来的工作可以集中于将其扩展到包含超过数十亿参数的模型,如 GPT-3。

开放式对话系统

为了测试这个方法在不同任务和语言中的通用性,本文还在开放域对话生成任务中评估了研方法。在这个任务中,给定一个多回合对话上下文(每个回合都是一个用户的话语),要求模型生成一个语义上与上下文一致的适当的响应。在这里,对话语境被视为前文。

基线模型和基准测试集 研究在中文和英文两种语言的两个基准数据集上进行了实验。中国数据集方面,使用 LCCC 数据集(Wang 等人,2020)。英语数据集方面,则使用 DailyDialog 数据集。

研究团队比较了通过 SimCTG 和 MLE 微调的 GPT-2 模型。具体来说,对于中文基准数据集,使用了一个公开可用的中文 GPT-2(Zhao 等人,2019)。在训练期间,使用 128 作为 batch size,并将训练样本截断为最大长度 256 个 token。在 LCCC 数据集上,对模型进行 40k 步的训练(即微调)。对于 DailyDialog 数据集,由于其数据集较小,将模型训练 5k 步。优化方面,使用 Adam 优化器和 2e-5 的学习率。

模型评价 研究团队依靠人工评价来衡量模型的性能,从测试集中随机选取了 200 个对话上下文,请 5 位标注者从三个维度:连贯性、流畅性和(3)信息量,分别进行打分。分数遵循李克特 5 分量表(1、2、3、4 或 5)。
图片
表3. 开放式对话的人工评价

表3 展示了开放式对话的人工评价结果。在这两个数据集上, SimCTG +对比搜索在各种指标上显著优于其他方法,这表明该方法可推广到不同的语言和任务上。值得强调的是,在 LCCC 基准测试中,SimCTG +对比搜索在流畅度指标上的表现出人意料地优于人类,而在连贯性和信息量指标上的表现也相当不错。

并且,即使不进行对比训练,MLE 模型在使用对比搜索时的性能也显著提高。这是由于汉语语言模型的固有属性,MLE 目标已经可以产生一个表现出高度各向同性的表示空间,使得对比搜索可以直接应用。这一发现尤其具有吸引力,因为它揭示了对比搜索在现成语言模型(即不进行对比训练)上的潜在适用性,适用于某些语言,如汉语。

总结

这项研究中,作者们证明了神经语言模型的退化源于它们的 token 表示的各向异性性质,并提出了一种新的方法——SimCTG,用于训练语言模型,使其获得一个各向同性且有区分度的表示空间。此外,研究还介绍了一种新的解码方法——对比搜索,该方法与本文所提出的 SimCTG 目标一致。基于在两种语言的三个基准测试集上进行的广泛实验和分析,自动和人工评价都表明了,本文所提的方法大大削弱了模型退化程度,显著优于当前最先进的文本生成方法。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术创新,让企业拥有智能“伯乐”,实现精准识人

过去,“得人才者得天下,世有伯乐,然后有千里马。” 这些都是我们耳熟能详古人对于人才渴求的描写。能否及时发现人才、培养人才、发挥人才作用的关键,都是历代管理者或经营者关注的问题。自古发现人才并没有那么容易,过…

LLM in Medical Domain: 一文速览大语言模型在医学领域的应用

© 作者|杨锦霞 机构|中国人民大学 研究方向|多模态学习 来自:RUC AI Box 进NLP群—>加入NLP交流群 引言:近期,大型语言模型在各种任务上展现出优异的性能,展示了广阔的应用前景。然而&a…

【NLP】首个支持联网的中文 AI 问答模型,开源了!

2021 年 12 月,OpenAI 正式推出 WebGPT,该项目的横空出世,标志着基于网页搜索的问答新范式的诞生。 在此之后,New Bing 首先将网页搜索功能整合发布,随后 OpenAI 也发布了支持联网的插件 ChatGPT Plugins。 大模型在联…

清华ACL2023 | WebCPM:首个联网支持中文问答开源模型

来自:PaperWeekly 进NLP群—>加入NLP交流群 2021年12月 WebGPT 的横空出世标志了基于网页搜索的问答新范式的诞生,在此之后,New Bing 首先将网页搜索功能整合发布,随后 OpenAI 也发布了支持联网的插件 ChatGPT Plugins。大模型…

刚刚!马斯克开源Twitter算法,GitHub Star数已破万!

省时查报告-专业、及时、全面的行研报告库 省时查方案-专业、及时、全面的营销策划方案库 【免费下载】2023年2月份热门报告合集 ChatGPT种子用户招募(无限制次数直接使用) ChatGPT调研报告(仅供内部参考) 文心一言、GPT3.5及GPT4…

招募:AICG内容联合创作计划 | AIGC实践

AIGC(AI Generated Content,人工智能自动生成内容)必将成为小微创业团队进行低成本内容运营的最佳实践。 你同意这个观点吗? 如果我们恰好想法一致,或许可以一起搞点事情,探索一下商业场景下,应…

【原创】实现ChatGPT中Transformer模型之输入处理

作者:黑夜路人 时间:2023年7月 Inputs Process(输入处理层)实现 我们看整个绿色框的整个位置,就是Inputs Process(输入处理层)。 在输入处理层,其实非常容易理解,主要就…

Visual Studio Community 2022 + Win10 编译 OpenCPN 5.9.0 记录

前言 前两天尝试用vs2017编译OpenCPN5.0.0,前后折腾了两三天总算编译成功了。官网给出的编译过程比较简单,我在实际编译过程中遇上了很多很多的问题,最多的就是缺少库,好在最后编译通过了。 后来浏览OpenCPN官网的时候发现发布了…

jmeter简单使用以及报告生成

jmeter入门 前置准备jmeter目录介绍jmeter常用组件jmeter简单食用 第一次写文章,主要就是一些简单的自学笔记,记录一下自己以后能方便看,大家需要的话也可自行取用,这些年干下来,我发现内容不重要,重要的是…

学会 IDEA 中的这个功能,就可以丢掉 Postman 了

点击关注公众号,Java干货及时送达👇 转自:oschina 作者:凯京技术团队 my.oschina.net/keking 前言 接口调试是每个软件开发从业者必不可少的一项技能,一个项目的的完成,可能接口测试调试的时间比真正开发写…

分享:python+Windows自带任务计划程序,实现定时自动删微信的video文件夹

目录 0. 背景1. 使用python实现删微信的video文件夹1.1 代码1.2 打包 2. 使用python实现自动添加任务计划程序2.1 代码2.2 打包 3. 使用bat脚本方便操作3.1 手动删.bat3.2 加入定时任务.bat 0. 背景 pc微信实在太占用磁盘空间了,特别是其中的视频文件夹。所以有了这…

搭建本地服务器+jshtml访问mysql并显示输出

文章目录 人生苦短,先问chatgpt1. 用Tomcat配置本地网站2. 访问本地网页3. js访问本地mysql并显示在html中 PS: Chatgpt实在是有点强~~ 今天是悲伤的一天,把mysql密码忘了,网上搜的方法没用,本来以为卸载部分组件就好,…

3句代码,实现自动备份与版本管理

前言: 服务器开发程序、测试版本等越来越多,需要及时做好数据的版本管理和备份,作为21世界的青年,希望这些事情都是可以自动完成,不止做了数据备份,更重要的是做好了版本管理,让我们可以追溯我们…

【编程实践】Linux Shell 编程:使用 循环和递归 实现斐波那契数列代码

用 Linux Shell 编程语言递归实现斐波那契数列代码:循环和递归 Linux Shell 编程语言是一种强大的工具,它可以轻松地实现程序设计语言中的常见算法。 斐波那契数列 斐波那契数列是一种经典的算法,它的定义如下: 斐波那契数列(Fibonacci Sequence)是以递归的方法来定义: …

chatgpt赋能python:Python下载与运行指南-让Python脚本更容易使用

Python下载与运行指南 - 让Python脚本更容易使用 Python已经成为世界上最流行的编程语言之一。Python具有简单易用的特点,几乎可以开始创建任何类型的应用程序或脚本。如果你是一名新手或是一名经验丰富的开发者,Python都是一款优秀的编程语言。 本篇文…

人教版初中英语听力软件,人教版初中英语听力mp3

新目标英语九年级上册Tapescripts所有的翻译 east东方的、eagerness热心、eagle鹰、ear耳朵,听力、early早等。 词汇解析一、east 英 [iːst]   美 [iːst]    adj. 东方的adv. 向东方n. 东方;东部1、east的基本意思是“东,东方”&…

英语语音题

语音题 a i i在nd和gh前发[ai] y th 词首[θ] the、ther结尾[] ch tion ow[哦][奥] oo ar ed 清读[t] 浊元读[d] t、d后读[id] 清:破客服吃屎,戳死赐死 ea o s ou e 欸 b ure 呃 优呃 屋呃 h gh ex 后有元[igz] 后有辅[iks] c al ai wh w在wr、…

ChatGPT: Optimizing Language Models for Dialogue

1.简介 最近ChatGPT很好,本文根据https://openai.com/blog/chatgpt/翻译总结的。 ChatGPT: Optimizing Language Models for Dialogue。如标题,ChatGPT为了对话使用的。 ChatGPT是InstructGPT的兄弟模型,它被训练为以提示prompt的方式遵循…

挑战OpenAI,马斯克宣布xAI正式成立:目标是“了解宇宙真实本质”!

挑战OpenAI,马斯克宣布xAI正式成立:目标是“了解宇宙真实本质”! 一、马斯克官宣xAl硬刚OpenAl二、创始团队1/3成员是华人三、马斯克下了一盘棋 北京时间7月13日凌晨,马斯克在Twitter上宣布:“xAI正式成立,…

昨天OpenAI GPT-4,今天微软Copilot,轮番上阵碾压谁?

来源:《飞哥说AI》公众号 作者|高佳 创意|李志飞 微软Copilot横扫Office全系产品,正式改名为Microsoft 365 ,其野心昭然。 微软全家桶自带AI智能驾驶模式,意味着 Windows 全AI系列新品将火速渗透各行各业…