首页 > 其他分享 >第1课 基于ChatGPT的端到端语音聊天机器人项目实战

第1课 基于ChatGPT的端到端语音聊天机器人项目实战

时间:2023-06-17 22:32:17浏览次数:36  
标签:API Transformer Rasa 模型 机器人 源码 语音 ChatGPT

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

第1课 基于ChatGPT的端到端语音聊天机器人项目实战_API

图1- 1 语音聊天软件架构图 从生产级开发架构的角度,会使用框架耦合掉后端和具体的模型层,Framework框架可以调用后端的任何模型,包括Google的模型,也有一些开源的模型,一个很重要的来源是Hugging Face,后端呼叫API的部分往往是跟模型本身进行交互,数据的部分称为私域数据(Private Data),私域数据跟模型训练数据是不一样的,它可能是企业的私有数据,也可能是企业服务于用户的过程中,每个用户产生的数据,这肯定是绝对的核心,每一个企业做产品的时候,用户数据是核心的资产、价值或者竞争力,因为现在很多模型都是通用的,模型本身并不能直接带来产品价值的差异化,而拥有的数据是一个核心竞争力的基础,在框架的支持下,数据和模型进行互动,这是技术的核心。作为生产级的开发,在后台还有一个很重要的内容叫工具(Tools),它可能是第三方的API,也可能是第三方的服务,如果你是一个开发人员,所有互联网或者计算机上的程序,可以统一称之为Tools,提供开放的接口让你去调用,在企业生产级的开发中,工具也是非常重要的,因为模型并不能帮你解决所有的事情,即使你有很好的数据,然后跟模型进行互动,这个互动往往是一个迭代式的过程,但模型本身依旧不能帮你解决所有的事情。 作者在多个场合,包括在硅谷的很多会议,都跟大家分享过一个观点,就是现在的大语言模型,例如GPT4,它的核心优势是基于你提出的指令,也称之为提示词(Prompt),生产具体中间执行的过程或者步骤,这是一个推理引擎(Reasoning Engine),也是大语言模型真正强大的地方,相应的,大语言模型不具备优势的地方是,生成信息并不是语言模型的优势,如果从信息的可靠性等相关的角度考虑,使用Google既是实时的,另外一方面覆盖的信息也会更多,而且它的服务也会更丰富,如果你使用大模型去生成信息或者生成内容,这显然是对大模型的一种误解或者不正确的使用。因为新一代的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课 基于ChatGPT的端到端语音聊天机器人项目实战_API_02

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

《企业级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解密:原理、源码及案例》,是您深入学习的好选择,年底即将重磅出版,欢迎购买!

标签:API,Transformer,Rasa,模型,机器人,源码,语音,ChatGPT
From: https://blog.51cto.com/u_10561036/6506625

相关文章

  • ChatGPT语音聊天机器人项目测试
     企业级ChatGPT开发入门实战第1课基于ChatGPT的端到端语音聊天机器人项目实战ChatGPT语音聊天机器人项目测试接下来,我们讲解一个具体的案例,让大家感受一下前端、后端和模型层,首先启动一下后端系统,执行命令如下:(chatgpt_env)(base)gavinnlp@Jialins-MacBook-Pro-2backend% u......
  • 基于ChatGPT的端到端语音聊天机器人项目实战
     企业级ChatGPT开发入门实战第1课基于ChatGPT的端到端语音聊天机器人项目实战1.4使用FastAPI构建语音聊天机器人后端实战在后端代码(backend)中调用了OpenAIAPI及其他的服务,如图1-10所示。图1-10后端代码调用OpenAIAPIopenai_requests.py是一个相对比较简单的代码文件,在生产级......
  • 在线免费chatgpt网页版-支持gpt4
    为了吸引更多的用户体验最先进的自然语言处理技术,我们推出了在线免费ChatGPT。这是一个基于OpenAI训练的大型语言模型,它可以提供智能响应、自然对话和语音识别等功能。不仅如此,我们还提供了完全免费的使用权限,任何人都可以随时进行使用。作为一款智能聊天机器人,ChatGPT具有很多......
  • 零代码编程:用ChatGPT打造小宇宙播客下载软件2.0
    之前用ChatGPT写了一个简单的小宇宙播客下载应用,但是实际使用一段时间后,发现有几个问题,比如:如果文件名中有一些特殊符号,下载不成功;有些m4a格式的也下载不成功;文件大下载的慢;根据这些情况,进行完善,利用ChatGPT生成了小宇宙播客下载软件2.0版本:在ChatGPT输入如下提示词:你现在是一个Pyt......
  • 【路径规划】基于A星算法结合floyd和动态窗口法实现机器人栅格地图路径规划附matlab代
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • AI自动写书神器,3个ChatGPT插件让你轻松赚钱!
    AI自动写书神器,3个ChatGPT插件让你轻松赚钱!你是否想过,有一天,你可以只给一个主题,让AI自动搜集资料并写出一本电子书?你是否想过,有一天,你可以不用动笔,就能成为畅销书作者?你是否想过,有一天,你可以利用AI的智慧和创造力,轻松赚取被动收入?如果你的答案是肯定的,那么恭喜你,你的梦想已经成为......
  • 语音社交源码知识语音房间功能的实现
    当今,快节奏的社会为现在的很多年轻人带来了压力,每到深夜或是压力大的时候,很多人都想找人倾诉一下自己心里的悲伤与痛苦,以此来释放一下自己的压力,然而,这是一个独生子女的社会,大部分家庭都只有一个孩子,并且每天工作繁忙又加班到很晚的人根本没有时间或是精力去交朋友,所以这些人没有人......
  • 语音社交源码知识语音房间功能的实现
       当今,快节奏的社会为现在的很多年轻人带来了压力,每到深夜或是压力大的时候,很多人都想找人倾诉一下自己心里的悲伤与痛苦,以此来释放一下自己的压力,然而,这是一个独生子女的社会,大部分家庭都只有一个孩子,并且每天工作繁忙又加班到很晚的人根本没有时间或是精力去交朋友,所以这......
  • 在freeSwitch中,实现来电对接百度语音翻译
    要在FreeSWITCH中实现来电对接百度语音翻译,可以使用FreeSWITCH提供的mod_vbr(VoiceBiometricRecognition)模块结合开发者可以使用的百度API接口来实现。下面是基本的实现步骤:安装mod_vbr模块首先需要在FreeSWITCH中安装mod_vbr模块。可以通过以下命令进行安装:sudoapt-geti......
  • 疯狂GC的第二种处理方式-ChatGPT的学习之四
    疯狂GC的第二种处理方式-ChatGPT的学习之四摘要上一个脚本太复杂了.而且要改启动脚本.课间休息跟人扯淡聊起来chatGPT发现他的语法很有用但是思路不太对.不过突然根据文档里写的想到了一个新的思路.获取GC信息whiletruedate>>/zhaobsh/gcutiljstat-gcutil`jps|......