Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

聊天机器人的实现方式调研 #88

Open
winterpi opened this issue Aug 26, 2024 · 0 comments
Open

聊天机器人的实现方式调研 #88

winterpi opened this issue Aug 26, 2024 · 0 comments

Comments

@winterpi
Copy link
Owner

winterpi commented Aug 26, 2024

聊天机器人的分类

Chat-bot (闲聊机器人)或者 ODD-bot(Open-Domain Dialogue bot)

  • 多用于情感陪伴,如情感陪伴机器人,小爱音响等

KBQA-bot(Knowledge Base Question Answering bot)

  • 通过查询结构化知识库(如知识图谱)来回答用户的问题;
  • 多见于客服系统,能够解决用户的一些事实性问题,但功能上较为局限;
  • 如智能电话客服、企业知识问答等;

TOD-bot (Task-Oriented Dialogue bot)

  • 基于企业特定任务的多轮对话机器人
  • 简单的:查天气、查物流、订餐厅、预定航班、安排会议等
  • 复杂的:AI面试官

TOD 机器人的实现方法

基于pipeline的方法

  • 优点:各个环节较为可控,保证了输入和输出的一致性;
  • 缺点:每个模块的误差累积,会影响最终的准确率提升;

NLU (Natural Language Understanding)自然语言理解

  • Intent dection(意图识别)+ Slot filling(槽位填充):都可以看作是 NLP 的序列分类的任务,可以基于pre-trained LLM 提高识别的准确率。

DST(Dialogue State Tracking)对话状态管理

  • 基于前一步的槽位值信息,预测接下来的对话状态;

DLP(Dialogue Policy Learning)对话策略学习

  • 基于当前的对话状态,预测接下来的 action;

NLG(Natural Language Generation)自然语言生成

  • 基于对话的状态信息,转换并输出人能理解的语言;

基于LLM 的End-to-End的方法

论文 说明 git 地址 备注
HR-MultiWOZ: A Task Oriented Dialogue (TOD) Dataset for HR LLM Agent AWS 的 HR-MultiWOZ, 主要用来生成 HR 领域的 ToD训练集MultiWOZ https://github.com/amazon-science/hr-multiwoz-tod-llm-agent
Bootstrapping LLM-based Task-Oriented Dialogue Agents via Self-Talk AWS的工作,用来采用 bootstrapping 自举的方式,生成 ToD 领域的对话数据
DiagGPT: An LLM-based and Multi-agent Dialogue System with Automatic Topic Management for Flexible Task-Oriented Dialogue 在对话主题管理、主题状态管理、主题内容、生成回答等方面,都采用基于LLM的 prompt 的方式提取,针对于不同的领域,可以设置不同的prompt及状态模板,比通用的 GPT 效果好了很多 https://github.com/windszzlang/DiagGPT
SPACE-3: Unified Dialog Model Pre-training for Task-Oriented Dialog Understanding and Generation 阿里达摩院的方案,在用户语义理解、策略管理、内容生成等每个方面都有微调小模型支持,而整个流程基于 pre-trained LM 支持。方案的设计实现,是在GPT出现之前完成的,已经算是比较优秀的 https://github.com/AlibabaResearch/DAMO-ConvAI
End-to-end Task-oriented Dialogue: A Survey of Tasks, Methods, and Future Directions 是一篇 End-to-End ToD 论文的survey,将现有的方法分为3种:基于模块化的EToD,但不带pre-trained LM (Modularly EToD w/o PLM); 基于模块化的EToD,并且将pre-trained LM 应用于全部模块;存粹的基于LM 语义理解的 EToD。并测试了当前几种开源项目的准确率 https://github.com/BMPixel/Awesome-EToDs-Survey
A Survey on Recent Advances in LLM-Based Multi-turn Dialogue Systems 中山大学的一篇基于LLM的多轮对话的servery,包含了 LLM 预训练、微调路径、基于LLM的 TOD的实现方法、基于LLM的 ODD(open-domain dialogue)实现方法
TransferTOD: A Generalizable Chinese Multi-Domain Task-Oriented Dialogue System with Transfer Capabilities 复旦大学构建了一个 transferTOD 数据集,并在此数据集上进行 TOD 模型训练:基于Baichuan7B基座模型,采用 transfer TOD + BELLE 等比数据集进行 SFT,再采用 LoRA 二次微调。项目中给出了微调所需的数据样例,有一定的参考价值 https://github.com/KongLongGeFDU/TransferTOD
Synergizing In-context Learning with Hints for End-to-end Task-oriented Dialog Systems syncTOD使用了与TOD相关的多种提示,包括实体类型、响应长度、对话结束标志等,此外基于这些提示,使用检索-重排序方法提高上下文的数据匹配
Large Language Models as Zero-shot Dialogue State Tracker through Function Calling FncTOD 采用 function calling 的方式管理TOD 中的 DST(对话状态追踪),也可以基于少量样本数据训练,测试结果显示效果不错 https://github.com/facebookresearch/FnCTOD
SMILE: Single-turn to Multi-turn Inclusive Language Expansion via ChatGPT for Mental Health Support (CoRR 2024) 以心理咨询为方向,采用GPT将单轮对话扩展成多轮对话,并对多轮对话打上类别标签,基于这些多轮对话数据集,训练出 SMILECHAT https://github.com/qiuhuachuan/smile 1. 虽然data.json中打上了 label 标签,但在 convert_to_training_set.py 中还是未用上 label 标签;2. 最终还是将所有的前序对话都作为 history ,history 会很长

References:

  1. 任务型对话系统-理论
@winterpi winterpi changed the title 聊天机器人的实现路径 聊天机器人的实现方式调研 Aug 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant