热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ChatGPT原理

ChatGPT一经发布就在科技圈火得不行,这两天也是被传得神乎其神,听说它写得了代码、改得了Bug,小说、段子统统不再话下!

ChatGPT一经发布就在科技圈火得不行,这两天也是被传得神乎其神,听说它写得了代码、改得了 Bug,小说、段子统统不再话下!那他到底是怎么训练成现在这样的呢?本文介绍李宏毅老师的分析。


那么接下来我们就来介绍Chat GPT是怎样练成的!


1.找寻资料参考:

        李老师在翻看OpenAI的博客发现,其目前并没有发表关于ChatGPT的论文。但是!在OpenAI官方博客介绍中,我们可以发现CharGPT有一个兄弟,InstructGPT,因此他决定依靠InstructGPT去寻找一些ChatGPT的训练逻辑。



        当我们看到ChatGPT与InstructGPT的对比时,更加坚定的确定通过InstructGPT是可以找到ChatGPT模型的蛛丝马迹的。如下,上面为ChartGPT的训练流程下面为InstructGPT的流程图。可以说像的7788了,比较面明显的区别其实只有GPT的版本不同而已,前者是GPT3.5,后者是GPT3。所以李老师决定直接分析InstructGPT来推测Chat GPT是怎样练成的!






2.正式开始介绍Chat GPT的学习四阶段:


2.1 学习文字接龙

        学习文字接龙,其实就是依据目前已有的信息,去推测下一个可能出现的字,以此类推。与我们在学习机器学习中的文字翻译Transformer架构很相似。

        正如下面的例子所演示的,当我们有目前有:“你好”这一个不完整的句子的时候,程序可以基于在互联网上学习到的知识去预测下一个字,有可能是 “美” 

         这种学习的好处是,我们并不需要人工标注出机器需要训练的内容,只需要把他放到互联网上,看到文字就自我学习文字接龙即可。

        但是,坏处也显而易见了,对于一个不完整的句子,我们后面的词可以是很多种多样的,比如说在 “你好” 后面,我们可以接上 “吗” 、 “高”、“美” 等,所以GPT返回的其实是一个概率分布,也就是说每次回答的内容其实都是随机的。这次说 “你好吗”,下次可能就说 “你好美了” 。

        但是单单依靠文字接龙,其实GPT就已经可以回答问题了。比如下面的例子,我们问出“台湾最高的山是哪座?” 当GPT在网上看过这么多资料,它通过文字接龙的形式回答,可能可以直接回答出玉山,也可能给你出一道选择题(如果他读过的资料是这么连接起来的),也可能反问你 “谁来告诉我呀?”



2.2 人类老师引导文字接龙方向

        经过了文字接龙,我们会发现GPT虽然能回答我们的问题,但是并不一定能回答出我们想要的答案。说白了就是人工来筛选哪些是我们需要的答案(还是逃离不了有多人工就有多智能呐!)


 2.3 模仿人类老师的喜好

        人类希望获得的答案就会被赋予更高的分数 


2.4 使用增强向模拟老师学习

        就是我们将每次GPT得到的答案都丢给TeacherModel来评判,如果是人类希望的答案就给高分,如果不是则给低分,这个模式被称为增强式学习种的“Reward”模块 


3. 当然,ChatGPT目前并不是完美的...

        目前ChatGPT模型已经很难再被找到错误了,但是根据上面的分析,我们只需要问出一些没有人问过的内容,他就回答不出来了。比如说:我问 “numbers”是由几个字母组成的,他会回答八个,这是八个吗???这明明就是七个!!!


4.总结 

        李宏毅老师认为ChatGPT是GPT的社会化过程,从一开始的想说什么就说什么,一直到后面的人类引导他说出期望的答案。 


推荐阅读
  • Python基础教程:struct模块与格式化字符详解
    本文详细介绍了Python中struct模块的功能,以及如何利用格式化字符实现Python与C语言结构体之间的数据转换。文章通过具体实例讲解了struct模块的主要方法及其应用场景。 ... [详细]
  • 本文探讨了如何使用pg-promise库在PostgreSQL中高效地批量插入多条记录,包括通过事务和单一查询两种方法。 ... [详细]
  • 深入浅出TensorFlow数据读写机制
    本文详细介绍TensorFlow中的数据读写操作,包括TFRecord文件的创建与读取,以及数据集(dataset)的相关概念和使用方法。 ... [详细]
  • 本文详细介绍了Linux内核中misc设备驱动框架的实现原理及应用方法,包括misc设备的基本概念、驱动框架的初始化过程、数据结构分析以及设备的注册与注销流程。 ... [详细]
  • Barbican 是 OpenStack 社区的核心项目之一,旨在为各种环境下的云服务提供全面的密钥管理解决方案。 ... [详细]
  • 本文介绍了如何通过ARM编译器组件重定向标准C运行时库的I/O函数,以适应不同的硬件平台。原文链接:https://www.keil.com/pack/doc/compiler/RetargetIO/html/retarget_overview.html ... [详细]
  • 前言无论是对于刚入行工作还是已经工作几年的java开发者来说,面试求职始终是你需要直面的一件事情。首先梳理自己的知识体系,针对性准备,会有事半功倍的效果。我们往往会把重点放在技术上 ... [详细]
  • 本文探讨了在QT框架中如何有效遍历文件内容,并解决了一个常见的错误,即文件内容读取为空时弹窗无法正常显示的问题。 ... [详细]
  • 迎接云数据库新时代:程序员如何应对变革?
    在数据无处不在的时代,数据库成为了管理和处理数据的核心工具。从早期的信息记录方式到现代的云数据库,数据库技术经历了巨大的变革。本文将探讨云数据库的特点及其对程序员的影响。 ... [详细]
  • Java实现文本到图片转换,支持自动换行、字体自定义及图像优化
    本文详细介绍了如何使用Java实现将文本转换为图片的功能,包括自动换行、自定义字体加载、抗锯齿优化以及图片压缩等技术细节。 ... [详细]
  • BFS深搜hashtable来判断是横线还是竖线但是为啥还是90分啊呜呜!找不到原因#define_CRT_SECURE_NO_WARNINGS1#include ... [详细]
  • 本文介绍了一个项目中如何在Windows平台上实现多声道音频数据的采集,特别是针对DANTE音频接口的8路立体声音频通道。文章详细描述了使用Windows底层音频API进行音频采集的方法,并提供了一个具体的实现示例。 ... [详细]
  • 本文探讨了C++编程语言中声明与定义的区别,以及如何通过内部连接和外部连接来组织源文件,确保代码的正确链接与编译。文章详细解析了不同类型、变量、函数以及类的连接属性,并提供了实用的示例。 ... [详细]
  • 智慧城市建设现状及未来趋势
    随着新基建政策的推进及‘十四五’规划的实施,我国正步入以5G、人工智能等先进技术引领的智慧经济新时代。规划强调加速数字化转型,促进数字政府建设,新基建政策亦倡导城市基础设施的全面数字化。本文探讨了智慧城市的发展背景、全球及国内进展、市场规模、架构设计,以及百度、阿里、腾讯、华为等领军企业在该领域的布局策略。 ... [详细]
  • 正则表达式是一种强大的文本匹配工具,但在不当使用时,也可能成为安全漏洞的源头,特别是当它们被恶意利用以触发拒绝服务(DoS)攻击时。本文将深入探讨正则表达式如何成为攻击者的目标,并提供防范策略。 ... [详细]
author-avatar
C3calm_daidai_649
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有