ChatGPT 的工作原理:深入探究

news2024/11/24 0:09:44

本文首发于微信公众号:大迁世界, 我的微信:qq449245884,我会第一时间和你分享前端行业趋势,学习途径等等。
更多开源作品请看 GitHub https://github.com/qq449245884/xiaozhi ,包含一线大厂面试完整考点、资料以及我的系列文章。

快来免费体验ChatGpt plus版本的,我们出的钱
体验地址:https://chat.waixingyun.cn
可以加入网站底部技术群,一起找bug.

这篇文章主要探讨了ChatGPT的工作原理。ChatGPT是基于OpenAI开发的GPT-4架构的大型语言模型。首先,文章介绍了GPT的基本概念,即生成预测性网络模型。GPT模型利用大量的文本数据进行训练,从而学会在各种情境中生成连贯的文本。

接着,文章详细阐述了训练过程,分为预训练微调两个阶段。在预训练阶段,模型学习理解文本数据,包括词汇、语法、事实等;在微调阶段,模型使用具有限制性任务的数据集来调整,以获得更准确的输出。作者还提到了训练数据的来源,强调了在大量网络文本数据中获取知识的重要性。

在解释输出生成时,文章提到了一个关键技术:集束搜索(Beam Search)。这是一种启发式搜索策略,用于选择最优文本序列。此外,作者强调了解决生成内容问题的策略,包括设置过滤器和调整温度参数。

最后,文章讨论了ChatGPT的局限性,例如处理输入数据时可能会产生偏见,或无法回答一些问题。尽管如此,作者指出ChatGPT是一个强大的工具,能够在各种任务中提供有价值的帮助。


像ChatGPT这样的大型语言模型实际上是如何工作的?嗯,它们既非常简单又极其复杂。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uAd7J6yC-1684370675861)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4d4f3b25801d4c2abfa890cc4bc599ea~tplv-k3u1fbpfcp-watermark.image?)]

你可以将模型视为根据某些输入计算输出概率的工具。在语言模型中,这意味着给定一系列单词,它们会计算出序列中下一个单词的概率,就像高级自动完成一样。

image.png

要理解这些概率的来源,我们需要谈论一些叫做神经网络的东西。这是一个类似网络的结构,数字被输入到一侧,概率被输出到另一侧。它们比你想象的要简单。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tfSPCJBA-1684370675863)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6b9eb1213f274f83a663d769517e6617~tplv-k3u1fbpfcp-watermark.image?)]

想象一下,我们想要训练一台计算机来解决在3x3像素显示器上识别符号的简单问题。我们需要像这样的神经网络:

  • 一个输入层
  • 两个隐藏层
  • 一个输出层。

image.png

我们的输入层由9个称为神经元的节点组成,每个像素一个。每个神经元将保存从1(白色)到-1(黑色)的数字。我们的输出层由4个神经元组成,每个神经元代表可能的符号之一。它们的值最终将是0到1之间的概率。

image.png

在这些之间,我们有一些神经元的排列,称为**“隐藏”层**。对于我们简单的用例,我们只需要两个。每个神经元都通过一个权重与相邻层中的神经元相连,该权重的值可以在-1和1之间。

image.png

当一个值从输入神经元传递到下一层时,它会乘以权重。然后,该神经元简单地将其接收到的所有值相加,将该值压缩在-1和1之间,并将其传递给下一层中的每个神经元。

image.png

最后一个隐藏层中的神经元执行相同的操作,但将值压缩在0和1之间,并将其传递到输出层。输出层中的每个神经元都保存一个概率,最高的数字是最可能的结果。

image.png

当我们训练这个网络时,我们向它提供一个我们知道答案的图像,并计算答案与网络计算的概率之间的差异。然后我们调整权重以接近预期结果。但是我们如何知道如何调整权重呢?

image.png

我们使用称为梯度下降反向传播的巧妙数学技术来确定每个权重的哪个值会给我们最低的误差。我们不断重复这个过程,直到我们对模型的准确性感到满意。

3333.gif

这被称为前馈神经网络 - 但这种简单的结构不足以解决自然语言处理的问题。相反,LLM倾向于使用一种称为Transformer的结构,它具有一些关键概念,可以释放出很多潜力。

image.png

首先,让我们谈谈单词。我们可以将单词分解为 token ,这些 token 可以是单词、子单词、字符或符号,而不是将每个单词作为输入。请注意,它们甚至包括空格。

4444.gif

