【论文速读】LM的文本生成方法,Top-p,温度,《The Curious Case of Neural Text Degeneration》

news2024/11/25 2:05:56

论文链接:https://arxiv.org/abs/1904.09751
https://ar5iv.labs.arxiv.org/html/1904.09751

这篇文章,描述的是语言模型的文本生成的核采样的方法,就是现在熟知的top-p
大概看看,还有几个地方比较有趣,值得记录一下。

摘要

尽管神经语言建模取得了相当大的进步,但从语言模型生成文本(例如生成故事)的最佳解码策略是什么仍然是一个悬而未决的问题。反直觉的经验观察是,尽管使用似然性作为训练目标会为广泛的语言理解任务带来高质量的模型,但基于最大化的解码方法(如beam搜索)会导致退化——输出平淡、不连贯或陷入重复循环的文本。

为了解决这一问题,我们提出了Nucleus采样(Nucleus Sampling),这是一种简单但有效的方法,可以从神经语言模型中提取出比以前的解码策略高得多的质量文本。我们的方法通过截断概率分布的不可靠尾部,从包含绝大多数概率质量的Tokens的动态核中采样,避免了文本退化。

为了正确检查当前基于最大化的随机解码方法,我们将每种方法的代数与人类文本沿几个轴(如似然性、多样性和重复性)的分布进行了比较。我们的结果表明,(1)最大化是开放式文本生成的一个不合适的解码目标,(2)当前最佳语言模型的概率分布有一个不可靠的尾部,在生成过程中需要截断;(3)Nucleus Sampling是当前生成长格式文本的最佳解码策略,该文本既有高质量的(通过人类评估来衡量),也与人类书写的文本一样多样化。

文章的一些观点

在这里插入图片描述
先来看文章的图1。
文章指出,如图1所示,即使使用最先进的模型(如GPT-2 Large),为高概率输出进行优化的解码策略(如beam搜索)也会导致文本极其退化。这可能看起来有违直觉,因为人们会认为好的模型会给更像人的语法文本赋予更高的概率。事实上,语言模型通常会给格式良好的文本打分,但长文本的最高分数往往是通用的、重复的和尴尬的。

同样令人惊讶的是图1的右侧,它显示了纯采样——直接从模型预测的概率中采样——导致文本不连贯,几乎与上下文无关。为什么纯采样产生的文本如此退化?在这项工作中,我们展示了“不可靠的尾巴”是罪魁祸首。这种不可靠的尾部由数万个概率相对较低的候选Token组成,这些Token在聚合中被过度表示。

在这里插入图片描述
图2展示了beam搜索解码文本和自然出现文本的概率分布的实际差异。
人类文本的特征是方差增加,这与beam搜索解码的文本的无休止重复形成鲜明对比。——说明,人类的语言不是遵从概率,而是希望有更多的意外,单调可预测的话语只会让人觉得乏味。

为了克服这些问题,文章引入了Nucleus采样。核采样的关键直觉是,每个时间步长的绝大多数概率质量都集中在核心,这是词汇的一个子集,往往在一到一千个候选者之间。而不是依靠固定的top-𝑘,或者使用温度参数来控制分布的形状,而不充分抑制不可靠的尾部,文章建议采样top-𝑝概率质量的一部分,动态地扩展和收缩候选池。
文章后续评估,文本由最大化或top-𝑘抽样的可能性太大,评估表明词汇使用缺乏多样性,与人类分布存在差异。另一方面,纯采样产生的文本的可能性明显低于黄金文本,这对应于较低的生成质量。
词汇使用和Self-BLEU(Zhu et al.,2018)统计数据显示,top-𝑘抽样与人类统计数据相匹配,需要较高的k值。然而,基于较高的𝑘值通常在可能性上具有高的方差,暗示了质量上可观察到的不连续性问题。Nucleus采样可以通过调整p值,轻松匹配参考困惑度,避免了高k值设置造成的不连贯,可以匹配分布统计数据。

