2.1 ChatGPT语音聊天机器人案例回顾
本节主要跟大家谈企业级以大模型驱动应用的三大核心,我们会通过一个具体的案例看一下它的源码,包括案例本身的源码以及框架的源码。上一章跟大家分享了一个端到端的语音聊天机器人,基于大模型的开发分成三层:前端、后端、模型。
第一层是前端,可能是一个UI界面,用户可能在网络、移动设备、或者其他物联网设备上进行使用。我们做大模型开发,更经典的一种展现方式是把大模型驱动的系统做成一个插件(Plugins),其他的企业或者实体可以集成我们的插件,这对于大模型时代的开发是非常重要的,因为现在业界逐渐有一个趋势或者共识,所有的应用程序背后都值得用大模型驱动重新开发一遍,重新开发肯定是想使用大模型的一些优势,大模型的优势在于它的推理能力。如果使用插件封装基于大模型的应用或者系统,可以把你的服务提供给所有的机构,例如一些教育培训机构,它已经有业务市场,而且有很好的客户,不是直接做一个基于大模型驱动的教育产品,而是做一个插件,给一些上市公司或者一些学校机构使用。
第二层是后端,聊天机器人后端的开发,很多时候是一个服务(server)加上一个框架(framework)的方式,如果你已经有Python的开发基础,做全栈开发或者后端开发,应该对这个内容很清楚,后端的服务一直运行监听事件,然后基于事件作出响应。框架(framework)会提供一些工具,提供一些API接口以及与环境交互,提供很多增强的功能,工具一般封装了第三方的API或者第三方数据访问的能力,从大模型应用的角度讲,还有一个很核心的元素是大模型,从企业实际生产及开发的角度,基于框架来呼叫大模型。基于现代的大模型开发,大模型的最重要的两个功能,第一个是提供具体的中间步骤,第二个是评估能力。在大模型的基础之上,开发人员最重要的就是写提示词,无论是下指令让模型做一些事情,还是在完成事情的过程中对结果进行评估,大模型的结果会有几种情况,一种情况是符合你的预期,另外一种情况是不符合你的预期,不符合你的预期,又分成三种情况:第一种是部分的正确,也有部分的错误;第二种情况是错误的;第三种情况是不相关的,错误和不相关是有区别的,如果是不相关的话,表明大模型根本就没有理解你的内容,可能是模型自身的问题,但大概率是你的提示词的问题。大模型提供具体的步骤或者推理的过程,以及对整个过程进行评估,这都是大模型的视角。使用大模型要运行一个服务,另外一个核心的视角肯定是本身的代理(Agent),代理本身会不断进行循环,基于模型产生的步骤以及对效果的评估,不断调整它的执行,这个调整可能是和第三方工具打交道,也可能是和第三方数据打交道,这个数据不是模型的数据,而是用户私有的数据或者用户本身自己一些偏好(preference)之类的数据。从企业级开发的角度,最重要的是要有一个类似代理的智能体,这个智能体它会负责跟模型打交道,因为模型会产出具体的执行过程,这是一个动态调整的过程,智能体会不断的进行循环,看一下中间过程的结果,如果有必要,智能体会根据模型的信息调用第三方工具或者访问私有数据。从产品的角度讲,代理的智能体才是真正的核心,代理和模型打交道,会和数据打交道,又会和工具(Tools)打交道。在业界的最佳实践中,一般都会把这些东西封装进框架,业界现在最流行的框架是LangChain,这是开源界公认的最好的大模型框架,是工业界使用最广泛的大模型框架,也是学术界认可最广泛的大模型框架。如果你做大模型开发,做一些企业级项目、创业项目,或者个人的一些爱好项目,想最快速最可靠的实现,以及跟别人协同合作,无论考虑哪一个因素,作者都强烈建议你使用LangChain。
第三层是模型层,现在的大模型有一个概念叫模型即服务(Model as a Service,MaaS), 大模型一旦作为一个服务,就类似于容器(container)或者上下文(context)的一个概念,在大模型上可以做很多的事情。很多的创业公司、很多的新项目都是基于模型即服务的概念,如果基于大模型驱动进行新应用程序开发,对大模型进行封装和处理,在细分领域方面作为基础设施,在这个层面肯定是一件很有价值的事情。提示词和大模型的交互是一个反馈循环(feedback loop)不断迭代的过程,作者提出的一个很重要的概念,叫有状态提示词(stateful prompting),之所以创建这个概念,是因为模型是有状态的,会产生很多问题,现在很多项目都要求对状态进行管理,另外一个方面是提示词,如果从状态的角度,比较容易解决。
这是我们对语音聊天机器人基本流程的回顾,从代码的角度,用户通过录音按钮输入语音,背后会转成文字,转成文字之后,通过提示词的方式和OpenAI GPT模型进行交互,交互之后会形成文字,转过来会使用工具将文字变成语音,这跟微信的使用是一样的。这个程序现在已经迭代将近十个版本了,给大家展示的是第一个版本,好几个企业基于这个程序做了一些产品,因为不同的企业它有不同的开发版本,大家看见的是一个基础的内核版本,如果从企业级的角度,考虑的不仅是调用API,而是将模型作为推理引擎和评估模型,这是一个很重要的概念;第二点是私有的数据或者第三方数据;第三点是工具,所有的东西都需要一个代理的载体。基于大模型的开发有三种不同的角色,大家常知道的是两种,一种是机器人(bot),一种是用户(user),其实还有一种是系统(system)。为了方便大家学习,我们把程序所有的行为都记录在一个统一的日志文件中,可以很清楚的看见它执行的过程,包括对OpenAI API的调用,对ELEVEN_LABS的调用等,日志显示都是成功的。如果你是一个快要毕业的大学生,想做一个企业级的项目,可以基于这个程序进行改进,因为它既有前端又有后端,在这个基础上可以不断进行版本迭代。
企业级大模型开发的核心是模型、工具和数据,开源界最流行、工业界应用最广泛、学术界认可度最高的是LangChain框架(https://github.com/hwchase17/langchain),这个项目现在已经将近5万个点赞,有5000多个Fork,项目增长的趋势比较恐怖,追溯到历史版本,最初它开始的时候只是几百行代码,基本上一两天都会发布一个新版本,有时候每天都会发布一个新版本。如果你要做企业级开发,请使用LangChain,因为作者和美国、英国、加拿大、印度、澳大利亚这些团队合作的时候,发现他们所在的公司都在使用LangChain,举个例子,作者曾经领导英国、澳洲、美国,还有欧洲一个很小的国家去做一个对话机器人的项目,他们内部进行技术方面的一些比赛,一般是24个小时之内要做出这个项目的演示版本(demo),他们获得第一名的演示版,就是基于LangChain实现的,这个例子跟大家强化一点,你要去做开发,可以首选LangChain,如果有其他的需要,你可以在尝试过LangChain之后,再尝试其他的东西。
《企业级ChatGPT开发入门实战直播21课》报名课程请联系:
Gavin老师:NLP_Matrix_Space
Sam老师:NLP_ChatGPT_LLM
我们的两本最新书籍年底即将出版:
- 《企业级Transformer&ChatGPT解密:原理、源码及案例》
- 《企业级Transformer&Rasa解密:原理、源码及案例》
《企业级Transformer&ChatGPT解密:原理、源码及案例》本书以Transformer和ChatGPT技术为主线,系统剖析了Transformer架构的理论基础、模型设计与实现,Transformer语言模型GPT与BERT,ChatGPT技术及其开源实现,以及相关应用案例。内容涉及贝叶斯数学、注意力机制、语言模型、最大似然与贝叶斯推理等理论,和Transformer架构设计、GPT、BERT、ChatGPT等模型的实现细节,以及OpenAI API、ChatGPT提示工程、类ChatGPT大模型等应用。第一卷介绍了Transformer的Bayesian Transformer思想、架构设计与源码实现,Transformer语言模型的原理与机制,GPT自回归语言模型和BERT自编码语言模型的设计与实现。第二卷深入解析ChatGPT技术,包括ChatGPT发展历史、基本原理与项目实践,OpenAI API基础与高级应用,ChatGPT提示工程与多功能应用,类ChatGPT开源大模型技术与项目实践。
ChatGPT 技术:从基础应用到进阶实践涵盖了ChatGPT技术和OpenAI API的基础和应用,分为8个章节,从ChatGPT技术概述到类ChatGPT开源大模型技术的进阶项目实践。
1. ChatGPT技术概述:主要介绍了GPT-1、GPT-2、GPT-3、GPT-3.5和GPT-4的发展历程和技术特点,以及ChatGPT技术的基本原理和项目案例实战。
2. OpenAI API基础应用实践:主要介绍了OpenAI API模型及接口概述,以及如何使用OpenAI API进行向量检索和文本生成。
3. OpenAI API进阶应用实践:主要介绍了如何使用OpenAI API基于嵌入式向量检索实现问答系统,如何使用OpenAI API对特定领域模型进行微调。
4. ChatGPT提示工程基础知识:主要介绍了如何构建优质提示的两个关键原则,以及如何迭代快速开发构建优质提示。
5. ChatGPT提示工程实现多功能应用:主要介绍了如何使用ChatGPT提示工程实现概括总结、推断任务、文本转换和扩展功能。
6. ChatGPT提示工程构建聊天机器人:主要介绍了聊天机器人的应用场景,以及如何使用ChatGPT提示工程构建聊天机器人和订餐机器人。
7. 类ChatGPT开源大模型技术概述:主要介绍了类ChatGPT开源大模型的发展历程和技术特点,以及ChatGLM项目案例实践和LMFlow项目案例实践。
8. 类ChatGPT开源大模型进阶项目实践:主要介绍了类ChatGPT开源大模型的进阶项目实践,包括基于LoRA SFT+RM+RAFT技术进行模型微调、基于P-Tuning等技术对特定领域数据进行模型微调、基于LLama Index和Langchain技术的全面实践,以及使用向量检索技术对特定领域数据进行模型微调。
本书适用于NLP工程师、AI研究人员以及对Transformer和ChatGPT技术感兴趣的读者。通过学习,读者能够系统掌握Transformer理论基础,模型设计与训练推理全过程,理解ChatGPT技术内幕,并能运用OpenAI API、ChatGPT提示工程等技术进行项目实践。
Transformer作为目前NLP领域最为主流和成功的神经网络架构,ChatGPT作为Transformer技术在对话系统中的典型应用,本书内容涵盖了该领域的最新进展与技术。通过案例实践,使理论知识变成技能,这也是本书的独特之处。
《企业级Transformer&Rasa解密:原理、源码及案例》:是一本深入介绍Rasa对话机器人框架的实战开发指南。本书分为两卷,第一卷主要介绍基于Transformer的Rasa Internals解密,详细介绍了DIETClassifier和TED在Rasa架构中的实现和源码剖析。第二卷主要介绍Rasa 3.X硬核对话机器人应用开发,介绍了基于Rasa Interactive Learning和ElasticSearch的实战案例,以及通过Rasa Interactive Learning发现和解决对话机器人的Bugs案例实战。
第一卷中介绍了Rasa智能对话机器人中的Retrieval Model和Stateful Computations,解析了Rasa中去掉对话系统的Intent的内幕,深入研究了End2End Learning,讲解了全新一代可伸缩的DAG图架构的内幕,介绍了如何定制Graph NLU及Policies组件,讨论了自定义GraphComponent的内幕,从Python角度分析了GraphComponent接口,详细解释了自定义模型的create和load内幕,并讲述了自定义模型的languages及Packages支持。深入剖析了自定义组件Persistence源码,包括自定义对话机器人组件代码示例分析、Resource源码逐行解析、以及ModelStorage、ModelMetadata等逐行解析等。介绍了自定义组件Registering源码的内幕,包括采用Decorator进行Graph Component注册内幕源码分析、不同NLU和Policies组件Registering源码解析、以及手工实现类似于Rasa注册机制的Python Decorator全流程实现。讨论了自定义组件及常见组件源码的解析,包括自定义Dense Message Featurizer和Sparse Message Featurizer源码解析、Rasa的Tokenizer及WhitespaceTokenizer源码解析、以及CountVectorsFeaturizer及SpacyFeaturizer源码解析。深入剖析了框架核心graph.py源码,包括GraphNode源码逐行解析及Testing分析、GraphModelConfiguration、ExecutionContext、GraphNodeHook源码解析以及GraphComponent源码回顾及其应用源码。
第二卷主要介绍了基于Rasa Interactive Learning和ElasticSearch的实战案例,以及通过Rasa Interactive Learning发现和解决对话机器人的Bugs案例实战。介绍了使用Rasa Interactive Learning来调试nlu和prediction的案例实战,使用Rasa Interactive Learning来发现和解决对话机器人的Bugs案例实战介绍了使用Rasa Interactive Learning透视Rasa Form的NLU和Policies的内部工作机制案例实战,使用ElasticSearch来实现对话机器人的知识库功能,并介绍了相关的源码剖析和最佳实践,介绍了Rasa微服务和ElasticSearch整合中的代码架构分析,使用Rasa Interactive Learning对ConcertBot进行源码、流程及对话过程的内幕解密,介绍了使用Rasa来实现Helpdesk Assistant功能,并介绍了如何使用Debug模式进行Bug调试,使用Rasa Interactive Learning纠正Helpdesk Assistant中的NLU和Prediction错误,逐行解密Domain和Action微服务的源码。
本书适合对Rasa有一定了解的开发人员和研究人员,希望通过本书深入了解Rasa对话机器人的内部工作原理及其源代码实现方式。无论您是想要深入了解Rasa的工作原理还是想要扩展和定制Rasa,本书都将为您提供有价值的参考和指导。
《企业级Transformer&ChatGPT解密:原理、源码及案例》、《企业级Transformer&Rasa解密:原理、源码及案例》,是您深入学习的好选择,年底即将重磅出版,欢迎购买!