NLP从零开始------18.文本中阶处理之序列到序列模型(3)

news2024/11/15 18:49:15

4.3 其他解码问题和解码技巧

        贪心解码和束解码只是最基础的解码方法,其解码结果会出现许多问题。这里主要介绍3种常见问题,并简单介绍解决方案。

4.3.1 重复性问题

        有时我们会发现序列到序列模型不断重复的输出同一个词。一个解决方案是解码时在所预测的词的概率分布上添加一个惩罚项,以减少已生成的词的概率。类似的惩罚项也可以添加到训练损失函数中, 即每个时刻的损失函数J₁修改为
                J_{t}=- \log P( \hat {y}_{t}| \hat {y}_{1}, \cdots , \hat {y}_{t-1},x)+ \frac {1}{t-1} \sum \limits _{i=1}^{t-1} \log P( \hat {y}_{t}| \hat {y}_{1}, \cdots , \hat {y}_{i-1},x)
        另一个解决方案是修改注意力机制。如果当前的注意力分布与之前步骤的注意力分布相近,即关注相同的词, 那么模型往往会生成相同的词。因此可以通过避免注意力集中在相同的词上来减少重复。

4.3.2 多样性问题

        在诸如对话这样的任务中,我们往往不希望模型总是刻板地回复同样的句子, 而是希望模型的回复有足够的多样性。但是如果使用贪心解码,对于类似的源序列, 往往最好的目标序列的确是一样的(如“我不知道”“很好”等)。一个解决方案是不再寻求概率最高的目标序列,转而在每一步从所预测的词的概率分布中进行采样。这样一来,即使是完全相同的源序列,也很可能会输出不同的目标序列。

4.3.3 防止“幻觉”

        在翻译、文本总结等任务中,模型有时会出现幻觉( hallucination), 也就是说输出的目标文本里包含源文本里没有的元素。产生这个问题有许多原因和对应的解决方案。例如,如果模型的训练文本主要来自新闻领域,那么对于来自美食评论领域的源文本, 模型输出的目标文本很有可能还是带有许多和新闻相关的文字。对于上述问题,增加模型训练文本的领域数量是个比较直接有效的解决方案。当然,“幻觉”的产生还有很多更为复杂和微妙的原因,需要根据具体情况分析和解决, 这里不做更多讨论。

5. 指针网络

        在有些场景下, 我们希望模型能将部分源序列中的元素直接复制到目标序列中,例如在机器翻译中,命名实体、数值、日期等短语往往不需要进行翻译, 而是可以直接复制,以如下源句和目标句为例。
        源句: John and Mary spent 7 dollar on fried chicken。
        目标句: John 和 Mary花了7美元买炸鸡。
        源句中的命名实体“ John”和“ Mary”以及数字“7”都直接复制到了目标句中。此外,我们可以回顾一下本章开头给出的基于序列到序列的命名实体识别的例子。
        源句: 小红在上海旅游。
        目标句:[小红]人名]在[上海|地名]旅游。
        目标句中的大部分词都是复制于源句, 仅有一小部分是需要生成的分隔符和实体标签。
在前面所提出的序列到序列模型的基础上, 指针网络( pointer network) ,也称为拷贝机制,可以建模这种复制源句内容的行为。下图展示了指针网络的架构。在解码的每一步, 模型会计算一个生成和复制二选一的伯努利分布,其中:
        生成——依照前面介绍的方法, 生成一个词的概率分布;
        复制——预测一个源句中词的概率分布(可看作预测一个指向源句中词的“指针”),预测方法和计算注意力分布类似。

图片来源百度搜素

        最终用于解码的词的概率分布是生成分布和复制分布的加权和, 权重便是伯努利分布的概率。

6. 序列到序列任务的延伸

        自然语言处理领域存在不少与序列到序列相近的任务,而前文介绍的序列到序列模型和方法也可以修改和扩展以适用于这些任务。
        在一些任务中,输入数据是非序列的其他形式和模态, 而输出数据依然是序列,例如图像文字说明( image captioning) 的输入是单张图像, 视觉/视频问答( visual/ video question answering) 的输入是单张图像或单个视频以及一个问题文本, 结构化数据转文字( structured data to text) 的输入数据是结构化数据(如表格), 语音-文本转换( speech to text) 的输入是一段语音。对于这些任务,需要使用专门针对输入数据形式和模态的编码器,例如图像输入可以使用卷积神经网络或视觉 Transformer编码器,而解码器与序列到序列模型的解码器类似,通过自回归的方式生成文本。此外, 前面介绍的语言模型也可以看成一个无输入的序列到序列问题。

        在另一些任务中,输入数据是序列,而输出数据是非序列的其他形式和模态, 例如在序列到集合任务中,输出是一个集合,输出元素之间不存在顺序关系。很多自然语言处理任务可以看作序列到集合任务,例如命名实体识别可以看作预测输入句子所包含的实体集合。序列到集合任务可以使用序列到序列模型求解,即假设输出元素之间存在某种顺序,也可以使用前面描述的使用非自回归解码的 Transformer模型,但其中不使用位置编码, 从而保证预测元素之间不存在顺序。

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

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

相关文章

GateWay三大案例组件

一、局部过滤器接口耗时(LogTime) 命名规则:以GatewayFilterFactory结尾编写接口耗时过滤器 Slf4j Component public class LogTimeGatewayFilterFactory extends AbstractNameValueGatewayFilterFactory {private static long timeSpan 0…

ruoyi-vue-pro快速修改的包名和选配功能板块

使用KIT进行构建 KIT是一个专门构建框架的网站,ruoyi-vue-pro也发布至KIT了,所以我们可以通过KIT快速的选配功能和修改报名等操作。 构建地址:http://www.goldpankit.com/space/service/install?space%E8%8A%8B%E9%81%93%E6%BA%90%E7%A0%8…

AI建模——AI生成3D内容算法产品介绍与模型免费下载

说明: 记录AI文生3D模型、图生3D模型的相关产品;记录其性能、功能、收费与免费方法 0.AI建模产品 Rodin MeshAnything Meshy 生成效果比较: Rodin效果最好、Meshy其次 1.Rodin 官网:gHyperHuman 支持:文生模型、…

TextIn ParseX:助力开发者解析版面元素信息

TextIn ParseX通用文档解析是一款大模型友好的解析工具,支持将pdf文档、jpg、img图像等文件快速转换为markdown格式,支持各类表格、公式解析,帮助大语言模型的数据清洗和文档问答任务。 产品特点 支持多种扫描内容:能良好处理各类…

[数据集][目标检测]西红柿缺陷检测数据集VOC+YOLO格式17318张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):17318 标注数量(xml文件个数):17318 标注数量(txt文件个数):17318 标…

ORA-24067: exceeded maximum number of subscribers for queue ADMIN.SMS_MT_QUEUE

临时处理办法: delete from aq$_ss_MT_tab_D; delete from aq$_ss_MT_tab_g; delete from aq$_ss_MT_tab_h; delete from aq$_ss_MT_tab_i; delete from aq$_ss_MT_tab_p; delete from aq$_ss_MT_tab_s; delete from aq$_ss_MT_tab_t; commit; 根本处理办法&#x…

IIS 反向代理模块: URL Rewrite 和 Application Request Routing (ARR)

需要设置iis反向代理的场景其实挺多的。例如websocket、Server Sent Events(SSE) 都需要反向代理。 对于需要临时放公网访问的应用,直接运行127.0.0.1的开发环境,然后通过反向代理访问127.0.0.1就可以了,省去麻烦的iis设置。 IIS 实现反向代…

学习记录:js算法(二十五):合并两个有序链表

文章目录 合并两个有序链表我的思路网上思路 总结 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 图一 示例 1:(如图一) 输入:l1 [1,2,4], l2 [1,3,4] …

解决职业摔跤手分类问题的算法与实现

解决职业摔跤手分类问题的算法与实现 引言问题定义算法设计二分图判定算法步骤伪代码C语言实现引言 在职业摔跤界,摔跤手通常被分为“娃娃脸”(“好人”)型和“高跟鞋”(“坏人”)型。在任意一对摔跤手之间,都有可能存在竞争关系。本文的目标是设计一个算法,用于判断是…

