Dialogue Transformers:如何解决医学大模型【偏离主诉和没抓住核心】,建立抗干扰的能力,使得发现用户问题会一追到底?

Dialogue Transformers:实现抗干扰能力的对话模型

    • 抗干扰能力
    • 基于 Transformer 的实现技术
    • 优化目标

 


抗干扰能力

前置知识:从【注意力机制】开始,到【Transformer】的零基础【大模型】系列

Dialogue Transformers 论文地址:https://arxiv.org/pdf/1910.00486.pdf

医学大模型的一个问题:偏离主诉和没抓住核心,顶级医生发现用户问题会一追到底,而不是跟随用户关注无关内容,单纯理解对几句话是毫无意义。

论文中的一段话:

  • BOT:您的总额是15.50美元——我要从您上次用的那张卡上扣钱吗?
  • 用户:我收到退款后,我的账户上还有存款吗?
  • BOT:是的,您的账户有10美元。
  • 用户:好的,很好。
  • BOT:我可以下订单吗?(普通的对话系统,ta不会要催用户下单,这个跟人一样)
  • 用户:是的。
  • 机器人:完成。你明天应该能拿到你的东西。

第一行系统的回复是:“您的总额是15.50美元——我要从您上次用的那张卡上扣钱吗?”。

而用户在第二行提出的问题是:“我收到退款后,我的账户上还有存款吗?”这两句话之间的相关性并不明显。

系统给出了【我可以下订单吗?】,而这个回复同第一行内容高度相关,重新回到了之前的对话上下文里的核心问题。

基于 Transformer 的实现技术

论文证明了,Transformer架构比 循环神经网络RNN 模型,更适合于多轮对话的抗干扰能力。

3 种技术实现方案:

  1. 对话栈:将对话视为一个堆栈,按照后进先出的方式进行操作。然而,这种技术的缺点是一旦子对话完成并从栈中移除,就无法回到原来的子对话。因此,无法灵活地处理干扰和回到之前的对话上下文。

  2. RNN网络:核心思想是当前状态包含过去的信息。然而,在实际业务对话中,很难获得足够的训练数据来满足RNN的训练需求,导致训练结果不确定性较高。此外,RNN默认使用整个输入进行编码,如果前面的输出有偏差,会导致后续训练结果偏离目标。

  3. Transformers:Transformer相比于前两种技术,在处理意外输入内容时具有更强的抗干扰性。Transformer利用自注意力机制预先选择哪些tokens对当前状态有影响,忽略对当前状态无意义的其他tokens。ta能够独立地进行每一步的预测,并在发现无关输入时保持对话的连贯性。相比之下,使用RNN的REDP机制复制对话历史信息来回到正轨,但相对于Transformer,REDP的网络结构更复杂且泛化能力较差。

对于开放领域的对话,Transformer可以将对话上下文和领域背景知识合并,用于处理开放领域的对话任务。

可以使用 retrieve 模式或通用模式来实现,retrieve 模式使用两层 Transformer 进行相似度对比和回复编码,通用模式则将 Transformer 用作解码器逐个生成回复的 token。

总之,相对于 对话栈 和 RNN 网络,Transformer 在处理对话中的干扰和回到原对话上下文方面,具有更好的性能和灵活性。

优化目标

在Transformer的对话机制中,会将对话状态和每个系统行为进行编码,并在训练时最大化ta们之间的相似度。

  • 对当前用户输入的信息 User Intent Entities、系统 BOT 给予的信息、历史信息 Previous System Action 进行编码,形成一个嵌入层 embedding layer。
  • 再将 嵌入层里的隐藏状态 与每个系统行为 System Action 生成的向量,形成另一个嵌入层,进行相似度比较,以选择相似度 Similarity 排名最高的系统行为。

在这个过程中,采用了单向注意力机制,目的是让 Transformer 无法看到接下来的内容,需要将其遮住。

