chatGPT结构及商业级相似模型应用调研

GPT前言

说明

ChatGPT这项技术的历史可以追溯到2018年,当时由Facebook实验室的团队开发出该技术,以开发聊天机器人为目的。随后,ChatGPT在2019年由来自谷歌的DeepMind团队在国际会议ICLR上发表了论文,其中提出了ChatGPT的技术框架,以及用以构建聊天机器人的应用技术和模型。
ChatGPT的前身版本有:

  1. GPT 1.0:2018年由Facebook实验室开发,是ChatGPT技术的第一个版本,它可以帮助开发人员在真实环境中构建聊天机器人,简单说就是全局生成式预训练,但是相对于bert预训练难度太大,而且所有的下游任务都要替换预训练模型。
  2. GPT 2.0:2019年,由谷歌DeepMind团队在ICLR会议上发表了论文,提出了ChatGPT的技术框架,以及用以构建聊天机器人的应用技术和模型,是ChatGPT的第二个版本。它相对于GPT-1,添加了一个zero-shot,在预测模型里加入相应提示,使得下游任务变得统一可控,但是模型结构变得更负责,数据也更丰富了。
  3. GPT 2.2:2020年7月,ChatGPT官方发布了2.2版本,添加了基于深度学习的自然语言处理技术,以及有效的图形规划技术,可以构建出更高效的聊天机器人应用程序。它提供了一个用于快速构建聊天机器人的开源框架,支持Python和JavaScript两种语言,添加了基于深度学习的自然语言处理技术,以及有效的图形规划技术,可以构建出更高效的聊天机器人应用程序。此时模型采用one-shot方式进行训练。
  4. 2020年,谷歌又发布了一个新的模型——GPT-3,它是一种更加强大和有效率的模型,它使用类似于ChatGPT的技术,并加入了更多先进的技术,以构建更复杂的聊天机器人应用程序。此时模型积累更大,但是相对于gpt-2,加上了一些提示,或者一些例子帮助,此时是few-shot。batch-size达到了3.2m
    请添加图片描述

到目前为止,ChatGPT已经广泛应用于各种领域,比如教育、商业、健康等,可以帮助开发者构建自然语言处理

结构介绍

ChatGPT(Chat Graphical Planning Tool)是一种用于设计和开发现代聊天机器人的AI技术。它是一个开源的自然语言处理框架,可以帮助开发人员在真实环境中构建聊天机器人。ChatGPT包括组件,这些组件可以让开发人员创建自然语言处理系统,此外还可以实现智能行为和多伦智能的用户交互。ChatGPT的实现方式是将机器学习,自然语言处理,图形规划等技术结合在一起,创建出一个全方位的聊天机器人框架。

论文:
GPT论文:Language Models are Few-Shot Learners Language Models are Few-Shot Learners.
InstructGPT论文:Training language models to follow instructions with human feedback Training language models to follow instructions with human feedback.

ChatGPT的模型结构主要包括以下组件:

  1. 语句表示层:用于将输入的文本转换为句子的表示形式,以便获得可理解的信息。

  2. 意图检测层:在该层,模型将尝试从语句表示中提取意图,以便根据用户的意图做出相应的动作。

  3. 图形规划层:用于根据模型检测的意图来构建聊天流程图,以便获得最优的对话结果。

  4. 行为实现层:用于实现由图形规划层生成的行为,以及处理和响应用户输入。

  5. 学习层:用于学习用户行为和反馈,以改进模型的性能,从而使模型的功能更加完善。

具体训练过程如下:

1. 训练监督策略模型

GPT 3.5本身很难理解人类不同类型指令中蕴含的不同意图,也很难判断生成内容是否是高质量的结果。为了让GPT 3.5初步具备理解指令的意图,首先会在数据集中随机抽取问题,由人类标注人员,给出高质量答案,然后用这些人工标注好的数据来微调 GPT-3.5模型(获得SFT模型, Supervised Fine-Tuning)。此时的SFT模型在遵循指令/对话方面已经优于 GPT-3,但不一定符合人类偏好。
请添加图片描述

2. 训练奖励模型(Reward Mode,RM)

