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

news2024/10/7 4:30:42

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.coloradmin.cn/o/1121457.html

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

相关文章

怎么将PNG, JPEG, GIF,BMP等格式图片转化为ICO格式文件?

小ICO格式文件是一种包含一个或多个小尺寸图片的图片文件,主要应用在Windows系统中。 方法一:用软件进行格式转换 Quick Any2Ico 「【木头分享】Quick_Any2Ico.exe」:https://pan.quark.cn/s/ecda58bb2bd0 Quick Any2Ico是一款大小仅600K…

【逆向】Base64编码解码及逆向识别

示例代码 注意:该示例代码仅为Base64编码实现的其中一种,实际分析样本的Base64编码实现并不一定与此代码相同,读者应重点理解其原理部分,而忽略其实现形式的不同。 View Code 逆向识别 1、编码识别 2、解码识别 总结 1、识别代…

大模型与知识图谱如何相互助力

目前各行各业在数字化、智能化发展的大势所趋下,信息新技术不断涌现,也在加快深入融合到传统实体行业应用中,比如知识图谱、人工智能、数字孪生等等,特别是基于人工智能的大模型在去年底被chatgpt的带领下涌现出一波又一波的浪潮&…

阶段六-Day04-MyBatis2

一、别名 Alias 1. 为什么使用别名 一般映射文件中会包含大量<select>标签, 每个<select>中都需要配置resultType"com.bjsxt.pojo.People"&#xff0c;MyBatis提供了别名机制可以对某个类起别名或给某个包下所有类起别名&#xff0c;简化resultType取值…

面向对象【构造器】

文章目录 构造器定义构造器的作用构造器的使用说明无参构造器带参数的构造器构造器的重载使用构造器创建对象 总结 构造器定义 构造器是一种特殊类型的方法&#xff0c;它与类同名&#xff0c;没有返回值&#xff0c;并且用于在创建对象时执行初始化操作。构造器的名称必须与类…

C++笔记之关于函数名前的取址符

C笔记之关于函数名前的取址符 相关博文&#xff1a;C之指针探究(十一)&#xff1a;函数名的本质和函数指针 code review! 文章目录 C笔记之关于函数名前的取址符一.函数名可以被视为指向函数的地址二.sayHello和&sayHello是不是等同?三.Qt信号与槽中的取地址符& 一…

【Java】<泛型>,在编译阶段约束操作的数据结构,并进行检查。

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ JAVA泛型 泛型介绍&#xff1a; ①泛型&#…

julia笔记:函数

1 函数的定义&#xff08;两种方法&#xff09; function f(x,y)x yend #f (generic function with 1 method) f(x,y) x y #f(x,y) x y 2 匿名函数&#xff08;两种方法&#xff09; function (x,y)x yend ##3 (generic function with 1 method) (x,y)->x y ##5…

【2023年11月第四版教材】软考高项极限冲刺篇笔记(2)

1 我们要知道的事 1、考试的选择题不会出假大空的管理,一般较为具体 2.3 信息系统治理 首先治理的目标是什么 治理的管理层分为三层 原则:简单透明适合 COBIT IT审计范围:总体、组织、物理、逻辑、其他 IT审计风险:固有、控制、检查、总体审计 IT审计方法:访谈、调查、…

【Linux】进程间通信——共享内存

目录 一、什么是共享内存 二、共享内存的原理 三、使用共享内存实现进程间通信 3.1 shmget接口 3.1.1 key形参详解 3.2 释放共享内存 3.2.1 ipcs指令 3.2.2 ipcrm指令 3.2.3 shmctl接口 3.3 关联共享内存 3.4 去关联共享内存 3.5 使用共享内存进行进程间通信实例 …

YMK_周报2

周报 读论文 投机采样 为什么大语言模型&#xff08;LLM&#xff09;的推理过程文本生成这么慢&#xff1f; 因为运行大型模型的前向传递很慢&#xff0c;你可能需要依次执行数百次迭代。那么为什么前向传递速度慢&#xff1f;前向传递通常以矩阵乘法为主。内存带宽是此操作的…

【数据结构】八大排序算法(内含思维导图和画图分析)

作者主页&#xff1a;paper jie_博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《JAVA数据结构》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精力…

跳表:为什么Redis一定要用跳表来实现有序集合

文章来源于极客时间前google工程师−王争专栏。 二分查找底层依赖的是数组随机访问的特性&#xff0c;所以只能用数组来实现。如果数据存储在链表中&#xff0c;就真的没法使用二分查找算法了吗&#xff1f; 我们可以对链表稍加改造&#xff0c;就可以支持类似“二分”的查找算…

LVGL_文件系统FS

LVGL_文件系统FS 前言&#xff1a; LVG 内置支持以下文件系统&#xff1a; 1、FATFS 2、STDIO (Linux 和 Windows 都可以使用的 C 标准函数接口&#xff0c;比如&#xff1a;fopen, fread…) 3、POSIX (Linux 和 Windows 都可以使用的 POSIX 函数接口&#xff0c;比如&#xff…

vue3 element-plus 组件table表格 勾选框回显(初始化默认回显)完整静态代码

<template><el-table ref"multipleTableRef" :data"tableData" style"width: 100%"><el-table-column type"selection" width"55" /><el-table-column label"时间" width"120">…

Go学习第三章——运算符与进制

Go学习第三章——运算符与进制 1 算术运算符2 关系运算符3 逻辑运算符4 赋值运算符5 其他运算符5.1 位运算符5.2 跟指针有关的运算符 6 运算符的优先级7 获取用户终端输入8 进制转换8.1 进制基本使用8.2 进制之间的转换8.3 原码 反码 补码8.4 位运算符详解 运算符是—种特殊的符…

KubeSphere一键安装部署K8S集群(单master节点)-亲测过

1. 基础环境优化 hostnamectl set-hostname master1 && bash hostnamectl set-hostname node1 && bash hostnamectl set-hostname node2 && bashcat >> /etc/hosts << EOF 192.168.0.34 master1 192.168.0.45 node1 192.168.0.209…

python查询数据库发送邮件,附件csv格式,xlsx格式

# 设置liunx系统运行python代码的解释器 #!/usr/bin/python3# python声明文件的编码格式为UTF-8 # python2默认以ASCII编码来读取文件&#xff0c;如果不声明编码格式&#xff0c;它可能会无法正确地解析非ASCII字符&#xff08;比如中文字符&#xff09;。 # python3开始默认支…

【ACO-KELM预测】基于蚁群算法优化核极限学习机回归预测研究(matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

VS Code C# 开发工具包正式发布

前言 微软于本月正式发布Visual Studio Code C#开发工具包&#xff0c;此前该开发套件已经以预览版的形式在6月份问世。经过4个月的测试和调整&#xff0c;微软修复了350多个问题&#xff0c;其中大部分是用户反馈导致的问题。此外&#xff0c;微软还对产品进行了300多项有针对…