《ChatGPT是怎样炼成的》


ChatGPT 在全世界范围内风靡一时,我现在每天都会使用 ChatGPT 帮我回答几个问题,甚至有的时候在一天内我和它对话的时间比和正常人类对话还要多,因为它确实“法力无边,功能强大”。

ChatGPT 可以帮助我解读程序,做翻译,提供思路等等。

所以我就很好奇 ChatGPT 是怎么训练得到的,怀揣着好奇心,我带着大家一探究竟。

当然,ChatGPT 的论文还没有正式发布,想要完美解读它现在是不可能的,不过我们知道 ChatGPT 和 Open AI 的另一项工作 InstructGPT 息息相关。

这是 ChatGPT 官网上面的模型训练过程。

这是 InstructGPT 论文中的模型训练过程。

对比这两张图片,不能说一模一样,只能说完全一致。

所以我们就按照 InstructGPT 的论文讲一讲 ChatGPT 吧。

1. 学习文字接龙🐉

GPT (Generative Pre-trained Transformer) 模型就是在海量的文本数据上学习文字接龙,通过训练掌握基于前文内容生成后续文本的能力。这样的训练不需要人类标注数据(自监督学习),只需要给一段话的上文同时把下文遮住,将 GPT 模型的回答与语料中下文的内容做对比,进行优化。

在这里插入图片描述

如上图所示,我们输入“我爱”让 GPT 做文字接龙,绿色柱子的高低理解为输出概率的大小,GPT 的输出最有可能是“你”,当然也可能是“吃”或“玩”。

GPT 的输出通常是通过概率采样得到的。在生成文本时,模型根据前面的文本内容和当前的上下文,计算每个可能的输出单词的概率分布。然后,模型会根据这个概率分布对下一个单词进行采样,得到最终的输出单词。在采样的过程中,模型通常使用一种称为 “softmax” 的函数来转换概率分布,从而确保所有可能的输出单词的概率总和为1。

由于采样的过程是基于随机性的,因此即使提供相同的输入和上下文,模型生成的文本输出也可能会有所不同。使用概率采样可以产生更有趣、更有意思的文本输出。这就可以解释为什么 ChatGPT 对于相同的问题往往会有不一样的答案,当然,概率采样也可能会导致一些质量较低的输出,例如语法错误、重复和不相关的单词。

2. 人类老师的引导👮

只是让 GPT 自己做自监督的文字接龙是有局限性的,因为机器是没有感情的,因为 GPT 不知道什么样的答案是有效的,所以需要人类力量的介入,引导 GPT 生成有用的答案。

  1. 首先,我们从问题数据集(prompt dataset)中挑出一些问题。
  2. 让真正的人类(labeler)给出这些问题的正确答案。
  3. 这样就形成了有标签的数据集,这些数据用于微调 GPT-3.5,这个过程也称作 supervised fine-tuning (SFT)

3. 模仿人类老师的喜好📊

可是人类的力量也是有限的,我们不可能让人类老师给出所有问题的答案,但是我们可以给 GPT 生成的答案进行评分,这就相对轻松很多了。

  1. 比如,我们让刚刚训练好的 SFT 模型回答相同的问题四次,这样就产生了四个不同的答案 A、B、C、D 。
  2. 然后人工对这些答案进行评分或者说是评级(rank),比如 D > C > A = B 。
  3. 这样就又形成了一部分数据来训练 reward model(RM),从而训练出一个符合人类评价标准的 Reward 模型。
  4. 这样下次 GPT 生成答案就不需要人工评分了,直接把答案放到 Reward 模型中去就可以自动判断答案的好坏了。
  5. 如下图所示,对于相同问题的不同答案,Reward Model 学习到了在合理的答案上面打“高分”,在不合理的答案上打“低分”。

4. 强化学习💪

根据 Reward Model 的打分结果,继续优化 SFT 模型。

使用强化学习的技术调整 GPT 模型参数,使 GPT 生成的答案通过 Reward Model 可以得到最高的 Reward,重复这个过程,ChatGPT 就训练出来了。

5. RLHF👏

所以 ChatGPT 是一种通过 RLHF 训练得到的语言模型,Reinforcement Learning from Human Feedback (RLHF) 是一种基于人类反馈的强化学习方法,它通过与人类交互来获得任务的奖励信号,从而实现任务的学习。