这个阶段的主要是通过人工标注训练数据(约33K个数据),来训练回报模型。在数据集中随机抽取问题,使用第一阶段生成的模型,对于每个问题,生成多个不同的回答。人类标注者对这些结果综合考虑给出排名顺序。这一过程类似于教练或老师辅导。接下来,使用这个排序结果数据来训练奖励模型。对多个排序结果,两两组合,形成多个训练数据对。RM模型接受一个输入,给出评价回答质量的分数。这样,对于一对训练数据,调节参数使得高质量回答的打分比低质量的打分要高。

3. 采用PPO(Proximal Policy Optimization,近端策略优化)强化学习来优化策略。

PPO的核心思路在于将Policy Gradient中On-policy的训练过程转化为Off-policy,即将在线学习转化为离线学习,这个转化过程被称之为Importance Sampling。这一阶段利用第二阶段训练好的奖励模型,靠奖励打分来更新预训练模型参数。在数据集中随机抽取问题,使用PPO模型生成回答,并用上一阶段训练好的RM模型给出质量分数。把回报分数依次传递,由此产生策略梯度,通过强化学习的方式以更新PPO模型参数。如果我们不断重复第二和第三阶段,通过迭代,会训练出更高质量的ChatGPT模型。

优势及缺点

ChatGPT的发展趋势以及将来的应用前景都非常令人兴奋。ChatGPT的未来发展可以期望更多的AI技术来处理和分析聊天机器人数据,比如语音识别、机器翻译等,以便更好地与用户交互。此外,ChatGPT也可以用于开发具有自我学习功能的聊天机器人,可以自动学习、记忆和模仿不同场景下的用户行为,以及拓展不同场景下的对话范围。随着云计算技术的发展与人工智能技术的突破,对ChatGPT的研究和使用也将越来越多,未来将为人工智能领域带来有趣的应用。

但是,只要用户输入问题,ChatGPT 就能给予回答,是否意味着我们不用再拿关键词去喂 Google或百度,就能立即获得想要的答案呢?尽管ChatGPT表现出出色的上下文对话能力甚至编程能力,完成了大众对人机对话机器人(ChatBot)从“人工智障”到“有趣”的印象改观,我们也要看到,ChatGPT技术仍然有一些局限性,还在不断的进步。
1)ChatGPT在其未经大量语料训练的领域缺乏“人类常识”和引申能力,甚至会一本正经的“胡说八道”。ChatGPT在很多领域可以“创造答案”,但当用户寻求正确答案时,ChatGPT也有可能给出有误导的回答。例如让ChatGPT做一道小学应用题,尽管它可以写出一长串计算过程,但最后答案却是错误的。

2)ChatGPT无法处理复杂冗长或者特别专业的语言结构。对于来自金融、自然科学或医学等非常专业领域的问题,如果没有进行足够的语料“喂食”,ChatGPT可能无法生成适当的回答。

3)ChatGPT需要非常大量的算力(芯片)来支持其训练和部署。抛开需要大量语料数据训练模型不说,在目前,ChatGPT在应用时仍然需要大算力的服务器支持,而这些服务器的成本是普通用户无法承受的,即便数十亿个参数的模型也需要惊人数量的计算资源才能运行和训练。,如果面向真实搜索引擎的数以亿记的用户请求,如采取目前通行的免费策略,任何企业都难以承受这一成本。因此对于普通大众来说,还需等待更轻量型的模型或更高性价比的算力平台。

4)ChatGPT还没法在线的把新知识纳入其中,而出现一些新知识就去重新预训练GPT模型也是不现实的,无论是训练时间或训练成本,都是普通训练者难以接受的。如果对于新知识采取在线训练的模式,看上去可行且语料成本相对较低,但是很容易由于新数据的引入而导致对原有知识的灾难性遗忘的问题。

5)ChatGPT仍然是黑盒模型。目前还未能对ChatGPT的内在算法逻辑进行分解,因此并不能保证ChatGPT不会产生攻击甚至伤害用户的表述。

