当前位置: 首页 > news >正文

ChatGPT的前世今生

原文首发于博客文章ChatGPT发展概览

ChatGPT 是OpenAI开发的人工智能聊天机器人程序,于2022年11月推出。该程序使用基于 GPT-3.5、GPT-4 架构的大语言模型并以强化学习训练。ChatGPT目前仍以文字方式交互,而除了可以用人类自然对话方式来交互,还可以用于甚为复杂的语言工作,包括自动生成文本、自动问答、自动摘要等多种任务。

ChatGPT的诞生

演进过程

  1. 2020 年 7 月,OpenAI 发布了模型名称为的 davinci 的初代 GPT-3

  2. 2021 年 7 月,Codex 的论文发布,其中初始的 Codex 是根据 120 亿参数的 GPT-3 变体进行微调的。后来这个 120 亿参数的模型演变成 OpenAI API 中的code-cushman-001

  3. 2022 年 3 月,OpenAI 发布了指令微调 (instruction tuning) 的论文,其监督微调 (supervised instruction tuning) 的部分对应了davinci-instruct-betatext-davinci-001

  4. 2022 年 4 月至 7 月的,OpenAI 开始对code-davinci-002模型进行 Beta 测试,也称其为 Codex

  5. text-davinci-002text-davinci-003ChatGPT 都是从code-davinci-002进行指令微调得到的。详细信息请参阅OpenAI的模型索引文档

  6. 2022 年 5-6 月发布的text-davinci-002是一个基于code-davinci-002的有监督指令微调 (supervised instruction tuned) 模型。在text-davinci-002上面进行指令微调很可能降低了模型的上下文学习能力,但是增强了模型的零样本能力。

  7. text-davinci-003ChatGPT,它们都在 2022 年 11 月发布,是使用的基于人类反馈的强化学习的版本指令微调 (instruction tuning with reinforcement learning from human feedback) 模型的两种不同变体。text-davinci-003 恢复了(但仍然比code-davinci-002差)一些在text-davinci-002 中丢失的部分上下文学习能力,并进一步改进了零样本能力(得益于RLHF)。另一方面,ChatGPT 似乎牺牲了几乎所有的上下文学习的能力来换取建模对话历史的能力。

