商务服务
dialogbot:开箱即用的对话机器人解决方案,涵盖问答型对话、任务型对话和聊天型对话等多种场景,为您提供全方位的对话交互体验。
2025-01-01 18:50

人机对话系统一直是AI的重要方向,图灵测试以对话检测机器是否拥有高度的智能。如何构建人机对话系统或者对话机器人呢

  • 对话系统经过三代的演变

    1. 规则对话系统:垂直领域可以利用模板匹配方法的匹配问句和相应的答案。优点是内部逻辑透明,易于分析调试,缺点是高度依赖专家干预
      缺少灵活性和可可拓展性。
    2. 统计对话系统:基于部分可见马尔科夫决策过程的统计对话系统,先对问句进行贝叶斯推断,维护每轮对话状态,再跟进对话状态进行对话策略的选择
      从而生成自然语言回复。基本形成现代的对话系统框架,它避免了对专家的高度依赖,缺点是模型难以维护,可拓展性比较受限。
    3. 深度对话系统:基本延续了统计对话系统的框架,但各个模型采用深度网络模型。利用了深度模型强大的表征能力,语言分类和生成能力大幅提高
      缺点是需要大量标注数据才能有效训练模型。
  • 对话系统分为三类

    • 问答型对话:多是一问一答,用户提问,系统通过对问题解析和查找知识库返回正确答案,如搜索。
    • 任务型对话:指由任务驱动的多轮对话,机器需要通过理解、主动询问、澄清等方式确定用户目标,然后查找知识库返回结果,完成用户需求。
      :机器人售电影票。
    • 聊天型对话:目标是产生有趣且富有信息量的自然答复使人机对话持续下去,如小度音响。

计算用户问句与问答库中问句的相似度,选择最相似的问句,给出其对应的答复。

句子相似度计算包括以下方法

  • TFIDF
  • BM25
  • OneHot
  • Query Vector

对百度、Bing的搜索结果摘要进行答案的检索

  • 百度搜索,包括百度知识图谱、百度诗词、百度万年历、百度计算器、百度知道
  • 微软Bing搜索,包括bing知识图谱、bing网典
  • End to End Memory Networks(memn2n)
  • BABi dataset
  • GPT2 Model
  • Sequence To Sequence Model(seq2seq)
  • Taobao dataset

Official Demo: https://www.mulanai.com/product/dialogbot/

The project is based on transformers 4.4.2+, torch 1.6.0+ and Python 3.6+.
Then, simply do:

 

or

 
 
 

example: examples/bot_demo.py

 

output:

 
 

example: examples/taskbot_demo.py

3.3.1 GPT2模型使用

基于GPT2生成模型训练的聊天型对话模型。

模型已经 release 到huggingface models:shibing624/gpt2-dialogbot-base-chinese

example: examples/genbot_demo.py

 

output:

 

3.3.2 GPT2模型fine-tune

  • 数据预处理
    在项目根目录下创建data文件夹,将原始训练语料命名为train.txt,存放在该目录下。train.txt的格式如下,每段闲聊之间间隔一行,格式如下
 

运行preprocess.py,对data/train.txt对话语料进行tokenize,然后进行序列化保存到data/train.pkl。train.pkl中序列化的对象的类型为List[List],记录对话列表中,每个对话包含的token。

 
  • 训练模型
    运行train.py,使用预处理后的数据,对模型进行自回归训练,模型保存在根目录下的model文件夹中。

在训练时,可以通过指定patience参数进行early stop。当patience=n时,若连续n个epoch,模型在验证集上的loss均没有下降,则进行early stop,停止训练。当patience=0时,不进行early stop。

代码中默认关闭了early stop,因为在实践中,early stop得到的模型的生成效果不一定会更好。

 

更多的训练参数介绍,可直接看train.py中的set_args()函数中的参数说明