RLHF 通过与人类交互来获得任务的奖励信号(Reward),并通过基于梯度的强化学习算法来优化策略,实现任务的学习。与传统的强化学习方法相比,RLHF不需要为任务定义奖励函数,因此更具有实际应用的价值。

6. 使用ChatGPT做个总结🐹

  1. ChatGPT是一种基于神经网络的自然语言处理模型,它可以生成类似于人类语言的对话,并被广泛用于聊天机器人、智能客服等应用领域。该模型使用了预训练的方式进行训练,可以自动学习语言的规则和模式,从而能够生成自然流畅的对话。
  2. ChatGPT在社会中产生了广泛的影响。首先,它为人工智能在自然语言处理领域的应用开辟了新的道路。它可以帮助人们更加便捷地获取信息、解决问题、进行娱乐等,进一步提高了人们的生活质量。其次,它也推动了人工智能技术的发展和普及,为人工智能技术在更多领域的应用提供了借鉴和参考。
  3. 未来,ChatGPT在技术上还有很大的发展空间。一方面,可以通过增加模型的深度和复杂度,来提高模型的精度和泛化能力。另一方面,可以通过结合其他技术,如图像识别、情感分析等,进一步提升模型的功能和性能。此外,ChatGPT也可以与其他技术结合,如语音识别、自然语言生成等,来实现更加人性化的交互方式,为人们提供更加便捷的服务和体验。
  4. 总之,ChatGPT是一种重要的自然语言处理技术,对社会产生了广泛的影响,未来也有着广阔的发展前景。它为人们提供了更加便捷、高效、智能化的服务和体验,有望在不久的将来成为人们日常生活中必不可少的一部分。同时,ChatGPT的发展也将推动人工智能技术的发展,为人们带来更多的福利和发展机会。

7. 参考资料

李沐:InstructGPT 论文精读
李宏毅:GPT 社會化的過程

8. 李宏毅老师授权

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在 4G 内存的机器上,申请 8G 内存会怎么样?

在 4GB 物理内存的机器上,申请 8G 内存会怎么样? 这个问题在没有前置条件下,就说出答案就是耍流氓。这个问题要考虑三个前置条件: 操作系统是 32 位的,还是 64 位的?申请完 8G 内存后会不会被使用&#x…

cmd命令教程

小提示: 在本文中,我将向您展示可以在 Windows 命令行上使用的 40 个命令 温馨提示:在本教程中学习使用适用于 Windows 10 和 CMD 网络命令的最常见基本 CMD 命令及其语法和示例 文章目录为什么命令提示符有用一、cmd是什么?如何在…

一年经验年初被裁面试1月有余无果,还遭前阿里面试官狂问八股,人麻了

最近接到一粉丝投稿:年初被裁员,在家躺平了6个月,然后想着学习下再去面试,现在面试了1个月有余,无果,天天打游戏到半夜,根本无法静下心来学习。下面是他这些天面试经常会被问到的一些问题&#…

手机解锁方法:8个顶级的 Android 手机解锁软件

一般来说,太简单的密码是不安全的,所以我们设置一个安全的密码,可能会稍微复杂一点。然而,我们可能经常会忘记复杂的密码并锁定我们的 Android 智能手机。 8个顶级的 Android 手机解锁软件 如果您遇到过这种情况并且正在寻找一种…

【Android -- 软技能】聊聊程序员的软技能

什么是软技能? 所谓软技能,就是相对于「硬技能」而言的技能,对于程序员来说,「硬技能」就是计算机专业技术能力,软技能则是专业之外的所有技能,包括职业规划能力、处理人际关系能力、专业态度、做事的方式…

linux基本功系列之uname实战

文章目录前言一. uname命令介绍二. 语法格式及常用选项三. 参考案例3.1 输出全部信息3.2 输出内核名称及版本3.3 输出网络节点的主机名3.4 输出主机硬件架构3.5 输出操作系统名称3.6 显示版本信息总结前言 大家好,又见面了,我是沐风晓月,本文…

初入了解——什么是VUE

个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。座右铭:海不辞水,故能成其大;山不辞石,故能成其高。个人主页:小李会科技的…

Java中的反射

类加载器(1)类的加载当我们的程序在运行后,第一次使用某个类的时候,会将此类的class文件读取到内存,并将此类的所有信息存储到一个Class对象中。说明:a.图中的Class对象是指:java.lang.Class类的…

