对话系统分为两种,一种是开放领域的对话机器人(chatbots),这种对话系统根据目标分为许多下游任务分支,例如在情感、社交方面;具备特定领域知识的行业bot,例如法律,医疗等,大模型的出现让这种chatbots的构建变得更加简单和智能。另外一种任务型对话机器人(task-oriented dialogue systems)则更加服务于特定任务,有非常明确的意图集合(intent set), 这个集合是close domain的,因此无法进行闲聊等偏离特定任务的对话。
两种对话系统的对比
chatbots
聊天对话机器人主要是通过seq2seq模型,将用户的输入通过模型推理生成相应的对话,常见的方式有GPT类模型,训练方式有三个主要步骤:
- Pretraining 语料预训练,掌握初始的自然语言理解能力。
- Instruction Finetuning 指令微调,一般使用对话数据,让大模型养成人人对话习惯。
- Reinforcement Learning From Human Feedback(RLHF) 强化学习,对齐人类价值观。
在模型训练完之后,再加入特定领域的知识可以让模型具备回答特定领域问题的能力,从而形成领域大模型。
常用于社交、情感、通用能力(代码、数学、语言类等)的开放领域交流。
task-oriented dialogue systems
任务型对话机器人更偏向于执行特定的任务或者说回答预设的问题,例如常见的FAQ问答,预定、营销系统等。
任务型对话机器人一般需要具备以下能力:
- 词槽识别
- 意图识别
- 对话状态管理
- 对话状态跟踪
- 对话策略
保守型
一般为了让任务型能不犯错的完成任务,会使用较多条件去约束或让机器人去引导用户去完成任务,例如:
- 用户输入“帮我预定一个房间”,机器人回复“请提供您的姓名、手机号、入住日期、退房日期、房间类型、人数等信息”
通过设置对应的条件,在满足条件后继续到下一个步骤,否则将在本节点继续停留直至所要求的信息被完全收集,例如:
- 用户输入“张三,133***, 明天,后天退房”, 机器人回复“好的,为了给您预定合适的房型,请您告诉我房间类型和人数,如有住房偏好请提供。”
这样的做法虽然可以在一定程度上保证信息的完全填充,但遇到预设条件之外的要求,那么机器人将无法完成任务。
文档信息
- 本文作者:pnightowl
- 本文链接:https://pnightowlzy.github.io/2023/04/12/dialogue-systems/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)