类GPT模型产品

  1. GPT-2(Generative Pre-trained Transformer 2):由OpenAI开发,是一种强大的自然语言处理模型,可生成高质量的文本,包括对话、文章和新闻等。

    • GPT-2的算法链接为:https://openai.com/blog/better-language-models/
    • GPT-2的预训练语料链接为:https://d4mucfpksywv.cloudfront.net/better-language-models/gpt2_bible.zip
  2. GPT-3(Generative Pre-trained Transformer 3):也是由OpenAI开发的模型,是GPT-2的升级版,拥有更多的参数和更强大的语言生成能力。GPT-3可以生成更自然、更流畅的文本,包括对话、文章、代码等。

    • 源码及语料:https://github.com/EleutherAI/gpt-neo/
  3. XLNet:由谷歌开发,是一种自然语言处理模型,使用了自回归和自编码两种技术,可以处理不同长度的输入序列,并且在一些任务上表现良好。

    • 源码及语料:https://gitee.com/lduml/xlnet/
  4. BERT(Bidirectional Encoder Representations from Transformers):也是由谷歌开发的模型,使用双向Transformer编码器,能够在许多自然语言处理任务中取得很好的效果。

    • 源码及语料:https://gitcode.net/mirrors/google-research/bert?utm_source=csdn_github_accelerator
  5. T5(Text-to-Text Transfer Transformer):由谷歌Brain团队开发,是一种万能的文本生成模型,可以完成多种自然语言处理任务,包括翻译、摘要、问答等。

    • 源码及语料:https://github.com/google-research/text-to-text-transfer-transformer
  6. OpenAI:ChatGPT模型是由OpenAI开发的,该公司已经将该模型应用于自己的产品和服务中,包括AI写作助手GPT-3。

    • 源码及语料:https://github.com/openai/gpt-3
  7. Microsoft:微软使用了一个名为DialoGPT的ChatGPT模型来开发其AI聊天机器人。

    • 源码及语料:https://github.com/microsoft/DialoGPT
  8. Facebook:Facebook使用了名为Blender的ChatGPT模型来提高其Messenger和Portal的聊天机器人的能力。

    • 源码及语料:git clone git://git.blender.org/blender.git ||
      https://github.com/blender/blender
  9. Google:谷歌正在开发自己的ChatGPT模型,并将其应用于其智能助手Google Assistant中。

  10. Alibaba:阿里巴巴使用自己的ChatGPT模型,名为PAI-DA,来改善其自然语言处理应用程序的能力。

  • 源码及语料:
  1. Tencent:腾讯使用自己的ChatGPT模型,名为PLATO,来提升其聊天机器人的能力,并将其应用于其智能客服和智能客户服务平台。
  • 源码及语料:https://github.com/Tencent/plato
  1. WeChat:微信是腾讯开发的一款聊天应用程序,它使用了自然语言处理和聊天机器人技术来提供自动回复和智能客服功能。

  2. Amazon:亚马逊使用名为Amazon Lex的聊天机器人服务,该服务可以自动识别自然语言并自动回复问题,同时还可以与Alexa智能助手集成。

  3. IBM:IBM开发了自己的ChatGPT模型,名为Project Debater,该模型可以自动识别和分析大量文本信息,并生成可信的自然语言回答。

  4. Salesforce:Salesforce是一家销售自动化和客户关系管理软件公司,他们使用名为Einstein的聊天机器人服务来提高客户服务的效率,并改善用户体验。

  • 源码及语料:https://github.com/salesforce/cove
  • 数据集
    • 分类:
      • ST-2 https://nlp.stanford.edu/sentiment/treebank.html
      • SST-5 https://nlp.stanford.edu/sentiment/treebank.html
      • IMDb http://ai.stanford.edu/~amaas/data/sentiment/
    • 问题分类
      • TREC-6 http://cogcomp.cs.illinois.edu/Data/QA/QC/
      • TREC-50 http://cogcomp.cs.illinois.edu/Data/QA/QC/
    • 蕴含分类
      • SNLI https://nlp.stanford.edu/projects/snli/
    • 问答
      • SQuAD https://rajpurkar.github.io/SQuAD-explorer/
  1. 百度文心模型:
  2. OpenAssistant:是一个不断开发的开源人工智能代理能够实现基本的对话和互动与越来越多的任务自动化
  • 源码及语料:https://github.com/openassistant/oa-core/tree/next
    ChatGPT 的模型相似的技术也有 Google DialogFlow 和 IBM Watson Assistant,它们都是基于自然语言处理的聊天机器人框架,可以帮助开发者快速搭建聊天机器人。和ChatGPT一样,Google Dialogflow 和 IBM Watson Assistant 也包含组件,允许开发者通过自然语言处理系统来实现智能行为和多轮对话交互。此外,它们也都有学习组件,以便根据用户的反馈和行为来改进模型的性能。