文章在后续指出:自然语言不是遵从最大化概率
人们可能会想,最大化的问题是否是搜索错误,即,与解码的句子相比,模型赋予了更高概率的更高质量的句子,beam搜索只是未能找到它们。然而,文章评估,自然文本的每符号概率平均远低于beam搜索生成的文本。自然语言很少在多个连续的时间步长内保持在高概率区域,而是转向概率较低但信息量较大的标记。自然语言也不倾向于陷入重复循环,即使模型倾向于赋予这种情况高概率。
为什么人类书写的文本不是最可能的文本?文章推测这是人类语言的一个内在特性。在没有文本全局模型的情况下,每次分配一个单词的概率的语言模型将难以捕捉这种效果。Grice的《沟通的最大限度》(Grice,1975)表明,人们会针对显而易见的陈述进行优化。因此,让每个单词尽可能地可预测是不受欢迎的。这使得简单地通过训练更大的模型或使用标准的单词学习目标改进神经结构来解决问题变得不太可能:这样的模型被迫倾向于使用最低的公分母,而不是信息语言。

文章指出:似然最大化解码会导致重复和过度通用的语言使用,而没有截断的采样方法有可能从模型预测分布的低置信度尾部进行采样。Nucleus采样是一种有效捕获语言模型置信区域的解决方案。

在这里插入图片描述
图4指出:重复短语的概率随着每次重复而增加,从而形成正反馈循环。我们发现这种效果适用于我们测试的绝大多数短语,无论短语长度如何,或者这些短语是否是随机采样的,而不是从人类文本中获取的。
在图4中,可以观察到beam搜索生成的文本倾向于重复(例如,“team Sexch”和“overview of the”等短语的重复),这导致了高概率的重复文本生成。相比之下,人类生成的文本具有更高的变化性(variance),并且不会陷入重复循环。人类文本的概率分布显示了较低的重复性,并且更倾向于探索词汇的多样性。
图4中还强调了beam搜索生成文本的问题,即它倾向于生成过于可预测、缺乏多样性和陷入重复循环的文本。这与人类生成的文本形成鲜明对比,后者更自然、更具多样性,并且不太可能连续使用高概率的词汇。
总结来说,图4揭示了beam搜索解码方法在生成文本时可能导致的问题,尤其是在保持文本多样性和避免重复方面,而人类生成的文本则更自然、更具多样性。

关于文本的重复
文章指出,可以量化的文本质量的一个属性是重复。 Nucleus Sampling 和 top-𝑘对于合理的参数范围,采样的重复次数最少。除非使用非常高的温度,否则温度采样的世代具有更多的重复性,评估已经证明这会对相干性产生负面影响(通过高困惑度来衡量)。 此外,当所有随机方法的调优参数设置得太低时,都会面临重复问题,这往往会过度截断,模仿贪婪搜索。 因此,文章得出结论,只有核抽样才能满足文本理想世代的所有分布标准。

文章的主要方法:Nucleus Sampling

在这里插入图片描述
Nucleus Sampling的方法很简单,就是上面的公式。

对于top-k,难以选择合适的k值
文章指出,top-𝑘与beam搜索或从全分布中采样相比,采样导致文本质量要高得多,但是使用常数𝑘在不同的上下文中是次优的。 在某些上下文中,下一个单词分布的头部可以在数十个或数百个合理选项(例如通用上下文中的名词或动词)中是平坦的,而在其他上下文中,大多数概率质量集中在一个或少数标记中。 因此,如果𝑘很小,在某些情况下存在生成平淡或通用文本的风险,而如果𝑘比较大,top-𝑘词汇表将包括不合适的候选者,这些候选者将被重新归一化所增加的样本概率。
在核采样方法,考虑的候选者数量动态上升和下降,对应于模型置信区在词汇表上的变化。

温度采样

文章中3.3节讨论了“Sampling with Temperature”(温度采样)这一主题。

温度采样的基本概念

温度采样是一种用于基于概率的语言模型生成文本的方法。在这种方法中,模型输出的概率分布通过一个温度参数t 来调整。温度参数 t 影响生成文本的随机性和多样性。

温度采样的数学表达