从Linux内核中学习高级C语言宏技巧

Linux内核可谓是集C语言大成者,从中我们可以学到非常多的技巧,本文来学习一下宏技巧,文章有点长,但耐心看完后C语言level直接飙升。 本文出自:大叔的嵌入式小站,一个简单的嵌入式/单片机学习、交流小站 从Linux内核中学习高级C语言宏技巧 1.用do{}while(0)把宏包起来 …

《网络安全》零基础教程-适合小白科普

《网络安全》零基础教程 目录 目录 《网络安全》零基础教程 第1章 网络安全基础 什么是网络安全 常见的网络安全威胁 网络安全的三个基本要素 网络安全的保障措施 第2章 网络攻击类型 病毒、蠕虫、木马、后门 DoS、DDoS攻击 ​​​​​​​SQL注入、XSS攻击 ​​​…

测试背锅侠?入职软件测试后大d佬给我丢了这个bug分类分析,至今受益匪浅......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 刚成为入职&#xf…

测试场景设计

测试场景设计 又叫做场景法。其实对于场景法是测试用例中面临最多的,但是这种模式不是很容易总结,有时候是基于经验,有时候是我们对系统的了解。所以在这种情况下,我们强硬的用场景法对其进行规范。 场景法原理 现在的软件几乎…

vscode无法连接宝塔ftp排雷

宝塔面板现在使用率非常的高。今天把自己的踩坑处理方法记录一下。 在配置号宝塔面板ftp后,使用vscode的sftp插件,发现一直链接不上。一度以为自己配置文件,配置的参数有问题。各种度娘后,花了好长时间。后来发现自己陷入了误区。…

JS高级知识总结

文章目录1. this指向问题2. 对象进阶2.1 对象的定义和使用2.2 对象访问器2.2.1 Getter2.2.2 Setter2.3 对象构造器2.4 对象原型2.4.1 prototype属性2.4.2 \_\_proto\_\_ 属性2.4.3 constructor属性2.4.4 原型链2.5 Object对象2.5.1 管理对象2.5.2 保护对象3. 函数进阶3.1 函数的…

【Python】控制自己的手机拍照,并自动发送到邮箱

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 今天这个案例,就是控制自己的摄像头拍照, 并且把拍下来的照片,通过邮件发到自己的邮箱里。 想完成今天的这个案例,只要记住一个重点:你需要一个摄像头 思路…

8大主流编程语言的适用领域,你可能选错了语言

很多人学编程经常是脑子一热然后就去网上一搜资源就开始学习了,但学到了后面发现目前所学的东西并不是自己最喜欢的,好像自己更喜欢另一个技术,感觉自己学错了,于是乎又去学习别的东西。 结果竹篮打水一场空,前面所付…

蓝桥杯刷题冲刺 | 倒计时28天

作者:指针不指南吗 专栏:蓝桥杯倒计时冲刺 🐾马上就要蓝桥杯了,最后的这几天尤为重要,不可懈怠哦🐾 文章目录1.卡片2.数字三角形3.购物单4.回文日期1.卡片 题目 链接: 卡片 - 蓝桥云课 (lanqiao…

【计算机组成原理 - 第一章】计算机系统概论(完结)

本章参考王道考研相关课程: 【2021版】1.2.1_计算机硬件的基本组成_哔哩哔哩_bilibili 【2021版】1.2.2_认识各个硬件部件_哔哩哔哩_bilibili 【2021版】1.2.3_计算机系统的层次结构_哔哩哔哩_bilibili 【2021版】1.3_计算机的性能指标_哔哩哔哩_bilibili 目录 一、…

彻底搞懂nodejs事件循环

nodejs是单线程执行的,同时它又是基于事件驱动的非阻塞IO编程模型。这就使得我们不用等待异步操作结果返回,就可以继续往下执行代码。当异步事件触发之后,就会通知主线程,主线程执行相应事件的回调。 以上是众所周知的内容。今天…

14个Python处理Excel的常用操作,非常好用

自从学了Python后就逼迫用Python来处理Excel,所有操作用Python实现。目的是巩固Python,与增强数据处理能力。 这也是我写这篇文章的初衷。废话不说了,直接进入正题。 数据是网上找到的销售数据,长这样: 一、关联公式:…