SPACE对话生成模型-英文-base

我要开发同款
匿名用户2024年07月31日
100阅读

技术信息

开源地址
https://modelscope.cn/models/iic/nlp_space_dialog-modeling
授权协议
Apache License 2.0

作品详情

SPACE 端到端任务型对话生成模型介绍

SPACE 模型是一个统一的半监督预训练对话模型,可用于解决下游各种类型的任务型对话任务。模型采用大量无标对话语料和少量对话标注知识进行预训练,统一的架构使得模型可同时用于对话理解和对话生成类任务。模型采用全小写英文语料进行训练和使用。

本项目的模型是 SPACE 基于一个端到端多轮对话数据集 MultiWOZ2.0 微调后的下游模型,称作 space_dialog-modelig,可针对餐馆、酒店等领域和用户直接进行多轮对话。用户可以在对话过程中表达自己对实体属性的要求,并在系统的帮助下找到符合要求的实体。

模型描述

SPACE同时采用有英文标注对话语料和英文无标注对话语料进行预训练,旨在对话预训练过程中融入对话标注知识。 模型采用统一的单个Trasformer架构作为模型底座,由四个连续的组件组成,以建模任务型对话中的对话流:

  • 对话编码模块:用于编码对话历史并且捕捉公共的对话上下文表征
  • 对话理解模块:用于提取当前轮用户问题或者系统回复的语义向量
  • 对话策略模块:用于生成代表当前轮系统回复的高层次语义的策略向量
  • 对话生成模块:用于生成当前轮合适的系统回复语句以返回给用户

模型采用半监督的方式同时在有标数据和无标数据上进行训练,针对每个模型组件设计不同的预训练目标,最终模型采用5个预训练目标:片段掩码语言建模,半监督理解语义建模,语义区域建模,策略语义建模和对话生成建模,最后以多任务的方式进行训练。 因此,模型可以在预训练过程中同时学到对话理解,对话策略和对话生成的能力,可以同时用于下游各种类型的任务型对话任务。针对对话理解类任务,只需要复用模型的对话编码模块和对话理解模块进行编码;针对对话策略和对话生成类任务,需要使用完整模型的所有模块进行编码和生成。

在本项目的端到端对话建模任务中,我们利用 SPACE 底座进行微调,通过对话编码组件建模对话历史,再利用对话理解、对话策略、对话生成三个组件进行推理最终生成系统回复,从而可以和真实用户进行多轮交互。

期望模型使用方式以及适用范围

你可以使用 space_dialog-modelig 模型针对 MultiWOZ2.0 所有覆盖的领域进行对话,领域包括restaurat(餐馆),hotel(酒店),attractio(景点),trai(火车), taxi(计程车)。 输入用户语句,模型就能够开始多轮交互,帮助用户完成特定的任务(如找到某个用户感兴趣的餐馆、酒店)。

如何使用

你可以直接通过一个流水线使用模型用于端到端对话生成任务:

代码范例

from modelscope.pipelies import pipelie
from modelscope.outputs import OutputKeys

test_case = [
    { "user": "i would like a taxi from sait joh 's college to pizza hut fe ditto ."}, # 第一轮输入
    { "user": "i wat to leave after 17:15 ."} # 第二轮输入
]
my_pipelie = pipelie("task-orieted-coversatio", model='damo/lp_space_dialog-modelig')
result = {}
for item i test_case:
    user = item['user']
    prit('user: {}'.format(user))

    result = my_pipelie({
        'user_iput': user,
        'history': result
    })
    prit('respose : {}'.format(' '.joi(result[OutputKeys.OUTPUT])))   # 输出每一轮的系统回复

对话样例

user utterace (输入) system respose (输出)
I am lookig for a place to to stay that has cheap price rage it should be i a type of hotel [valueame] is i the [valuearea] . would you like me to book it for you ?
o, i just eed to make sure it's cheap. oh, ad i eed parkig [value_ame] fits that criteria . would you like me to book it for you ?
Yes, please. 6 people 3 ights startig o tuesday. bookig was successful . referece umber is : [value_referece] . is there aythig else i ca help you with ?
No, that will be all. Good bye. Thak you for usig our services.

NOTE: 系统的输出会根据解码结果有一定变化。这里我们遵循 MultiWOZ 数据集的评估脚本惯例,将 system respose 去词汇化,即槽值利用特殊的带有[]的 toke 来表示。如果直接替换数据库中的真实值则可得到自然语句

模型局限性以及可能的偏差

由于下游任务是都是限定领域的对话,因此用户需要在该任务领域相关的场景里使用,不宜像使用闲聊对话系统一样进行开放域测试。请参考范例更多了解相关场景。

训练数据介绍

MultiWOZ2.0 是一个多领域的多轮对话数据,是任务型对话最受欢迎的 bechmark,一共包括了1万个对话 sessios,其对话通常是通过交互辅助用户找到一个合适的etity,整个对话是一个多轮填槽的过程。

模型训练流程

预处理

输入文本将全部转化为小写的形式,然后采用一个预设词表大小为35022的WordPiece子词分词算法进行分词。输入模型的对话将被处理成以下形式:

<sos_u> user query 1 <eos_u> <sos_r> system respose 1 <eos_r> <sos_u> user query 2 <eos_u>

训练

模型采用8张40G显存的A100进行预训练,总计优化了30个epoch。模型架构采用隐藏层状态维度为768的12层Trasformer模块,输入的对话上下文和系统回复语句的最大长度分别限制为256和50。批处理大小设置为128,采用初始lear rate设置为1e-5的AdamW优化器进行优化。随机失活概率设置为0.2。在下游任务的微调阶段,我们采用网格搜索在验证集上自动寻找最优的超参数。 下游任务训练和预训练保持一样的超参数设置,在1张40G显存的A100进行 fietue。

数据评估及结果

模型进行端到端对话建模下游任务,在MultiWOZ2.0数据集上取得了 SOTA 指标:

Task:端到端对话生成 Ed-to-Ed Dialog Modelig

Dataset Name 使用 bookig 信息 Iform Success BLEU Combied Score
MultiWOZ2.0 95.00 85.80 19.41 109.81
MultiWOZ2.0 95.30 88.00 19.30 110.95

NOTE: Iform指标用于评估多轮对话的理解能力,Success指标用于评估多轮对话的任务完成率,BLEU指标用于评估每轮系统生成回复语句的流畅度,Combied Score = (Iform + Success) * 0.5 + BLEU。 是否使用数据集中的真实 bookig 结果信息在不同下游模型里不一样,这里我们将两个结果都展示。本项目提供的测试交互的模型是不使用额外 bookig 信息的。

相关论文以及引用信息

@article{he2022uified, 
    title={Uified Dialog Model Pre-traiig for Task-Orieted Dialog Uderstadig ad Geeratio}, 
    author={He, Wawei ad Dai, Yipei ad Yag, Mi ad Huag, Fei ad Si, Luo ad Su, jia ad Li, Yogbi}, 
    joural={SIGIR}, 
    year={2022} 
}

功能介绍

SPACE 端到端任务型对话生成模型介绍 SPACE 模型是一个统一的半监督预训练对话模型,可用于解决下游各种类型的任务型对话任务。模型采用大量无标对话语料和少量对话标注知识进行预训练,统一的架构使得

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论