给定模型的原始对数几率(logits) u_1:||V|| 和温度t ,通过以下公式重新估计 softmax 分布:

在这里插入图片描述

这个公式表示,温度参数 t 用于调整每个词V_l的概率。当 t 接近 0 时,概率分布会趋向于一个非常尖锐的分布,意味着模型倾向于选择概率最高的词;而当 t 增大时,分布变得更加平坦,增加了生成较少概率词的可能性,从而增加了文本的多样性。

温度采样的应用和问题

温度采样已被广泛应用于文本生成任务中。它允许模型在生成文本时引入一定程度的随机性,这有助于避免生成过于单调或重复的文本。

然而,文章指出,尽管降低温度可以提高生成文本的质量,但同时也会导致生成文本的多样性降低。这是因为较低的温度会使模型更倾向于选择概率最高的词,从而减少了生成较少见词汇的机会。

温度采样是一种有效的调节语言模型生成文本多样性和质量的方法。通过调整温度参数,可以在一定程度上控制生成文本的随机性和创造性。然而,需要仔细选择温度值,以平衡文本的质量和多样性。过低的温度可能会导致文本缺乏多样性,而过高的温度可能会生成不连贯或低质量的文本。

文章通过提出这些观点,强调了在设计文本生成模型时需要考虑的一个重要方面,即如何在保持文本质量的同时,引入足够的多样性和创造性。

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

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

相关文章

kotlin1.8.10问题导致gson报错TypeToken type argument must not contain a type variable

书接上回,https://blog.csdn.net/jzlhll123/article/details/139302991。 之前我发现gson报错后: gson在2.11.0给我的kotlin项目代码报错了。 IllegalArgumentException: TypeToken type argument must not contain a type variable 上次解释原因是因为&…

WALT算法简介

WALT(Windows-Assist Load Tracing)算法是由Qcom开发, 通过把时间划分为窗口,对 task运行时间和CPU负载进行跟踪计算的方法。为任务调度、迁移、负载均衡及CPU调频 提供输入。 WALT相对PELT算法,更能及时反映负载变化, 更适用于…

PasteCode系列系统说明

定义 PasteCode系列是指项目是基于PasteTemplate构建的五层以上项目,包括不仅限于 Domain EntityFrameworkCore Application.Contracts Application HttpApi.Host 熟悉ABP vNext就很好理解了,因为PasteTemplate就是基于ABP的框架精简而来!在…

CVE-2022-4230

CVE-2022-4230 漏洞介绍 WP Statistics WordPress 插件13.2.9之前的版本不会转义参数,这可能允许经过身份验证的用户执行 SQL 注入攻击。默认情况下,具有管理选项功能 (admin) 的用户可以使用受影响的功能,但是该插件有一个设置允许低权限用…

绘画参数配置及使用

