一文入门生成式AI(理解ChatGPT的原理)

一、什么是生成式AI?

以ChatGPT为代表的生成式AI,是对已有的数据和知识进行向量化的归纳,总结出数据的联合概率。从而在生成内容时,根据用户需求,结合关联字词的概率生成新的内容

可以这么联想,ChatGPT就是一个词语接龙的机器,他会根据你给出的关键词,自动生成关键词的下一个最有可能衔接的词语。比如你说,“世界上最高的山”,ChatGPT就会回答“喜马拉雅山”。

二、怎么得到一个大模型?

大模型需要:算力、数据/存力、算法这三大要素。

算力:即需要GPU、NPU这些硬件进行训练。

数据/存力:生成式AI需要处理和存储大量的数据。以GPT-3为例,光是训练参数就达到了1750亿个,训练数据达到45TB,每天会产生45亿字内容。

算法:生成式AI的主要算法是深度学习。从仿生学的角度,人类希望AI能够模仿人脑的运行机制,对知识进行思考推理——这就是通常所说的深度学习。

三、算法

为了实现深度学习,学者们提出了大量的神经网络架构:

先看三个经典的:

  • 深度神经网络(DNN)是最普遍的神经网络架构,但是随着数据对于网路架构的要求越来越复杂,这种方法逐渐有些吃力。
  • 卷积神经网络(CNN)是一种专门为处理图像数据而设计的神经网络架构,能够有效地处理图像数据,但是需要对输入数据进行复杂的预处理。
  • 循环神经网络(RNN)架构成为处理序列数据的常用方法。

(1)Transformer架构

由于RNN在处理长序列时容易遇到梯度消失和模型退化问题,著名的Transformer算法被提出。

Transformer架构:是目前文本生成领域的主流架构,GPT、llama等LLM(大语言模型)都是基于Transformer实现了卓越的性能。

Transformer架构:主要由输入部分(输入输出嵌入与位置编码)、多层编码器、多层解码器以及输出部分(输出线性层与Softmax)四大部分组成。

  • (1)输入部分:

  • 源文本嵌入层:将源文本中的词汇数字表示转换为向量表示,捕捉词汇间的关系。

  • 位置编码器:为输入序列的每个位置生成位置向量,以便模型能够理解序列中的位置信息。

  • 目标文本嵌入层(在解码器中使用):将目标文本中的词汇数字表示转换为向量表示。

  • (2)编码器部分:

  • 由N个编码器层堆叠而成。

  • 每个编码器层由两个子层连接结构组成:第一个子层是一个多头自注意力子层,第二个子层是一个前馈全连接子层。每个子层后都接有一个规范化层和一个残差连接。

  • (3)解码器部分:

  • 由N个解码器层堆叠而成。

  • 每个解码器层由三个子层连接结构组成:第一个子层是一个带掩码的多头自注意力子层,第二个子层是一个多头注意力子层(编码器到解码器),第三个子层是一个前馈全连接子层。每个子层后都接有一个规范化层和一个残差连接。

  • (4)输出部分:

  • 线性层:将解码器输出的向量转换为最终的输出维度。

  • Softmax层:将线性层的输出转换为概率分布,以便进行最终的预测。

(2)训练

目前有两种训练方式:预训练和SFT(有监督微调)

  • 预训练:是指将一个大型、通用的数据集作为知识喂给AI进行初步学习。经过预训练的模型叫作“基础模型”,它对每个领域都有所了解,但是无法成为某个领域的专家。
  • SFT(有监督微调):SFT是指在预训练之后,将一个特定任务的数据集喂给AI,进一步训练模型。例如,在已经预训练的语言模型基础上,用专门的医学文本来微调模型,使其更擅长处理医学相关的问答或文本生成任务。

四、Transformer里的编码解码到底是什么?

语义的最小单位,是TOKEN,可以翻译成“词元”,它是语言类模型中用数字来表示单词的最小语义单位。

比如下图中这句话“This is a input text.” 首先被 Tokenizer 转化成最小词元,其中[CLS][SEP]为一句话的起始与结束符号(CLS:classification 告知系统这是句子级别的分类的开始、SEP:separator 告知系统结束本句或分割下一句),然后再通过 Embedding 的方式转化为向量。