3.3.3 预测模型(人机交互

运行interact.py,使用训练好的模型,进行人机交互,输入q结束对话之后,聊天记录将保存到sample.txt文件中。

 

执行interact.py时,可以尝试通过调整topk、topp、repetition_penalty、max_history_len等参数,调整生成的效果。更多的参数介绍,可直接看interact.py的set_args()函数中的参数说明
如果要使用GPU进行生成,则不要调用–no_cuda参数,并且通过–device gpu_id来指定使用哪块GPU。

  • 问答示例
  • sample1
 
  • sample2
 
 
  • 闲聊语料分享
    |中文闲聊语料 | 数据集地址 |语料描述|
    |---------|--------|--------|
    |常见中文闲聊|chinese_chatbot_corpus|包含小黄鸡语料、豆瓣语料、电视剧对白语料、贴吧论坛回帖语料、微博语料、PTT八卦语料、青云语料等|
    |50w中文闲聊语料 | 百度网盘【提取码:4g5e】 或 GoogleDrive |包含50w个多轮对话的原始语料、预处理数据|
    |100w中文闲聊语料 | 百度网盘【提取码:s908】 或 GoogleDrive|包含100w个多轮对话的原始语料、预处理数据|

中文闲聊语料的内容样例如下:

 
  • 模型分享
模型共享地址模型描述model_epoch40_50wshibing624/gpt2-dialogbot-base-chinese 或 百度网盘(提取码:taqh) 或 GoogleDrive使用50w多轮对话语料训练了40个epoch,loss降到2.0左右。
  • Reference
  • Wen T H, Vandyke D, Mrksic N, et al. A Network-based End-to-End Trainable Task-oriented Dialogue System[J]. 2016.
  • How NOT To evaluate Your Dialogue System: An Empirical Study of Unsupervised evaluation Metrics for Dialogue Response Generation
  • A. Bordes, Y. Boureau, J. Weston. Learning End-to-End Goal-Oriented Dialog 2016
  • Zhao T, Eskenazi M. Towards End-to-End Learning for Dialog State Tracking and Management using Deep Reinforcement Learning [J]. arXiv preprint arXiv:1606.02560, 2016.
  • Kulkarni T D, Narasimhan K R, Saeedi A, et al. Hierarchical deep reinforcement learning: Integrating temporal abstraction and intrinsic motivation [J]. arXiv preprint arXiv:1604.06057, 2016.
  • BBQ-Networks: Efficient Exploration in Deep Reinforcement Learning for Task-Oriented Dialogue Systems
  • Deep Reinforcement Learning with Double Q-Learning
  • Deep Attention Recurrent Q-Network
  • SimpleDS: A Simple Deep Reinforcement Learning Dialogue System
  • Deep Reinforcement Learning with a Natural Language Action Space
  • Integrating User and Agent Models: A Deep Task-Oriented Dialogue System
  • The Curious Case of Neural Text Degeneration
  • DialoGPT: Large-Scale Generative Pre-training for Conversational Response Generation
  • vyraun/chatbot-MemN2N-tensorflow
  • huggingface/transformers
  • Morizeyao/GPT2-Chinese
  • yangjianxin1/GPT2-chitchat

参考链接:https://github.com/shibing624/dialogbot

    以上就是本篇文章【dialogbot:开箱即用的对话机器人解决方案,涵盖问答型对话、任务型对话和聊天型对话等多种场景,为您提供全方位的对话交互体验。】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/news/14474.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 https://sicmodule.kub2b.com/mobile/ , 查看更多   
最新文章
GPRS模块设计_今日gsm模块和gprs模块设计教程
摘要:GPRS模块设计,今日gsm模块和gprs模块设计教程,新片场素材小编成菲慕GPRS模块设计,今日gsm模块和gprs模块设计教程相关内容
浙大博士创立的酷态科,一年快速从零登上充电类目头部
“做品牌的难度可能比较高,但我觉得价值是更大的。”两年前,陈玮萌生了做自有品牌的打算。他创立的南京酷科电子科技有限公司,
90年代最上镜港姐重返母校极受欢迎,晒流利英语表现亲民零架子
现年53岁的樊亦敏在1991年港姐中夺得“最上镜小姐”,近年凭《爱·回家之开心速递》“白天娥(三太)”一角成功入屋,更在《万千
小红书个人怎么开店卖货?作者:小果 时间:2025-01-26 阅读:4852
小红书个人店铺开设全攻略一、注册启航,实名认证筑基础要在小红书这片潮流热土上开启你的店铺之旅,首先需完成账号注册,并进行
群邑蔚迈小红书营销解决方案 融入用户生活形成完整闭环
原标题:群邑蔚迈小红书营销解决方案 融入用户生活形成完整闭环2024年10月,群邑中国与小红书在年度合作会议上共同深化了双方的JB
2024年12月时政热点
点击蓝字信阳人事考试早知道公考到格正 上岸有保证国内新闻:1.国家统计局服务业调查中心、中国物流与采购联合会11月30日发布数据
如何实现从抖音引流到微信
么如何实现从抖音引流到微信呢?这里提供几个参考的办法给大家。1,私信品牌、商家、自媒体、KOL等都可以通过私信的方式与抖音的
稳稳赚钱的逆回购,年化7%了
来源:雪球App,作者: 简七理财,(https://xueqiu.com/5517873136/320898474) 晚上好,一起看看本周发生了哪些大事吧~ 希望
热点前瞻 ,洞察小红书过年新叙事
​​ 年关将至,大家的年终总结也告一段落了,让千瓜陪伴大家一同摸鱼探索,看看小红书的春节又整出什么新花活。 年味”撩"人
怎么入驻京东自营?2023新版京东自营入驻条件费用标准及相关规则
京东自营店占京东商城总销售额的5%,但其销售额占京东商城总销售额的70%左右。可以看出,京东自营店的销售实力,意识到京东自营