在端到端的 TED(Transformer Encoder Decoder)策略中,仍然采用 retrieve 模式,不会生成新的响应。

  • Retrieve模式是从预定义的候选回复集合中选择最合适的回复。在这种模式下,系统不会生成新的响应,而是从候选回复集合中检索出一个最相关的回复作为系统的回应。

  • 基于检索或排序的方法来选择最合适的回复。计算对话历史和每个候选回复之间的相似度或相关性来实现。常见的方法是使用基于词向量或句向量的相似度计算方法,如余弦相似度或点积相似度。

用户和系统的对话被编码成 “bag-of-words” 的向量。

  • 用户:[我, 想, 预订, 一张, 机票, 去, 纽约]
  • 每个句子被转换成了一个向量,表示句子中出现的单词及其频率。

在每一轮对话中,Transformer 动态地使用自注意力机制来访问对话历史信息的不同部分。

  • 如果认为 “预订” 和 “机票” 这两个单词对于生成回复很重要,那ta会分配更高的注意力权重给这两个单词,从而更关注这部分信息。

Transformer 的对话机制通过编码对话状态和系统行为,并使用自注意力机制来进行相似度比较,以选择最合适的系统行为。

这种方法能够动态地利用对话历史信息,并在训练过程中最大化状态和行为之间的相似度。

损失函数:

把输入向量和系统行为向量,放在同一个网络里进行训练,通过 Loss 进行反向传播。

损失度的计算公式, S+ 代表正样本的损失度,S- 代表负样本的损失度。

  • 正样本表示属于目标类别的样本(订机票、天气,相关的信息)
  • 负样本表示不属于目标类别的样本(有什么好的零食,无关的信息)

这个公式核心就是,最大化正样本,最小化负样本。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何用CHAT写复习教案?

近日天气恶劣,好多地方的学校都停课了,改为线上学习,那作为老师,如何安排好线上的教学方案呢?下面小编分享下朋友用CHATGPT写的这份复习教案。 问CHAT:一年级语文上册复习计划教案 CHAT回复:教…

网络安全事件分级指南

文章目录 一、特别重大网络安全事件符合下列情形之一的,为特别重大网络安全事件:通常情况下,满足下列条件之一的,可判别为特别重大网络安全事件: 二、重大网络安全事件符合下列情形之一且未达到特别重大网络安全事件的…

HarmonyOS--基础组件Text

Text组件 可以包含Span子组件。 接口 Text(content? : string | Resource) string: Text(我是ttttt) Resource: Text($r(app.string.aaaaaa)) 先找限定词目录,找不到内容 找base目录 属性 除支持通用属性外,还支持以下属性: 名称 参数…

工厂设备数据采集如何更高效?

​随着工业4.0时代的到来,工厂设备数据采集变得越来越重要。然而,在实际的生产环境中,工厂设备数据采集面临着诸多痛点和难点。本文将分析这些痛点和难点,并介绍如何解决这些问题,提高工厂设备数据采集的效率。 一、工…

Linux 线程池源码剖析

1 了解线程池 1-1线程池的概述 由一个任务队列和一组处理队列的线程组成。一旦工作进程需要处理某个可能“阻塞”的操作,不用自己操作,将其作为一个任务放到线程池的队列,接着会被某个空闲线程提取处理。 1-2线程池的组件 任务 待处理的工作,通常由标识、上下文和处理…

xilinx 产品系列分类

1. 按照产品代数,分为6代,7代,ultrascale,ultrascale,Versal。6代是较早的器件,现在基本是7代及之后的产品,最新的一代是Versal,网上很多说法提到7系列也即是7代,在第二章…

以柔克刚:软体机器人的柔性革命与无限可能

原创 | 文 BFT机器人 戳“精彩内容”不容错过 你知道什么是软体机器人吗?真的是表面所理解的那样,这个“机器人是软的?”。当然不是啦!那下面小编将带你具体解读一下软体机器人的来源与发展。 软体机器人是一类由软体驱动材料构成…

seata的安装及基本使用

seata的安装及基本使用 安装注意事项1. 启动时需要带上seata所在服务器的地址和端口(默认是8091)2. seata的服务端配置文件application.yml中在配置nacos的namespace时,需要注意的是:对应的值是nacos中namespace的id, 而不是名称&…