就像我们的模型中将像素值表示为0到1之间的数字一样,这些token也需要表示为数字。我们可以为每个标记分配一个唯一的数字并称之为一天,但还有另一种表示它们的方式,可以添加更多上下文。

555.gif

我们可以将每个 token 存储在一个多维向量中,指示它与其他标记的关系。为简单起见,想象一下在二维平面上绘制单词位置。我们希望具有相似含义的单词彼此靠近。这被称为 embedding 嵌入

image.png

embedding 有助于创建相似单词之间的关系,但它们也捕捉类比。例如,单词“dog”和“puppy”之间的距离应该与“cat”和“kitten”之间的距离相同。我们还可以为整个句子创建 embedding 。

image.png

transformer 的第一部分是将我们的输入单词编码为这些 embedding。然后将这些嵌入馈送到下一个过程,称为 attention ,它为 embedding 添加了更多的上下文。attention 在自然语言处理中非常重要。

image.png

Embedding 难以捕捉具有多重含义的单词。考虑 bank 这个词的两个含义。人类根据句子的上下文推断出正确的含义。MoneyRiver 在每个句子中都是与 bank相关的重要上下文。

image.png

attention 的过程会回顾整个句子,寻找提供词汇背景的单词。然后重新调整 embedding 权重,使得单词“river”或“money”在语义上更接近于“word bank”。

image.png

这个 attention 过程会多次发生,以捕捉句子在多个维度上的上下文。在所有这些过程之后,上下文 embedding 最终被传递到神经网络中,就像我们之前提到的简单神经网络一样,产生概率。

这是一个大大简化了的LLM(像ChatGPT这样的语言模型)工作原理的版本。为了简洁起见,本文省略或略过了很多内容。

编辑中可能存在的bug没法实时知道,事后为了解决这些bug,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。

交流

有梦想,有干货,微信搜索 【大迁世界】 关注这个在凌晨还在刷碗的刷碗智。

本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。

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

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

相关文章

opencv实践项目-图片拼接之缝合线算法

目录 1. stitcher_detail执行过程2. 源码3. stitching_detail 程序接口介绍4. 执行5. 结果图 1. stitcher_detail执行过程 stitcher_detail是opencv官网提供的一个用于多福图像拼接的Demo,其主要过程如下: 1.输入待拼接图像集合;2.分别对每幅…

Jetson Nano调试记录:机电设备控制

边缘应用中,机电控制是一项非常重要的能力。 当我们的智能设备在远端环境中,根据所识别的状况变化去执行应对措施,更大程度度地降低对人为操作的依赖,这些都是能产生更大经济效益的应用,包括无人驾驶车、自动机械手臂等等。 实际工业应用场景中的控制元件是非常多样化的,…

惠普暗影精灵5 super 873-068rcn怎样用u盘重装系统win10

当我们的戴尔电脑出现问题的时候,无法进入系统要怎么重装系统win10修复呢?比较常用的就是借助u盘重装系统win10,需要用到装机工具。下面就给大家详细介绍下戴尔电脑怎样用u盘重装系统win10教程。 工具/原料: 系统版本:windows1…

LSTM-理解 Part-3(LSTM Networks)

之前博客中有涉及前两部分的介绍: 第一部分LSTM-理解 Part-1(RNN:循环神经网络) 第二部分LSTM-理解 Part-2(RNN的局限性) 这是其中的第三部分,讲解 LSTM Networks。 LSTM Networks 长短期记忆网…

【Python MySQL】零基础也能轻松掌握的学习路线与参考资料

Python是一种广泛使用的编程语言,MySQL是一个流行的关系数据库管理系统。学习Python和MySQL可以帮助开发人员更有效地处理数据,并构建可扩展和强大的Web应用程序。本文将介绍Python MySQL学习路线,参考资料和优秀实践。 Python MySQL学习路线…

美的智家、海尔智家,吹响新一轮AI竞赛号角

ChatGPT大行其道,各行各业迫不及待披上了AI大模型的“盔甲”,有的企业自研AI大模型,有的企业牵手头部科技企业,寻求智能产品价值的最大化,智能家电行业也不例外。 在国内,百度AI大模型文心一言一经推出就吸…

卷绕模型介绍

卷绕模型是收放卷应用的基础知识,这篇博客帮大家整理分析,有关收放卷的其它相关基础知识请参看专栏相关文章。和这篇文章相关联的知识点大家可以参看下面的博客 体积法计算卷径详细介绍 卷径计算详解(通过卷绕的膜长和膜厚进行计算)_RXXW_Dor的博客-CSDN博客有关卷绕+张力控…