相似产品还有Microsoft Bot Framework、Amazon Lex、Rasa NLU、Gupshup、Santa AI Bot Builder等等。这些产品均使用自然语言处理技术来帮助开发人员快速构建聊天机器人,并且也都具有学习模块,可以从用户交互中学习行为和反馈,从而改进模型的性能。

上述这些模型都是基于Transformer架构的,使用预训练技术进行训练,并在自然语言处理任务中表现出色。

参考文章

  • GPT论文:https://arxiv.org/pdf/2005.14165.pdf
  • GPT结构:https://mp.weixin.qq.com/s?__biz=MzU2NTcxODIyMg==&mid=2247507286&idx=1&sn=b7141f5817b86c363638c9c5b52d5824&chksm=fcb5e0f7cbc269e164547becbfd1c86654815e698d46309e8d7761ff00086d3813580dd3ccfa&mpshare=1&scene=24&srcid=0213j8KFZUPImp0ftYvi1ZWc&sharer_sharetime=1676262790635&sharer_shareid=8d16eb5213019b5d4600c882e10dd275#rd
  • 文本任务模型:https://baijiahao.baidu.com/s?id=1730861595934353908&wfr=spider&for=pc
  • salesforce:
    https://einstein.ai/static/images/layouts/research/cove/McCann2017LearnedIT.pdf
  • blender:
    https://docs.blender.org/manual/zh-hans/dev/index.html
  • textToText:https://arxiv.org/pdf/1910.10683.pdf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/117094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)

车辆跟踪及测距 该项目一个基于深度学习和目标跟踪算法的项目,主要用于实现视频中的目标检测和跟踪。该项目使用了 YOLOv5目标检测算法和 DeepSORT 目标跟踪算法,以及一些辅助工具和库,可以帮助用户快速地在本地或者云端上实现视频目标检测和…

GDB常用指令与调试汇总

文章目录 前言一、基础二、例子三、用gdb调试多线程程序 前言 GDB(GNU Debugger)是一个强大的调试工具,用于调试C、C等编程语言的程序。本文将介绍一些常用的GDB指令,以及通过例子演示如何使用这些指令进行程序调试。 一、基础 …

【Web】| CSS Float (浮动)的使用方法

Float(浮动)概念 CSS的Float(浮动),会使得元素向左或者向右移动,其它周围元素也会重新排列。 Float浮动,往往是用于图像,但它的布局一样非常有效。 元素如何浮动 元素的水平方向…

小白必看,手把手教你安装Python

目录 一,Python介绍 二,安装 Python 三,各种疑难杂症: 一,Python介绍 Python 是这两年来比较流行的一门编程语言,主要卖点是其相对简单的语法以及丰富的第三方库,下面我来带大家安装、配置 P…

python免杀初探

文章目录 loader基础知识loader参数介绍 evilhiding项目地址免杀方式修改加载器花指令混淆loader源码修改签名加壳远程条件触发修改ico的md5加密 loader基础知识 loader import ctypes #(kali生成payload存放位置) shellcode bytearray(b"shellc…

外网nat+nat server,内网做路由过滤,以及ppp CHAR认证 企业网搭建

作业 网络拓扑图如下所示: 要求:做适当的截图,表示完成相应的操作。 按照网络拓扑要求搭建网络结构,按照个人学号配置每个节点的IP地址,其中X为班级号,Y为学号末尾2位;Y1为学号末尾2位1&#…

KekeBlog项目实战后台模块(二)(已完结)

十一、后台模块-菜单列表 菜单指的是权限菜单,也就是一堆权限字符串 1. 查询菜单 1.1 接口分析 需要展示菜单列表,不需要分页。可以针对菜单名进行模糊查询。也可以针对菜单的状态进行查询。菜单要按照父菜单id和orderNum进行排序 请求方式 请求路径…

【JAVA学习笔记】39 - final关键字

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter10/src/com/yinhai/final_ 一、final关键字基本介绍 final可以修饰类、属性、方法和局部变量, 在某些情况下,程序员可能有以下需求,就会使用到final 1)当…