总结

  • 语言生成能力 + 基础世界知识 + 上下文学习都是来自于预训练(davinci
  • 存储大量知识的能力来自 1750 亿的参数量
  • 遵循指令和泛化到新任务的能力来自于扩大指令学习中指令的数量(davinci-instruct-beta
  • 执行复杂推理的能力很可能来自于代码训练(code-davinci-002
  • 生成中立、客观的能力、安全和翔实的答案来自与人类的对齐。具体来说:
    • 如果是监督学习版,得到的模型是text-davinci-002
    • 如果是强化学习版 (RLHF) ,得到的模型是text-davinci-003
    • 无论是有监督还是 RLHF ,模型在很多任务的性能都无法超过 code-davinci-002 ,这种因为对齐而造成性能衰退的现象叫做对齐税。
  • 对话能力也来自于 RLHF(ChatGPT),具体来说它牺牲了上下文学习的能力,来换取:
    • 建模对话历史
    • 增加对话信息量
    • 拒绝模型知识范围之外的问题

训练

训练有四个主要阶段:预训练、有监督微调、奖励建模、强化学习

Pretraining 预训练

  1. 数据收集:CommonCrawl,C4也是common crawl,然后还有一些高质量的数据集,例如GitHub、维基百科、书籍、ArXiv论文存档、StackExchange问答网站等,这些都混合在一起,然后根据给定的比例进行采样。
  2. 标记化(tokenization):标记化是文本片段和标记与整数之间的一种无损转换,是将互联网上抓取的原始文本翻译成整数序列。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AoyVnVqh-1687332879486)(null)]
  3. 训练过程,可以查观看这个视频进行了解

Supervised Finetuning 监督微调

  • 假设已经有了一个非常聪明的学生(即GPT-3模型),他已经学会了很多知识,并且可以在各种不同的主题上写文章。但是想让他专注于某个特定的主题,并且写出更好的文章。这就需要使用监督微调技术来让他集中精力并提高他在这个特定主题上的表现。
  • 可以使用一个新的数据集来让这个学生熟悉这个领域的特定要求。例如为他提供一些示例文章,这些文章符合这个领域的要求,并让他通过学习这些文章来了解这个领域的特点和要求。这就像在学习一门新的科目时,我们需要先了解这门科目的基本概念和原理,然后通过实践来巩固这些知识。
  • 一旦这位学生掌握了这个领域的基础知识,就可以开始进行实践并进行监督微调。可以让他写一些文章,并根据这些文章的质量来指导他的学习和进一步的改进。这就像在学习一门新的科目时,需要不断地进行实践和练习,以巩固我们的知识并提高我们的技能水平。最终,通过不断的实践和练习,这位学生将能够在这个特定的领域中表现出色,并写出符合要求的文章。

Reward Modeling 奖励建模

  • 将奖励建模类比为让聪明的学生(即GPT-3模型)学习一门新的技能,例如学习打篮球。在学习打篮球的过程中,可以将得分作为奖励信号,以评估学生的表现。首先需要告诉学生如何打篮球,例如传球、投篮、防守等基本技能。这就像在奖励建模中,我们需要提供一些示例,以便模型可以了解任务的要求。
  • 然后可以让学生在训练场上进行练习,并根据他们的表现来给予奖励。例如,如果学生成功投篮得分,我们可以给予他们一定的奖励分数。这就像在奖励建模中,可以根据模型的表现来生成奖励信号。如果模型成功完成任务,例如正确地回答问题或生成准确的文本,可以给予它一定的奖励分数。
  • 通过不断的练习和奖励,学生将学会如何打篮球,并且在比赛中表现出色。同样地,通过奖励建模技术,我们可以训练GPT-3模型在特定任务中表现出色,并生成符合要求的文本。通过最大化奖励信号,模型可以学习如何有效地完成任务,并不断改进自己的表现。

Reinforcement Learning 强化学习

  • 奖励建模的例子中,将奖励信号定义为每次得分的分数。如果聪明的学生成功地将篮球投入篮筐,给予它一定数量的分数;如果它没有得分,那么不给予它分数。在奖励建模中,可以使用这些分数作为奖励信号,来训练模型。我们的目标是最大化总得分,因为总得分是我们想要优化的目标函数。
  • 强化学习中需要定义状态空间、行动空间和奖励函数,以让聪明的学生了解任务的要求。状态空间可以包括学生的位置、篮球的位置和篮筐的位置等信息,行动空间可以包括传球、投篮、防守等动作,奖励函数可以根据得分、失误、防守成功等情况来定义。然后让聪明的学生与环境交互,并根据当前状态和策略采取行动,并从环境中获得奖励或惩罚信号,聪明的学生可以不断更新策略,以最大化长期奖励,即总得分。
  • 奖励建模使用奖励信号来指导模型的优化方向,而强化学习使用奖励信号来指导模型的行动选择。

特点

  1. 作为辅助工具,并与人工监督结合起来,在不注重可靠性和安全性的应用程序中使用
  2. 可以编写和调试计算机程序
  3. 具备创作音乐、电视剧、童话故事和学生论文的能力
  4. ChatGPT 能够记住与用户之前的对话内容和给它的提示
  5. 可以回答测试问题(在某些测试情境下,水平甚至高于普通人类测试者)
  6. ChatGPT 输入内容会由审核API过滤,以减少生成冒犯言论

局限

  1. 人工智能幻觉 :有时会写出看似合理但不正确或荒谬的答案
  2. 古德哈特定律:奖励模型围绕人类监督而设计,可能导致过度优化,从而影响性能
  3. 意识形态偏见:研究表明,ChatGPT对两个投票建议应用程序的政治声明表明立场时,表现出亲环境主义。

相关文章:

ChatGPT的前世今生

原文首发于博客文章ChatGPT发展概览 ChatGPT 是OpenAI开发的人工智能聊天机器人程序,于2022年11月推出。该程序使用基于 GPT-3.5、GPT-4 架构的大语言模型并以强化学习训练。ChatGPT目前仍以文字方式交互,而除了可以用人类自然对话方式来交互&#xff0c…...

WireShark常用协议抓包与原理分析

1.ARP协议(地址解析协议) nmap 发现网关nmap -sn 192.168.133.2wireshark 抓请求包和响应包 arp请求包内容 arp响应包内容 总结:请求包包含包类型(request),源IP地址,源MAC地址,目标IP地址,目标MAC地址(未知,此处为全0);响应包包含包类型(reply),源IP地址,源…...

Mysql数据库操作总结

文章目录 1. DDL(Data Definition Language - 数据定义语言)1.1 数据库1.2 数据表(创建查询删除)1.3 数据表(修改) 2. 数据类型2.1 数值2.2 字符2.3 日期 3. 字段约束3.1 约束3.2 主键约束修改3.3 主键自增 联合主键 4. DML(Data Manipulation Language - 数据操作语言)4.1 添…...

在 ZBrush、Substance 3D Painter 和 UE5 中创作警探角色(P2)

大家好,下篇分享咱们继续来说警探角色的重新拓扑、UV、材质贴图和渲染处理。 重新拓扑/UV 这是对我来说最不有趣的部分——重新拓扑。它显然是实时角色中非常重要的一部分,不容忽视,因为它会影响大量的 UV、绑定和后期渲染,这里…...

如何在大规模服务中迁移缓存

当您启动初始服务时,通常会过度设计以考虑大量流量。但是,当您的服务达到爆炸式增长阶段,或者如果您的服务请求和处理大量流量时,您将需要重新考虑您的架构以适应它。糟糕的系统设计导致难以扩展或无法满足处理大量流量的需求&…...

【GPT LLM】跟着论文学习gpt

GPT1开山之作:Improving language understanding by generative pre-training 本文提出了gpt1,即使用无标签的数据对模型先进行训练,让模型学习能够适应各个任务的通用表示;后使用小部分 task-aware的数据对模型进行微调&#xff…...

【玩转Docker小鲸鱼叭】Docker容器常用命令大全

在 Docker 核心概念理解 一文中,我们知道 Docker容器 其实就是一个轻量级的沙盒,应用运行在不同的容器中从而实现隔离效果。容器的创建和运行是以镜像为基础的,容器可以被创建、销毁、启动和停止等。本文将介绍下容器的这些常用操作命令。 1、…...

专项练习11

目录 一、选择题 1、执行下列选项的程序,输出结果不是Window对象的是() 2、以下哪些代码执行后 i 的值为10: 二、编程题 1、判断 val1 和 val2 是否完全等同 2、统计字符串中每个字符的出现频率,返回一个 Object&…...

ASP.NET+SQL通用作业批改系统设计(源代码+论文)

随着网络高速地融入当今现代人的生活,学校对网络技术的应用也在不断地提高。学校的教学任务十分复杂,工作也很繁琐,在教学任务中,作业的批改也是一个很重要的环节。为了提高老师工作效率,减轻教师的工作强度,提高作业批改的灵活性,《通用作业批改系统》的诞生可以说是事在…...

基于深度学习的高精度打电话检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度打电话检测识别系统可用于日常生活中或野外来检测与定位打电话目标,利用深度学习算法可实现图片、视频、摄像头等方式的打电话目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检…...

Vue搭建智能文本检索视频界面

前言 随着人工智能技术的发展,智能文本检索已经成为了一种非常流行的技术。在视频领域中,智能文本检索技术可以帮助用户快速找到自己需要的视频片段,提高用户的观看体验。本文将介绍如何使用Vue框架搭建一个智能文本检索视频界面&#xff0c…...

软考A计划-系统集成项目管理工程师-一般补充知识-中

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…...

springboot-内置Tomcat

一、springboot的特性之一 基于springboot的特性 自动装配Configuretion 注解 二、springboot内置Tomcat步骤 直接看SpringApplication方法的代码块 总纲: 1、在SpringApplication.run 初始化了一个上下文ConfigurableApplicationContext configurableApplica…...

Flink流批一体计算(2):Flink关键特性

目录 Flink关键特性 流式处理 丰富的状态管理 丰富的时间语义支持 Data pipeline 容错机制 Flink SQL CEP in SQL Flink 应用程序可以消费来自消息队列或分布式日志这类流式数据源(例如 Apache Kafka 或 Kinesis)的实时数据,也可以从各…...

2023软件工程中各种图在现代企业级开发中的使用频率

概览 系统流程图 ✔ 数据流图 不常用 ER图 ✔ 状态转换图 ✔ Warnier图 不常用 IPO图 不常用 Petri网 不常用 层次方框图 不常用 层次图 a.k.a. H图 ✔ 1,层次图描绘软件的层次结构.层层次方框图描绘的是数据结构。 2,层次图的方框表示模块或子模块。层次方框图的方框表示数据结…...

macOS Big Sur 11.7.8 (20G1351) 正式版 ISO、PKG、DMG、IPSW 下载

macOS Big Sur 11.7.8 (20G1351) 正式版 ISO、PKG、DMG、IPSW 下载 本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持在 Window…...

【C++案例】一个项目掌握C++基础-通讯录管理系统

文章目录 1、系统需求2、菜单功能3、退出功能4、添加联系人4.1 设计联系人结构体4.2 设计通讯录结构体4.3 main函数中创建通讯录4.4 封装添加联系人函数4.5 测试添加联系人功能 5、显示联系人5.1 封装显示联系人函数5.2 测试显示联系人功能 6、删除联系人6.1 封装检测联系人是否…...

Triton教程 --- 动态批处理

Triton教程 — 动态批处理 Triton系列教程: 快速开始利用Triton部署你自己的模型Triton架构模型仓库存储代理模型设置优化动态批处理 Triton 提供了动态批处理功能,将多个请求组合在一起执行同一模型以提供更大的吞吐量。 默认情况下,只有当每个输入在…...

Python的并行(持续更新)

0. 参考: 《Python并行编程 中文版》https://python-parallel-programmning-cookbook.readthedocs.io/zh_CN/latest/index.html 1. 线程和进程: 进程可以包含多个并行运行的线程;通常,操作系统创建和管理线程比进程更省CPU资源&am…...

chatgpt赋能python:Python实现Fibonacci数列

Python实现Fibonacci数列 Fibonacci数列是一个非常经典的数列,定义如下: F ( 0 ) 0 , F ( 1 ) 1 F(0)0, F(1)1 F(0)0,F(1)1 F ( n ) F ( n − 1 ) F ( n − 2 ) F(n)F(n-1)F(n-2) F(n)F(n−1)F(n−2) 也就是说,第n个数等于前两个数之和…...

开环模块化多电平换流器仿真(MMC)N=6

模型简介: 运行环境MATLAB2021a 开环模块化多电平换流器仿真(MMC)N=6,连接负载,采用载波移相调制。 可以得到换流器输出N+1=7电平的相电压波形。可考虑线路阻抗。 子模块采用半桥结…...

java springboot整合MyBatis联合查询

前面文章 java springboot整合MyBatis做数据库查询操作写了springboot整合MyBatis的方法 并演示了基础查询的语法 根据id查 那么 我们这次来演示联合查询 我们staff 表 内容如下 每条数据 对应的都有一个departmentid 这是 department部门表的外键id department表内容如下 如…...

windows2022证书配置.docx

Windows证书的配置 要求两台主机,一台作为域,一台进入域 按要求来选择角色服务 确认之后安装 安装完以后配置证书服务 选择服务 按要求配置 注:此处不用域用户登陆无法使用企业CA 按要求来 创建新的私钥 这几处检查无误后默认即可 有效期…...

HCIP网络笔记分享——IA回顾及OSPF协议

第一部分 HCIA回顾1、网络基础2、动态路由协议3、路由认证4、路由控制(AD metric ) 一、知识巩固二、场景模拟1、获取IP地址1.1 DHCP --- 动态主机配置协议1.1.1 DHCP客户端1.1.2 DHCP服务器1.1.3 DHCP客户端1.1.4 DHCP服务器 2、打开浏览器3、路由器进行…...

网络:IP地址、子网掩码、网络地址、广播地址、网段、网关

目录 一、IP地址 二、子网掩码 三、网络地址 四、广播地址 五、网段 六、网关 七、IP地址、子网掩码、网络地址、广指地址、网殷、网关的关系 参考链接 一、IP地址 IP地址是因特网协议(IP)中使用的一种数字标识符,用于唯一地标识网络…...

编程的未来 - 还有未来么?

缘起 唐门教主上个月某天深夜写了一篇博客 --《编程的未来》,要我谈谈感想。 这也是最近软件工程师们聊得比较多的问题,上周,在上海的 “关东小磨” 和十多位 CSDN 博主聚会的时候,大家也稍微谈了一下这个话题,但是谈…...

从零开始搭建群众权益平台(二)

这篇文章我们要建立的群众权益维护平台需要提供用户注册、登录、提交和查看问题或建议的功能,并且支持电话短信登录。在这个过程中,我们需要存储用户的登录信息。 我们将使用Node.js和Express.js作为后端框架,MongoDB作为数据库,并且使用Twilio服务发送短信验证码来实现手…...

Mysql之数据备份

一.日志 1.MySQL 的日志默认保存位置为 /usr/local/mysql/data2.修改日志配置文件 vim /etc/my.cnf [mysqld] ##错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启 log-error/usr/local/mysql/data/mysql_error.log #指定日志的…...

【数据库数据恢复】SQL Server数据表结构损坏的数据恢复案例

数据库故障&分析: SQL server数据库数据无法读取。 经过初检,发现SQL server数据库文件无法被读取的原因是因为底层File Record被截断为0,无法找到文件开头,数据表结构损坏。镜像文件的前面几十M空间和中间一部分空间被覆盖掉…...

C语言/C++ 之 打飞机游戏

【项目简介】 1、设计思想:本项目主要是为了实现打飞机游戏,主要包括5个函数模块,和1个主函数框架。分别是chu_shi_hua();、you_cao_zuo;、wu_cao_zuo();、show();、main();等。项目完成过程中主要运用了C/C中的输入输…...

政务网站设计/网站收录网

1、每次请求来了,都会new一个新的实现了IHttpHandle接口的类页面的实例,进行处理。用完就GC掉,所以 不会保持上次的值。即访问者访问的是不同i的实例。 private int i0; i; 2、所有的访问者都访问的同一个j的实例,即可实现全局变量…...

网站软文怎么写/北京网站优化外包

...

北京网站建设 标准型 新翼/长沙关键词优化首选

iOS判断当前点击的位置是否在某个视图上 记录几种判断触摸点是否在某个view上面的方法 第一种方式:isDescendantOfView: 通过touch.view调用 isDescendantOfView: 方法,返回 YES, 则触摸点在我们需要判断的视图上;反之则不在。 - (void)touc…...

如何成为一个优秀的网站设计师/深圳百度推广

一、Beautiful Soup简介 爬虫正则表达式参考:Python 爬虫正则表达式和re库 在爬虫过程中,可以利用正则表达式去提取信息,但是有些人觉得比较麻烦。因为花大量时间分析正则表达式。这时候可以用高效的网页解析库Beautiful Soup。 Beautiful…...

留号码的广告网站不需要验证码/网络域名怎么查

不重启的情况下定时自动重启apache及mysql服务,其实也大同小异。具体步骤如下:西昆云服务器​一、每天的12点及16点重启apache及mysql服务[rootwww bin]# cd /opt/[rootwww opt]# vim reboot.txt在reboot.txt.txt文件中输入下面的内容后保存0 12 * * * s…...

永久免费网站建设大概多少钱/seo页面优化的方法

适配器是当前开发必不可少的,一个好的适配器在开发中能提高效率,能减少代码量,并且复用性强,不管是什么项目只要导入mouseadapter 就能直接使用,mouseadapter 是一个扩展性极强的适配器,支持listview、grid…...