绘画参数配置及使用 路径:站点后台-功能-AI绘画 进入参数配置 接口选择:多种接口自主选择(需自己准备key),对应接口的key对话和绘画通用 存储空间: 位置在超管后台-存储空间 自主选择存储(需…

Python画图(多图展示在一个平面)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

Go实战 | 使用Go-Fiber采用分层架构搭建一个简单的Web服务

前言 📢博客主页:程序源⠀-CSDN博客 📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正! 一、环境准备、示例介绍 Go语言安装,GoLand编辑器 这个示例实现了一个简单的待办事项(todo&#xf…

应用解析 | 面向智能网联汽车的产教融合解决方案

背景介绍 随着科技的飞速发展,智能网联汽车已成为汽车产业的新宠,引领着未来出行的潮流。然而,行业的高速发展也带来了对高素质技术技能人才的迫切需求。为满足这一需求,推动教育链、人才链与产业链、创新链的深度融合&#xff0…

【Java】static 修饰变量

static 一种java内置关键字,静态关键字,可以修饰成员变量、成员方法。 static 成员变量 1.static 成员变量2.类变量图解3.类变量的访问4.类变量的内存原理5.类变量的应用 1.static 成员变量 成员变量按照有无static修饰,可以分为 类变量…

AGP8+ android.useNewApkCreator‘ is deprecated 打包失败

问题 新建一个项目,默认使用最新版的 AGP 和 Gradle,打包构建立马失败! 错误日志 Caused by: com.android.builder.errors.EvalIssueException: The option android.useNewApkCreator is deprecated. An exception occurred applying plu…

STM32-16-ADC

STM32-01-认识单片机 STM32-02-基础知识 STM32-03-HAL库 STM32-04-时钟树 STM32-05-SYSTEM文件夹 STM32-06-GPIO STM32-07-外部中断 STM32-08-串口 STM32-09-IWDG和WWDG STM32-10-定时器 STM32-11-电容触摸按键 STM32-12-OLED模块 STM32-13-MPU STM32-14-FSMC_LCD STM32-15-DMA…

关于2024中国海洋装备博览会(福州)的参展通知

2024中国航洋装备博览会 2024世界航海装备大会 2024中国船舶供应链大会 2024中国航洋装备博览会2024世界航海装备大会 时间地点、规模、主题、定位 1.时间:2024年11月15日至18日 2.地点:福州海峡国际会展中心、冠城大通游艇码头 3.规模&#xff1…

Seed-TTS语音编辑有多强?对比实测结果让你惊叹!

GLM-4-9B 开源系列模型 前言 就在最近,ByteDance的研究人员最近推出了一系列名为Seed-TTS的大规模自回归文本转语音(TTS)模型,能够合成几乎与人类语音无法区分的高质量语音。那么Seed-TTS的表现究竟有多强呢?让我们一起来感受下Seed-TTS带来的惊喜吧! 介绍Seed-TTS…

Vivado 设置关联使用第三方仿真软件 Modelsim

目录 1.前言2.Vivado 设置关联使用第三方仿真软件 Modelsim 微信公众号获取更多FPGA相关源码: 1.前言 Vivado 软件自带有仿真功能,该功能使用还是比较方便的,初学者可以直接使用自带的仿真功能。 Modelsim仿真工具是Model公司开发的。它支持Verilog、VHDL以及他…

27 - 求关注者的数量(高频 SQL 50 题基础版)

27 - 求关注者的数量 selectuser_id,count(*) followers_count fromFollowers group byuser_id;

什么是阻塞IO和非阻塞IO

一、IO模型 五种:阻塞IO、非阻塞IO、多路复用IO、信号驱动IO、异步IO 1.阻塞IO:一个应用程序执行I/O操作时,会被阻塞,直到数据准备好或操作完成。这种模型通常简单易用,但会造成资源浪费。因为CPU在等待I/O操作完成时…

为什么要学习扣子(Coze)

🧙‍♂️ 诸位好,吾乃斜杠君,编程界之翘楚,代码之大师。算法如流水,逻辑如棋局。 📜 吾之笔记,内含诸般技术之秘诀。吾欲以此笔记,传授编程之道,助汝解技术难题。 &#…

2024大模型如何学习【附学习资料】

摘要: 通过深入了解本文中的这些细节,并在实际项目中应用相关知识,将能够更好地理解和利用大模型的潜力,不仅在学术研究中,也在工程实践中。通过不断探索新方法、参与项目和保持热情,并将其应用于各种领域&…

【Spring框架全系列】SpringBoot_基础_先知(详细)

文章目录 1.SpringBoot介绍2.创建一个SpringBoot项目3.parent标签 - 父工程4.starter依赖5.启动类和文件打包6.默认配置 1.SpringBoot介绍 Spring阶段最困扰大家的事情是什么? 配置 → 配置魔鬼 快速搭建一个独立的生产级别的Spring应用 快速引入项目相关依赖 开箱…

开源!过程控制与自动化系统

软件介绍 ProviewR是一个基于GPL许可的过程控制与自动化系统,最初由瑞典的Mandator和SSAB Oxelsund开发。作为一个成熟、集成且低成本的自动化解决方案,ProviewR在以Linux作为操作系统的标准PC上运行。该系统包含了顺序控制、调整、数据采集、通信、监控…