Rasa是一款开源的对话机器人框架,能让开发者使用机器学习技术快速创建工业级的对话机器人。得益于丰富的功能、先进的机器学习能力和可以快速上手的特性,Rasa框架是目前流行的开源对话机器人框架。
本书首先介绍Rasa的两个核心组件——Rasa NLU和Rasa Core的工作流程;然后详细介绍通过使用Rasa生态系统从头开始构建、配置、训练和服务不同类型的对话机器人的整体过程,如任务型、FAQ、知识图谱聊天机器人等,其中包括使用基于表单(form)的对话管理、ResponseSelector来处理闲聊和FAQ,利用知识库来回答动态查询的问题等,以及自定义Rasa框架,使用对话驱动的开发模式和工具来开发对话机器人,探索机器人能做什么,并通过交互式学习来轻松修复它所犯的任何错误;最后会介绍将Rasa系统部署到具有高性能和高可扩展性的生产环境中,从而建立一个高效和强大的聊天系统。
对话机器人开源框架Rasa首著,英文版同步上市,Rasa 联合创始人兼 CTO Alan Nichol 亲笔作序力荐,快速创建聪明的工业级对话机器人
孔晓泉
谷歌开发者机器学习技术专家(Google Developer Expert in Machine Learning),TensorFlow Addons Codeowner,Rasa SuperHero。多年来一直在世界500强公司带领团队构建机器学习应用和平台。在NLP和对话机器人领域拥有丰富的理论和实践经验。
王 冠
北京大学学士,香港科技大学硕士,先后于香港应用科技研究院、联想机器智能实验室及瑞士再保险与慕尼黑再保险数据科学团队从事数据建模、计算机图像与NLP的研发工作,发表过数篇相关国际期刊论文,并取得相关专利。当前研究方向为人工智能在金融领域的应用。
Foreword
Conversational AI combines ideas from linguistics, human-computer interaction, artificial intelligence, and machine learning to develop voice and chat assistants for a near-infinite set of use cases. Since 2016 there has been a surge in interest in this field, driven by widespread adoption of mobile chat applications. The coronavirus pandemic accelerated this trend, with almost all one-on-one interactions becoming digital.
2016 was also the year Rasa was first released and we saw the first community contributions come in on GitHub. Open source communities live and die by their users and contributors, and this is doubly true for Rasa, where our global community builds assistants in hundreds of human languages. Xiaoquan Kong and Guan Wang have been leading members of our community for years and I am grateful for their many contributions. Not least Xiaoquan’s efforts to ensure Rasa has robust support for building assistants in Mandarin. I’ve been eagerly awaiting the publication of this book.
Rasa in Action: Building Open-source Conversational AI covers precisely the topics required to become proficient at building real-world applications with Rasa. Aside from covering the fundamentals of natural language understanding and dialogue management, the book emphasizes the real-world context of building great products. In the first chapter, you are challenged to think whether a conversational experience is even the right one to build. The book also covers the essential process of Conversation-Driven Development, without which many assistants get built but fail to serve their intended users. Additionally, readers are taught practical skills like debugging an assistant, writing tests, and deploying an assistant to production.
This book will be of great use for anyone starting out as a Rasa developer, and I’m sure many existing Rasa developers will discover things they didn’t know.
—— Alan Nichol, co-founder and CTO, Rasa
推荐序
对话机器人结合了语言学、人机交互、人工智能和机器学习的理念,可用于开发应用在各种各样的用户场景下的语音和聊天智能助手。自2016年以来,对话机器人在移动App中被广泛采用,并掀起一股浪潮。人们对对话机器人的关注迅速增加,新冠病毒的大流行加速了这一趋势,几乎所有一对一的互动都数字化了。
2016年是Rasa首次发布的一年,我们看到在GitHub上出现了第一批社区贡献者。开源社区因其用户和贡献者而生,这对Rasa来说是在真实地发生着的——在我们的社区,全球开发者用数百种人类语言建立了各种各样的智能助手。本书的作者孔晓泉和王冠多年来一直是我们的社区领袖,我很感谢他们的诸多贡献。尤其是晓泉在确保Rasa的中文支持方面所做的努力,才得以成就本书。我一直非常期待本书的出版。
本书涵盖了熟练使用Rasa构建真实应用所需的全部主题。除涵盖自然语言理解和对话管理的基础知识外,本书着重讲了如何在真实场景中构建优秀的产品。在第1章中,读者会被要求思考这样一个问题:构建一个对话机器人真的是正确的选择吗?通过回答这个问题可以避免“杀鸡用牛刀”的窘境。本书还涵盖了对话驱动开发(Conversation-Driven Development)的基本过程。不使用对话驱动开发可能会出现对话机器人虽然上线却不能很好地满足目标用户需求的问题。此外,本书还向读者传授了一些实用的技能,如如何调试Rasa代码、如何测试,以及如何将对话机器人部署到生产环境中等。
本书对任何想成为Rasa开发者的人来说都是非常有用的,我相信许多现有的Rasa开发者也会从书中发现并学到新的东西。
—— Alan Nichol,Rasa联合创始人兼CTO
前言
自然语言处理(Natural Language Processing,NLP)是人工智能领域的一个重要部分。当人工智能已经在数据建模预测和图像分类识别等场景大放异彩的时候,随着深度学习算法和计算机硬件的不断发展,拥有悠久历史的NLP渐渐展现出新的发展动力和应用落地潜力,而对话机器人是NLP集大成的应用。
对话机器人已经在互联网和传统行业中有了广泛的应用,应用范围包括自动化提升工作效率、增加客户服务智能水平和降低人工运营成本等方面。本书以中文应用为核心,向读者系统地介绍对话机器人的落地构建。
为什么写这本书
在深度学习的发展浪潮中,NLP虽然有了很多重要的进步,但是相比图像视觉识别等领域,NLP有着特殊的一面。因为图像中的猫都是一样的,中国的猫在美国也是猫,不受地区、语言、文化背景等限制,所以图像数据是通用的,算法也一致。文字则不同:全球各地的书写语言各不相同,相同书写语言国家中不同地区的口语方言也各有千秋,用英语语料训练出的NLP模型并不适用于中文,因此NLP语料不具备通用性。
加上人类的语言本身具有歧义性、隐蔽性和常识性,如指代不明、讽刺、缩略等,NLP在技术实现上相当困难,在中文方面尤其如此——一方面,中文NLP缺乏学术界质量良好的大规模中文语料库;另一方面,主流开源框架对中文NLP的支持并不友好。
据笔者所知,当前的NLP参考数据,或者完全基于传统NLP的技术架构,与当前新的技术有所脱节,或者太过理论而缺乏实践,尤其是对中文NLP任务实践的深层次积累。
因此,我们在本书借助Rasa介绍构建对话机器人这一NLP集大成的任务,从而展现中文 NLP 的核心技术的实践和应用。
关于本书作者
孔晓泉 谷歌开发者机器学习技术专家(Google Developer Expert in Machine Learning),TensorFlow Addons Codeowner,Rasa SuperHero。多年来一直在世界 500 强公司带领团队构建机器学习应用和平台。在NLP和对话机器人领域拥有丰富的理论和实践经验。
王冠 北京大学学士,香港科技大学硕士,先后于香港应用科技研究院、联想机器智能实验室及瑞士再保险数据科学团队从事数据建模、计算机图像与NLP的研发工作,发表过数篇相关国际期刊论文和专利。当前研究方向为人工智能在金融领域的应用。
本书主要内容
本书将详细地介绍Rasa的生态体系,按照从入门到内部原理,再到实战的学习路线,让第一次接触机器学习和自然语言理解的用户能够迅速了解、掌握并实际运用中文NLP的核心技术。本书由初级、中级和高级3个级别的Rasa知识组成。本书内容与开发人员水平等级对应表如下所示。
本书内容与开发人员水平等级对应表
开发人员水平等级 等级能力要求 对应本书内容
初级 熟悉Rasa各个组件的概念,熟练利用现有的常用组件构建一个单机Rasa Bot 第1章、第2章、第3章
中级 熟练利用所有内建组件构建一个满足工业标准的分布式Rasa Bot 第4章、第5章、第6章、第7章
高级 熟悉Rasa各个系统的工作原理,按照需要新增、改造或创建新的子系统和组件 第8章、第9章、第10章
如何阅读本书
建议Rasa初学者,从头开始逐步深入,并按照书中的项目逐一实践,在确认已经掌握基础概念后再继续学习。同时建议,初学者不需要等到完全读完整本书再去上手做实际的对话机器人,只要学会自己期望的学习内容就可以开始进行实战,在实战中遇到不懂的问题时,再来回顾本书或把本书当作参考手册反复查阅。
对于已经有一定经验的Rasa开发者,可以按照需求有选择地精读某些章节。有经验的Rasa开发者快速通读全书也有好处,一来可以了解最新的Rasa提供了哪些读者尚不知道的高级技术(Rasa的技术体系进化得相当快),二来可以建立完善的Rasa知识体系,以后在实战中遇到问题时,可以想起来书中提到的某个技术或方案或许可以解决这一问题。
对于非Rasa系统的对话系统开发者而言,阅读本书可以学习Rasa系统是如何设计架构,以保证系统的可扩展性的。同时Rasa对话管理系统的设计是非常值得其他对话系统设计师参考学习的,我们建议重点阅读第9章“Rasa的工作原理与扩展性”。
致谢
感谢谷歌通过提供谷歌云信用额度(GCP credit)的方式来支持我们的工作。
本书代码请见码 GitHub https://github.com/Chinese-NLP-book/rasa_chinese_book_code
书本的相关代码在哪下载?