LoRA:大模型的低秩自适应微调模型

对于大型模型来说,重新训练所有模型参数的全微调变得不可行。比如GPT-3 175B,模型包含175B个参数吗,无论是微调训练和模型部署,都是不可能的事。所以Microsoft 提出了低秩自适应(Low-Rank Adaptation, LoRA),它冻结了预…

企业级体验:未来体验管理的价值与趋势

我从事企业级体验相关领域的工作已十六载有余,曾经就职的企业既有阿里巴巴、腾讯这样的互联网“大厂”,也有顺丰、龙湖这样的线下“传统”企业。在这些企业中,我所工作的场景横跨了软件、电商、互联网、物流、零售、地产、金融等诸多业务领域…

11.计算机基础-计算机网络面试题—基础知识

本文目录如下: 计算机基础-计算机网络 面试题一、基础知识简述 TCP 和 UDP 的区别?http 与 https的区别?Session 和 Cookie 有什么区别?详细描述一下 HTTP 访问一个网站的过程?https 是如何实现加密的?URL是什么&…

Linux下网络编程(3)——socket编程实战,如何构建一个服务器和客户端连接

经过前几篇的介绍,本文我们将进行编程实战,实现一个简单地服务器和客户端应用程序。 编写服务器程序 编写服务器应用程序的流程如下: ①、调用 socket()函数打开套接字,得到套接字描述符; ②、调用 bind()函数将套接字…

Deep Supervised Dual Cycle Adversarial Network for Cross-Modal Retrieval 论文阅读笔记

​# 1. 论文信息 论文名称Deep Supervised Dual Cycle Adversarial Network for Cross-Modal Retrieval作者Lei Liao 中山大学会议/出版社IEEE Transactions on Circuits and Systems for Video Technologypdf📄在线pdf代码💻无代码 本文是基于公共空间…

mov转换为mp4格式怎么转,多方法教程

mov转换为mp4格式怎么转?如果你连mov都不了解,那就更别说将其进行转换了。其实使用过苹果手机的人应该接触的很多,但是我们时常不关注这个视频格式。MOV是一种音频和视频文件格式,它在苹果手机上使用。它不兼容安卓或Windows电脑&…

cookie、session、JWT(Json Web Token) 的区别?

cookie、session、JWT(Json Web Token) 的区别? 答: 要从http的无状态说起,http是无状态的,也就是如果你第一次访问服务器,之后再次访问的时候,服务器是不会意识到你再次来进行访问的。不想让已经登录的用…

敏捷ACP 常用关键词整理 敏捷ACP 常用知识点整理

敏捷ACP 常用关键词整理 敏捷ACP 常用知识点整理 一、MoSCoW 1、MoSCoW : 读作"莫斯科",适用于故事优先级的排序,首次出现在 3-13敏捷产品实践:产品待办事项列表的排序 ; 基于价值的分析的一种技术 &#…

mac python3.9安装pyqt5、qt5、pyqt5-tools

一 pip安装 转义安装 # 一条代码就可以搞定没错,使用的是Rosetta2 x86_64模式安装的 arch -x86_64 python3 -m pip install PyQt5arch -x86_64 python3 -m pip install pyqt5-tools二 brew安装 arm版 以下pip命令自行更具自己环境选择pip或pip3 在安装pyqt前必须先…

【C++】set和map的底层AVL树的实现

AVL树 文章目录 前言一、AVL树的实现总结 前言 上一篇文章对 map/multimap/set/multiset 进行了简单的介绍,在其文档介绍中发现,这几个容器有个共同点是:其底层都是按照二叉搜索树来实现的 ,但是二叉搜索树有其自身的缺陷&#xf…

OC消息机制

目录 1 OC消息机制2 OC消息发送3 OC动态方法解析4 OC消息转发 1 OC消息机制 OC对象调用方法在编译阶段不知道具体的方法在哪里,是在运行的过程中,向对象发送消息,通过对象得到函数地址,调用函数,如果没有找到&#xf…

计算机网络实验(ensp)-实验 9:配置 NAT 及了解 ping 命令

目录 实验报告: 实验操作 1.建立网络拓扑图并开启设备 2.配置路由器 1.输入命名:sys 从用户视图切换到系统视图 2.输入命名:sysname 姓名 修改路由器名字 3.输入命名:interface g0/0/1 (简写&…

Linux——进程和计划任务管理

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