比如猴子和香蕉,这两个语义关系紧密。原子能和香蕉,差距就比较远。

Transformer中,编码器和解码器中的“码”指的是什么?

以下是ChatGPT-4o-mini给出的答案:

编码器中的“码”

  • 输入表示:编码器接收输入序列(如文本),并将其转换成一个高维的向量表示。这些向量捕捉了输入序列中单词之间的关系和上下文信息。
  • 特征提取:编码器通过多层自注意力机制和前馈神经网络提取特征,使得每个输入的表示包含了其在上下文中的重要性。

解码器中的“码”

  • 生成输出:解码器使用编码器生成的表示以及之前生成的单词,逐步生成目标序列(如翻译后的文本)。这里的“码”指的是解码器对已生成内容的处理和对未来内容的预测。
  • 上下文结合:解码器同样使用自注意力机制来考虑已生成的单词与当前生成位置的关系。

总结来说,“码”在这里代表了对输入和输出数据的数学表示方式,帮助模型理解和生成语言。

总的来说,编码器负责理解和处理输入,而解码器则负责生成输出,二者协同工作以实现有效的序列转换。

参考:

https://baijiahao.baidu.com/s?id=1801561545647449293&wfr=spider&for=pc

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

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

相关文章

C++对象拷贝时的优化编译

在现代编译器中,当我们在 C中进行对象的拷贝操作时,编译器并非只是机械地执行逐字节的复制。相反,它会进行优化,避免不必要的拷贝构造等等,这种优化包括“返回值优化”(RVO),“拷贝省…

电脑的主板,内存条插多少合适?

首先,不是插满4条内存就是最好的。 内存条插得多,确实可以扩充容量,提升性能。但是有些低端的主板配低端CPU,插满4条内存,稳定性下降。这里的稳定性包括供电,单独的内存供电容量等。此时CPU会通过降低内存…

Weapons Armor PBR Pack 1 - Fantasy RPG 武器护甲游戏模型

武器和护甲包#1有30个武器和护甲,每个对象都有默认外观,大多数都有网格变形和Substance Painter源文件,用于自定义纹理。 无限PBR&我的哲学 Infinity PBR是十几位艺术家的作品,他们都在做自己最擅长的事情。我想为独立游戏开发者制作最通用、最优质的资产,按照我希望的…

大数据新视界 --大数据大厂之数据驱动决策:如何利用大数据提升企业竞争力

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

MySQL之内置函数

目录 一:日期函数 二:字符串函数 三:数学函数 四:其他函数 一:日期函数 举例: (1) mysql> select current_date(); ---------------- | current_date() | ---------------- | 2024-09-17 | ---------------- 1 row …

了解云容器实例云容器实例(Cloud Container Instance)

1.什么是云容器实例? 云容器实例(Cloud Container Instance, CCI)服务提供 Serverless Container(无服务器容器)引擎,让您无需创建和管理服务器集群即可直接运行容器。 Serverless是一种架构理念…

中秋节程序员一般在干啥?

中秋节作为一个传统的中国节日,主要庆祝活动围绕着家庭团聚、赏月、吃月饼等文化习俗展开。然而,对于程序员这个职业群体来说,他们的中秋节活动可能因工作性质和个人安排而有所不同。但大致上,程序员在中秋节期间可能会有以下几种…

SpaceX实现人类首次商业太空行走:航天历史新篇章

导语 2023年9月,SpaceX成功完成了人类历史上首次商业太空行走,这不仅是航天领域的重要突破,也是商业航天的一次重大胜利。这一事件标志着普通人离太空更近了一步,为未来的太空探索和火星移民奠定了基础。 一、背景介绍&#xff1a…

【C++二叉树】102.二叉树的层序遍历

107. 二叉树的层序遍历 II - 力扣(LeetCode) 思路分析: 层序遍历,但是要注意输出的结果是一个二维数组,不是一层一个值一个值的输出,而是要一层一层的输出。可以通过一个循环控制每一层的数据个数&#xff…

2-97 基于matlab的小波变换模量最大值 (WTMM) 方法进行图像边缘检测