宝塔部署nginx遇到的400错误和502错误

在部署express项目的过程中,由于我的代码有些变化,于是在宝塔面板上我又重新上传了一下我的项目,结果阴差阳错的被nginx反向代理配置不当引起的400错误request header or cokkie is too large和自己代码逻辑问题引起的502 bad gataway给绊倒了…

源码解析SpringMVC处理请求的完整流程

1.WebMvcAutoConfiguration EnableWebMvcConfiguration自动装配类负责加载SpringMVC涉及的HandlerAdapter、HandlerMapping、ExceptionHandlerExceptionResolver等。 SpringMVC利用 DispatchServlet 处理上游Tomcat的请求时,会被HandlerMapping、HandlerAdapter的相关子类分别…

vue3中computed的用法

一、完整代码 <template><div class"about"><h1>Computed的用法</h1><h3>姓:{{ person.firstName }}</h3><input type"text" v-model"person.firstName"><h3>名:{{ person.lastName }}</h3…

深度学习中的不确定性综述

领域学者&#xff1a; http://www.gatsby.ucl.ac.uk/~balaji/ 论文标题&#xff1a; A Survey of Uncertainty in Deep Neural Networks 论文链接&#xff1a; https://arxiv.org/pdf/2107.03342.pdf 概要 在过去的十年中&#xff0c;神经网络几乎遍及所有科学领域&#x…

2021年下半年 软件设计师 上午试卷(1-28)

计算机指令系统采用多种寻址方式。立即寻址是指操作数包含在指令中&#xff0c;寄存器寻址是指操作数在寄存器中&#xff0c;直接寻址是指操作数的地址在指令中。这三种寻址方式获取操作数的速度 &#xff08;1&#xff09; 。 &#xff08;1&#xff09; A. 立即寻址最快&am…

Springcloud介绍

1.基本介绍 Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等&#xff0c;都可以用Spring Boot的开发风格做到一键启动和部署。Spring …

基于YOLO实现的口罩佩戴检测 - python opemcv 深度学习 计算机竞赛

文章目录 0 前言1 课题介绍2 算法原理2.1 算法简介2.2 网络架构 3 关键代码4 数据集4.1 安装4.2 打开4.3 选择yolo标注格式4.4 打标签4.5 保存 5 训练6 实现效果6.1 pyqt实现简单GUI6.3 视频识别效果6.4 摄像头实时识别 7 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xf…

树与二叉树(考研版)

文章目录 树与二叉树树的基本概念结点、树属性的描述树的性质 二叉树的概念二叉树的性质二叉树的构建二叉树的遍历先序遍历中序遍历后序遍历层次遍历 递归算法和非递归算法的转换源代码 线索二叉树二叉树的线索化线索二叉树 找前驱/后继 树和森林树的存储 树与二叉树的应用哈夫…

Python 深度学习入门之CNN

CNN 前言一、CNN简介1、简介2、结构 二、CNN简介1、输出层2、卷积层3、池化层4、全连接层5、输出层 前言 1024快乐&#xff01;1024快乐&#xff01;今天开新坑&#xff0c;学点深度学习相关的&#xff0c;说下比较火的CNN。 一、CNN简介 1、简介 CNN的全称是Convolutiona…

java中的异常,以及出现异常后的处理【try,catch,finally】

一、异常概念 异常 &#xff1a;指的是程序在执行过程中&#xff0c;出现的非正常的情况&#xff0c;最终会导致JVM的非正常停止。 注意: 在Java等面向对象的编程语言中&#xff0c;异常本身是一个类&#xff0c;产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的…

Nginx 配置文件解读

一.配置文件解读 nginx配置文件主要分为四个部分&#xff1a; main{ #&#xff08;全局设置&#xff09;http{ #服务器配置upstream{} #&#xff08;负载均衡服务器设置&#xff09;server{ #&#xff08;主机设置&#xff1a;主要用于指定主机和端口&#xff09;location{} …

CUDA学习笔记(十四) Constant Memory

转载至https://www.cnblogs.com/1024incn/tag/CUDA/ CONSTANT MEMORY constant Memory对于device来说只读但是对于host是可读可写。constant Memory和global Memory一样都位于DRAM&#xff0c;并且有一个独立的on-chip cache&#xff0c;比直接从constant Memory读取要快得多…