优化采样参数提升大语言模型响应质量:深入分析温度、top_p、top_k和min_p的随机解码策略

当向大语言模型(LLM)提出查询时,模型会为其词汇表中的每个可能标记输出概率值。从这个概率分布中采样一个标记后,我们可以将该标记附加到输入提示中,使LLM能够继续输出下一个标记的概率。这个采样过程可以通过诸如 temperature和 top_p等参…

openSUSE变更默认编译器

Debian很稳定,但是必须要添加unstable源才能安装一些需要更新的软件,比如说稳定版的firefox是ESR版的,必须要从unstable源才能安装新版。但是unstable源是把所有的软件包都放在里面,操作过程中一旦不小心把核心组件更新到unstable…

使用 RabbitMQ 和 Go 构建异步订单处理系统

使用 RabbitMQ 和 Go 构建异步订单处理系统 我们可以通过构建一个订单处理系统来演示如何使用消息队列(MQ)实现异步任务处理。这个项目将使用 RabbitMQ 作为消息队列,并使用 Go 语言来实现。以下是项目的详细教程和相关环境配置。 项目描述…

uniapp+vue3实现双通道透明MP4播放支持小程序和h5

双通道透明MP4视频播放的截图 以下是合成后结果,二个合并在一起进行播放 下载资源,打开运行直接使用看到效果 https://download.csdn.net/download/qq_40039641/89715780

[iBOT] Image BERT Pre-Training with Online Tokenizer

1、目的 探索visual tokenizer编码下的MIM(Masked Image Modeling) 2、方法 iBOT(image BERT pre-training with Online Tokenizer) 1)knowledge distillation(KD) distill knowledge from the…

六、桥接模式

桥接模式(Bridge Pattern)是一种结构型设计模式,旨在将抽象与实现分离,使得两者可以独立变化。通过使用桥接模式,可以避免在多个维度上进行继承,降低代码的复杂度,从而提高系统的可扩展性。 组成…

c# Csv文件读写示例,如果文件存在追加写入

功能 1.写入 2.读取 导出文件效果 调用示例 注意示例中的ToDataTable()方法是自己的封装的扩展方法&#xff0c;源码在集合扩展方法-CSDN博客 private List<MarkDataModel> createMarkDataList(int count){var markDataModels new List<MarkDataModel>();for (…

WSA事件模型

服务端骨架&#xff1a; #include <iostream> #include <WinSock2.h> #pragma comment(lib,"ws2_32.lib") #include <windows.h>int main() {WSADATA lpWSAData;WSAStartup(MAKEWORD(2, 2), &lpWSAData);SOCKADDR_IN saddr{ 0 };saddr.sin_add…

【生日视频制作】海上绿色摩托艇汽车艇车身AE模板修改文字软件生成器教程特效素材【AE模板】

生日视频制作教程海上绿色摩托艇汽车艇车身AE模板修改文字特效广软件告生成神器素材祝福玩法AE模板替换工程 怎么如何做的【生日视频制作】海上绿色摩托艇汽车艇车身AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤&#xff1a; 安装AE软件 下载AE模板 把AE模…

单点登录问题【拼多多0905一面】

说一些今晚情况&#xff0c;7点腾讯音乐笔试&#xff0c;因为8点拼多多一面&#xff0c;哪个都拒不了。硬着头皮50分钟写了1.2题然后去面试。刚开始状态真的很差&#xff0c;大脑思考不动&#xff0c;面试中2个手撕&#xff0c;做出来一个&#xff0c;两个项目问题&#xff0c;…

用Java实现一个简易的炸金花小游戏

最近闲暇时间写了个用Java实现的简易版的炸金花小游戏&#xff0c;还是很有趣的&#xff0c;下面具体来介绍下具体实现。 下面这个是初始化页面。 一、设计思路 1、首先要了解炸金花的游戏规则&#xff0c;针对整个游戏过程来考虑。从游戏开始后的抽牌选出庄家&#xff0c;再到…