基于matlab的小波变换模量最大值 (WTMM) 方法进行图像边缘检测。利用小波基函数的局部化和振荡特性来检测图像中的边缘,沿每个像素的梯度方向搜索局部最大值,保留局部最大值,抑制其他系数,实现边缘检测。程…

C++11(4)

万众瞩目的C11特辑来了&#xff0c;本章将继续讲解C11更新的内容&#xff0c;不过C11的内容也快接近尾声了。 目录 10。lambda表达式 11。lambda捕捉列表[] 捕捉列表说明 lambda捕捉列表实际应用 10。lambda表达式 #include<iostream> using namespace std; #inclu…

安装WINDOWS微软商店已下架的WSL系统,以UBUNTU 16.04 为例

下载WSL系统 方法1&#xff1a;POWERSHELL 用powershell下载 PowerShell Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing 1 如果下载时间很长&#xff0c;可以这样把进度条关闭&#xff1a; $ProgressPreference Silentl…

iKuai使用及设置流程

iKuai使用及设置流程 iKuai安装步骤 一、配置主机 1.电脑连接ETH0网口 2.ETH1网口连接猫上面的千兆口 3.手动配置pc的IP地址和192.168.1.1./24在同一网段 3.浏览器输入192.168.1.1 admin admin 二、外网设置 1.直接联通电信网络设置 2.点击 网络设置-内外网设置-点击接…

【网络安全】逻辑漏洞之购买商品

未经授权,不得转载。 文章目录 正文正文 电子商务平台的核心功能,即购买商品功能。因为在这个场景下,任何功能错误都有可能对平台产生重大影响,特别是与商品价格和数量有关的问题。 将商品添加到购物车时拦截请求: 请求包的参数: 解码参数后,并没有发现价格相关的参数,…

IDC JAVA语言搭建教程

程序搭建环境&#xff1a;Linux系统CentOS7.6、宝塔、PHP7.2、MySQL5.6&#xff0c;根目录public&#xff0c;伪静态thinkPHP&#xff0c;开启SSL 安装&#xff1a; yum -y install build-essential QQ1594457675 安装&#xff1a;更多依赖包 yum -y install gcc automake …

java编程行业特点

Java编程行业是一个庞大且充满活力的领域&#xff0c;它涵盖了从桌面应用到企业级应用、从Web开发到移动应用、从大数据处理到云计算服务的广泛范围。Java作为一种跨平台、面向对象的编程语言&#xff0c;自1995年发布以来&#xff0c;一直受到全球开发者的青睐&#xff0c;并在…

【网络安全】Google Dorks+Wayback Machine实现敏感数据泄露

未经许可,不得转载。 文章目录 正文正文 Dork搜索: site: privateprogram.com/webapp/经后续挖掘,我发现了一个专门用于存储用户订单的子域和其中一条链接: https://orders.privateprogram.com/webapp/wcs/stores/servlet/OrderView?orderId=002233893但是访问后返回错…

Qt优秀开源项目之二十三:QSimpleUpdater

QSimpleUpdater是开源的自动升级模块&#xff0c;用于检测、下载和安装更新。 github地址&#xff1a;https://github.com/alex-spataru/QSimpleUpdater QSimpleUpdater目前Star不多&#xff08;911个&#xff09;&#xff0c;但已在很多开源项目看到其身影&#xff0c;比如Not…

关于 Regshot 软件

https://github.com/skydive241/Regshot-Advanced#Regshot 3.0.0 1 1.9 版本很多配置没有界面&#xff0c;3.0 把它们都展示到界面上。 2 生成 .au3 好像只能用于安装或卸载软件 3 对于手动修改注册表&#xff0c;会输出 .reg 和 .cmd 等。 对于软件安装&#xff0c;输出有异…

markdown 使用技巧

文章目录 markdown使用技巧1.标题快捷键设置2.文档可读性设置 markdown使用技巧 1.标题快捷键设置 ctl 1:一级标题 ctl 2:二级标题 ctl 3:三级标题 ctl 4:四级标题 ...2.文档可读性设置 输入~~~pro 可选择代码框&#xff0c;并且可以选择不同的字体 ctrl shift ] : 可…