语音聊天软件源代码-基于ChatGPT的端到端语音聊天机器人项目实战

1.1 ChatGPT API后台开发实战本节主要是跟大家分享一个端到端的基于模型驱动的对话机器人,会有前端和后端,也会有一些具体模型的调用,读者需具有Python语言编程的基础,这是前置性的条件,有了这个基础,理论上讲本节所有的内容,读者都可以掌握,这个语音聊天软件包含三部分, Frontend是前端,Backend是后台,模型层是ChatGPT或者大型语言模型(Large Language Models),如图1-1所示。

作为生产级的开发,在后台还有一个很重要的内容叫工具(Tools),它可能是第三方的API,也可能是第三方的服务,如果你是一个开发人员,所有互联网或者计算机上的程序,可以统一称之为Tools,提供开放的接口让你去调用,在企业生产级的开发中,工具也是非常重要的,因为模型并不能帮你解决所有的事情,即使你有很好的数据,然后跟模型进行互动,这个互动往往是一个迭代式的过程,但模型本身依旧不能帮你解决所有的事情。

语音聊天软件源代码-基于ChatGPT的端到端语音聊天机器人项目实战

因为新一代的NLP模型基本都是基于Transformer架构,它会结合一些其他技术,但是Transformer架构是核心。

GPT可能训练了全网绝大多数的数据,在模型训练的过程中,它改变Transformer层级性的网络参数,低层级可能是一些比较原始的语言特性,高层级可能是一些短语级别或者句子级别的基本意识,基于它的多头注意力机制,加上分层机制完成的效果,这跟人类习得语言的过程,或者人的注意力机制其实是一致的。

Transformer模型内部的这些参数,会基于训练的过程而不断调整,得到的结果是一个概率分布(Probability Distribution),从信息的角度,大概率不能获得一个模型来生成100%的准确信息,从技术本身的角度,由于它产生的结果是一个概率分布,无论是一些学术研究,还是企业级的一些使用,都表明它产出的结果是不可靠的。

从获得信息的角度,无论是实时性和准确性,Google显然是一种更好的选择。

所以很多人使用ChatGPT或者GPT4去生成一些文本,或者基于文本去驱动一些图片、音视频,这是有点误用或者滥用了,不正确的使用了大模型的能力,因为它的结果并不可靠。

作为我们的第一章,我们必须清晰化的明确使用大模型的核心是什么?使用大模型的核心是它的推理能力,而不是它产生信息的能力。

举一个具体的例子,例如,一个老师教一群学生,老师给学生留了一些作业,作业有具体的题目、上下文描述以及目标。

不同的学生会有个人的一些信息,如过去上了哪些课,他的成绩怎么样,以及这一学期的表现等等,另外一方面,老师根据自己的经验也会有一些信息,基于这些信息并结合大模型,如果你使用这个提示词(Prompt),会改变每个学生具体的学习步骤。

例如,同样1个作业,基于这个学生本身特有的数据,有些学生可能需要完成10个步骤,但有些学生可能三个步骤就可以了,在这个过程中,它是一个迭代的过程,会随着你步骤的完成情况进行调整。

这是我们说的推理引擎(Reasoning Engine)以及真正正确使用大模型的方式,或者最有价值的使用大模型的方式。

在大模型作为一个推理引擎或者驱动器的过程中,正常情况下都要和第三方工具打交道,例如通过API呼叫学校的学习系统或者信息系统,完成模型、数据和工具三者构建一个动态有序的一个系统,无论在硅谷业界,还是在研究界,这是真正做企业级ChatGDP或者LLMs大模型开发三个很重要的维度。

从整体的层面,大模型本身的核心是提示词(Prompts),很多人认为提示词是新一代的编程语言,认为提示词在不同的领域和行业将会成为最重要的一个竞争力,你写提示词的质量,以及根据模型的反馈去调整提示词,还有对提示词背后的认知能力,会形成新一代的技术人员或者工程师的核心竞争力。

在后端,所有的东西都被框架封装,框架会和环境进行互动,框架运行在一台机器或者一个节点上面,环境可能是操作系统本身,也可能是一个虚拟的系统等等,但不管是什么情况,其实就是一个正常的程序,框架一般会运行在一个具体的服务上,然后根据一些事件触发相应的动作,由于它可以和环境进行互动,所以它可以调用外界互联网的基础设施,无论是数据层面,还是工具层面,还是在协同过程中需要人类参与层面的技术。

这是整体的一个基本概况,后端和模型交互的核心在于提示词,我们写什么样的提示词决定了程序的质量,例如,如果做一个教育系统,可能有不同的学科,比如数学、语文、物理、化学等等,借助大模型的能力去帮助学员学习或者答题,这个时候,怎么写提示词肯定是非常重要的,因为提示词如果写得不好,它给你的可能是一个非常笼统的结果,甚至是一个完全不相干的结果或者是错误的结果。

什么叫合适的提示词?在刚才说的场景中,会有很多科目,例如数学会有很多题型,你让它解题,如果没有领域专家的介入,这个时候就会很麻烦。

但是现在假设你没有领域专家的介入,你想让提示词很有效,一个非常简单的方式就是让这个模型展示具体的解题步骤,简单的一句话,让大模型展示具体的过程,就能极大地有效的提升整个模型或者应用程序的表现效果,我们的后端和模型交互的核心都在提示词,在本章节中,提示词会贯穿所有的内容。

前端是一个聊天程序,如图1-2所示,基本的界面是一个对话列表,有用户说的信息,也会有系统响应返回给用户的信息,这很容易理解,这里显示的是一个Web端。

图1- 2 聊天程序前端我们把整个基于大模型驱动的系统作为应用程序来服务于用户,但另外一种常见的方式,是把这个系统作为一个插件(Plugins),例如,基于大模型的教育系统,如果你不想直接服务于学员,而想服务于已有的教育机构,这个时候使用插件进行封装,就是一个非常理想的选择,这里面有个很重要的细节点,为什么不直接使用API,而是采用插件的方式,背后有很多原因,架构的原因或者实际考量的因素,但一个很重要的因素,在这里不得不提的是做插件,它相当一个封装器,从设计模式的角度讲,它是一种代理模式,后台或者是模型是你自己背后的系统,在这个地方如果做个插件的话,可以很好的融入你要服务的教育机构本身系统的行为或者私有的数据,这是关于插件的内容。

业界现在有一个流行的观点,就是基于大模型会重构所有的程序,从用户的角度讲,程序可能还是那一个程序,你作为一个开发者,想赋能不同的行业,例如在教育领域,支持不同的学校或者培训机构,把后端的所有的东西封装成插件,显然这是一种特别理想的选择。

内容涉及贝叶斯数学、注意力机制、语言模型、最大似然与贝叶斯推理等理论,和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对话机器人的内部工作原理及其源代码实现方式。

《企业级Transformer&ChatGPT解密:原理、源码及案例》、《企业级Transformer&Rasa解密:原理、源码及案例》,是您深入学习的好选择,年底即将重磅出版,欢迎购买!。

您可能还喜欢这些内容

还没有人评论?赶快抢个沙发~

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。