3分钟打造私人微信ChatGPT助手:新手友好指南!

接上文: https://mp.weixin.qq.com/s/RCqX0rx7TEu1gIwHEBBWKQ 本文适用于小白用户,技术大佬勿入! 前言 这里教大家如何快速的拥有一个属于自己的微信GPT助手 我个人其实不是这么部署的,但是为了方便小白用户,探索了一个…

【AI底层逻辑】——“数学华尔兹”之一元线性回归

一元线性回归模型想必大家都耳熟能详,这里不再赘述。但在使用python中机器学习包时一定见过类似模型评价参数的输出,这一章我们就讲一讲回归分析里一些模型评价概念! 一、方差分析ANOVA 方差分析是一种用于确定线性回归模型中不同变量对目标…

Java版工程行业管理系统源码-专业的工程管理软件-提供一站式服务

鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 项目背景 随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提…

数字孪生轻量化引擎——AMRT3D引擎

随着全球经济亟待复苏,作为科技发展主要需求技术之一,数字孪生已经成为全球多个国家重点布局行业。例如,美国工业互联网盟将数字孪生作为工业互联网落地的核心和关键,德国工业4.0参考架构将数字孪生作为重要内容。 数字孪生已经形…

【问题解决】将页面下载为PDF文件(前端实现)

在前端开发过程中,将html页面下载为pdf文件的思路:使用html2canvas和jsPDF两个库,大致流程就是首先使用html2canvas库将组件内容转换为图像,然后使用jsPDF库将图像生成为PDF文件。 安装html2canvas库 npm install html2canvas安…

联邦学习算法介绍-FedAvg详细案例-Python代码获取

联邦学习算法介绍-FedAvg详细案例-Python代码获取 一、联邦学习系统框架二、联邦平均算法(FedAvg)三、联邦随梯度下降算法 (FedSGD)四、差分隐私随联邦梯度下降算法 (DP-FedSGD)五、差分隐私联邦平均算法 (DP-FedAVG)六…

word图片点击放大,word图片双击放大

网上自己搜了半天,都是顾左右而言他,直接实践一下。 干货就是:调整word视图为阅读模式,双机图片 就能放大查看,然后还会有一个 放大镜供点击放大到整个屏幕。 其实挺好理解的,word跟wps不同,w…

二十六、模型、视图、代理

二十六、模型、视图、代理 模型(Model) InterView框架中所有模型都基于抽象基类QAbstractItemModel类,此类由QAbstractListModel、QAbstractTableModel和QAbstractProxyModel类继承。 视图(View) InterView框架中的…

为什么需要分库分表,如何实现?

本文我们主要讲解“为什么需要分库分表,如何实现”。 在前文中讲到了读写分离,读写分离优化了互联网读多写少场景下的性能问题,考虑一个业务场景,如果读库的数据规模非常大,除了增加多个从库之外,还有其他…

爬虫 scrapy ——scrapy shell调试及下载当当网数据(十一)

目录 一、scrapy shell 1.什么是scrapy shell? 2.安装 ipython 3.使用scrapy shell 二、当当网案例 1.在items.py中定义数据结构 2.在dang.py中解析数据 3.使用pipeline保存 4.多条管道的使用 5.多页下载 参考 一、scrapy shell 1.什么是scrapy shell&am…

行业锦囊|住建厅CA证书使用指南

数字化、高效率、低成本已成为企业发展转型的重要考量因素,建筑工程企业也不例外。而工程资料签署和管理又是每个建筑工程企业发展转型绕不开的课题:在建工程项目异地盖章周期性长、庞大的签署量及海量的文件管理如何优化;企业如何缩短对公业…

AXURE地图获取方法

AXURE地图截取地址 https://axhub.im/maps/ 1、点击上方地图或筛选所需地区的地图,点击复制到 Axure 按钮,到 Axure 粘贴就可以了 2、复制到 Axure 后,转化为 svg 图形,就可以随意更改尺寸/颜色/边框,具体操作如下&am…