【人工智能】第二部分:ChatGPT的架构设计和训练过程

人不走空

                                                                      

      🌈个人主页:人不走空      

💖系列专栏:算法专题

⏰诗词歌赋:斯是陋室,惟吾德馨

目录

      🌈个人主页:人不走空      

💖系列专栏:算法专题

⏰诗词歌赋:斯是陋室,惟吾德馨

2.1 架构设计

自注意力机制(Self-Attention Mechanism)

前馈神经网络(Feedforward Neural Network)

残差连接(Residual Connection)和层归一化(Layer Normalization)

最终输出

2.2 自注意力机制详解

2.3 多头注意力机制

2.4 位置编码

2.5 训练过程

2.5.1 预训练

2.5.2 微调

作者其他作品:


 

2.1 架构设计

ChatGPT的核心架构是基于Transformer解码器。Transformer解码器主要由多个堆叠的解码器层(Decoder Layer)组成,每个层包括以下几个关键组件:

自注意力机制(Self-Attention Mechanism)

自注意力机制是解码器的核心组件之一,用于捕捉输入序列中各个单词之间的关系。通过计算查询(Query)、键(Key)和值(Value)向量之间的相似度,自注意力机制能够为每个单词分配不同的权重,反映其在当前上下文中的重要性。这一机制使得模型能够在生成过程中考虑到整个输入序列的各个部分,从而生成连贯且上下文相关的文本。

前馈神经网络(Feedforward Neural Network)

前馈神经网络由两个线性变换和一个非线性激活函数(通常是ReLU)组成。它对每个位置的表示进行非线性变换,以增强模型的表达能力。具体步骤如下:

  1. 第一层线性变换:将输入向量映射到一个更高维度的隐空间。
  2. 激活函数:应用ReLU激活函数,增加模型的非线性特性。
  3. 第二层线性变换:将激活后的向量映射回原始维度。

这种双层结构能够捕捉复杂的特征和模式,进一步提升模型的生成质量。

残差连接(Residual Connection)和层归一化(Layer Normalization)

为了缓解深层神经网络中常见的梯度消失和梯度爆炸问题,Transformer解码器引入了残差连接和层归一化技术。

  • 残差连接:在每个子层的输入和输出之间添加一个直接连接,使得输入能够跳跃式地传递到后面的层。这种连接方式不仅有助于梯度的反向传播,还能加快模型的收敛速度。
  • 层归一化:对每一层的输入进行归一化处理,使得输入在不同训练阶段保持稳定,有助于加速训练过程和提高模型的稳定性。

每个解码器层的输入是前一层的输出,经过自注意力机制、前馈神经网络、残差连接和层归一化的处理后,传递给下一层。通过多层堆叠,模型能够逐层提取和整合更加抽象和高层次的特征。

最终输出

在所有解码器层处理完毕后,模型的输出被传递到一个线性层,该层将高维表示映射到词汇表的维度。接着,通过Softmax函数计算每个单词的概率分布。这一步骤将解码器的输出转换为一个概率分布,用于预测下一个单词。整个生成过程是自回归的,即每次生成一个单词,然后将其作为输入,用于生成下一个单词。

2.2 自注意力机制详解

自注意力机制是Transformer中最关键的部分,它通过计算查询、键和值的点积来捕捉输入序列中的依赖关系。具体步骤如下:

  1. 查询、键和值的生成:输入序列通过线性变换生成查询(Q)、键(K)和值(V)矩阵。

    Q=XWQ​,K=XWK​,V=XWV​

  2. 计算注意力权重:通过点积计算查询和键的相似度,然后除以一个缩放因子(通常是键的维度的平方根),最后通过Softmax函数将相似度转换为概率分布。

  3. 加权求和:用注意力权重对值进行加权求和,得到每个位置的注意力表示。

2.3 多头注意力机制

为了捕捉输入序列中的多种关系,Transformer引入了多头注意力机制(Multi-Head Attention)。具体来说,将查询、键和值矩阵分成多个头,每个头独立地计算注意力,然后将各头的输出拼接起来,再通过线性变换得到最终的输出。

多头注意力机制的公式如下:

MultiHead(Q,K,V)=Concat(head1​,head2​,…,headh​)WO​

其中,每个头的计算方法为:

headi​=Attention(QWQi​​,KWKi​​,VWVi​​)

2.4 位置编码

Transformer没有循环结构,因此无法自然地捕捉序列中的位置信息。为了解决这个问题,Transformer引入了位置编码(Positional Encoding)。位置编码通过正弦和余弦函数生成,并加到输入序列的词嵌入中,使得模型能够区分序列中不同位置的单词。

位置编码的公式如下:

其中,pospospos表示位置,iii表示维度的索引,dmodeld_{model}dmodel​表示词嵌入的维度。

2.5 训练过程

ChatGPT的训练过程包括两个主要阶段:预训练和微调。

2.5.1 预训练

在预训练阶段,模型在大规模的无监督文本数据上进行训练。训练目标是最大化给定上下文条件下生成下一个单词的概率。具体来说,模型通过计算预测单词与真实单词之间的交叉熵损失来进行优化。

预训练的公式如下:

其中,xtx_txt​表示序列中的第ttt个单词,TTT表示序列的长度。

2.5.2 微调

在微调阶段,模型通过监督学习和强化学习在特定任务或领域的数据上进行进一步训练。监督学习使用标注数据进行训练,强化学习则通过与环境的交互,优化特定的奖励函数。

微调过程包括以下步骤:

  1. 监督学习微调:使用人工标注的数据进行监督学习,优化模型在特定任务上的性能。
  2. 强化学习微调:使用强化学习算法(如策略梯度)进行优化,通过与环境的交互,最大化奖励函数。

强化学习微调的公式如下:

其中,πθ​表示模型的策略,R(x)表示奖励函数。


作者其他作品:

【Java】Spring循环依赖:原因与解决方法

OpenAI Sora来了,视频生成领域的GPT-4时代来了

[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读

【Java】深入理解Java中的static关键字

[Java·算法·简单] LeetCode 28. 找出字a符串中第一个匹配项的下标 详细解读

了解 Java 中的 AtomicInteger 类

算法题 — 整数转二进制,查找其中1的数量

深入理解MySQL事务特性:保证数据完整性与一致性

Java企业应用软件系统架构演变史 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

考研数学考到110+分,到底有多难?

很难! 大家平时在网上上看到很多人说自己考了130,其实这些人只占参加考研数学人数的极少部分,有个数据可以展示出来考研数学到底有多难: 在几百万考研大军中,能考到120分以上的考生只有2%。绝大多数人的分数集中在30…

通过非欧几何体改变 AI 嵌入

目录 一、说明 二、LLM嵌入的形势 三、了解一些背景信息 3.1 什么是嵌入? 3.2 为什么嵌入在 NLP 中很重要? 3.3 复数Complex 几何的角色 3.4 C主动学习 3.5 角度嵌入 (AE):解锁稳健排序 3.6 RotatE:将关系…

浏览器运行原理:网页被解析过程、script元素和页面解析的关系、defer和async使用;V8引擎执行原理(执行js)

一、浏览器渲染页面的流程 1.如何找到服务器 2.找到服务器如何下载对应的静态资源 输入完服务器地址,下载下来的一般是html文件,在解析html文件过程中,遇到link引用了css文件,就下载对应的css文件,js文件同理 3.一个…

IDEA 学习之 命令行太长问题

现象 Error running App Command line is too long. In order to reduce its length classpath file can be used. Would you like to enable classpath file mode for all run configurations of your project?解决办法 办法一 .idea\workspace.xml ——> <compone…

关于IDEA创建Maven一直爆红无法下载的问题

你能看到这我就知道你肯定已经试过了网上的很多方法了&#xff0c;我之前也是&#xff0c;试过了很多一直无法正常下载&#xff0c;我也是找人给 线下看了看解决了&#xff0c;我总结一下从头到尾排除问题&#xff0c;试到最后要是还解决不了你直接私信我&#xff0c;我给你看看…

【并发程序设计】15.信号灯(信号量)

15.信号灯(信号量) Linux中的信号灯即信号量是一种用于进程间同步或互斥的机制&#xff0c;它主要用于控制对共享资源的访问。 在Linux系统中&#xff0c;信号灯作为一种进程间通信&#xff08;IPC&#xff09;的方式&#xff0c;与其他如管道、FIFO或共享内存等IPC方式不同&…

Python保存为json中文Unicode乱码解决json.dump()

保存为json中文Unicode乱码&#xff1a; 可以看到&#xff0c;中文字符没有乱码&#xff0c;只是出现了反斜杠&#xff0c;此时解决方法应考虑是否进行了二次序列化。 一、原因1 在dump时加入ensure_asciiFalse 即可解决&#xff0c;即json.dump(json_data, f, indent4, en…

【Spring-01】BeanFactory和ApplicationContext

【Spring-01】BeanFactory和ApplicationContext 1. 容器接口1.1 什么是 BeanFactory1.2 BeanFactory 能做什么&#xff1f; 1. 容器接口 以 SpringBoot 的启动类为例&#xff1a; /*** BeanFactory 与 ApplicationContext的区别*/ SpringBootApplication public class Spring…

【自动驾驶】针对低速无人车的线控底盘技术

目录 术语定义 一般要求 操纵装置 防护等级 识别代号 技术要求 通过性要求 直线行驶稳定性 环境适应性要求 功能安全要求 信息安全要求 故障处理要求 通信接口 在线升级(OTA) 线控驱动 动力性能 驱动控制响应能力 线控制动 行车制动 制动响应能力 线控转向 总体要求 线控…

STM32作业实现(五)温湿度传感器dht11

目录 STM32作业设计 STM32作业实现(一)串口通信 STM32作业实现(二)串口控制led STM32作业实现(三)串口控制有源蜂鸣器 STM32作业实现(四)光敏传感器 STM32作业实现(五)温湿度传感器dht11 STM32作业实现(六)闪存保存数据 STM32作业实现(七)OLED显示数据 STM32作业实现(八)触摸按…

UML静态图-类图

概述 静态图包含类图、对象图和包图的主要目的是在系统详细设计阶段&#xff0c;帮助系统设计人员以一种可视化的方式来理解系统的内部结构和代码结构&#xff0c;包括类的细节、类的属性和操作、类的依赖关系和调用关系、类的包和包的依赖关系。 一、类图的表示法 类图(Cla…

2024系统架构师软考考题考点回忆版

2024年5月25日系统架构师软考试题/考点梳理 选择题 (75道单选题) 软件测试(P205) 静态测试:是被测程序不运行,只依靠分析和检查源程序的语句、结构、过程来检查程序是否有错误。动态测试:运行被测试程序,对得到的结果与预期的结果进行比较分析,同时分析运行效率和健壮…

(1) 初识QT5

文章目录 Qt Quickdemo信号的命名方式 qml语言一个很重要的概念 qt 模块 Qt Quick Qt Quick是Qt5中⽤户界⾯技术的涵盖。Qt Quick⾃⾝包含了以下⼏种技术&#xff1a; QML-使⽤于⽤户界⾯的标识语⾔JavaScript-动态脚本语⾔Qt C具有⾼度可移植性的C库. 类似HTML语⾔&#xf…

Docker(Centos7+)

先确定是否 Centos 7 及以上的版本 查看是否 ping 通外网 linux centos7运行下面的代码&#xff0c;基本上都可以正常安装 # 删除之前的docker残留 yum -y remove docker*yum install -y yum-utilsyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/…

Docker最新超详细版教程通俗易懂

文章目录 一、Docker 概述1. Docker 为什么出现2. Docker 的历史3. Docker 能做什么 二、Docker 安装1. Docker 的基本组成2. 安装 Docker3. 阿里云镜像加速4. 回顾 hello-world 流程5. 底层原理 三、Docker 的常用命令1. 帮助命令2. 镜像命令dokcer imagesdocker searchdocker…

反向配置教程

注意&#xff0c;Openai、Gemini、claude和pika接口在国内直连不通&#xff0c;都需要配置反向 一、配置openai反向 1、在海外宝塔添加反向 将海外宝塔升级到最新 在海外宝塔添加一个新站点&#xff08;可以解析一个域名来用&#xff0c;也可以用ip端口形式&#xff09; 打开…

全国水系数据(更新到2024年5月)

上海市水系数据地图可视化 水系数据线图层&#xff08;小河/溪流、江/河、运河、下水道/排水管&#xff09; 水系数据面数据&#xff08;水域、水库、河岸、湿地&#xff09; 水系数据字段说明 可视化预览 北京市水系可视化 上海市水系可视化 广州市水系可视化 深圳市水系可视化…

部署Envoy

Envoy常用术语 envoy文档官网 Life of a Request — envoy 1.31.0-dev-e543e1 documentationhttps://www.envoyproxy.io/docs/envoy/latest/intro/life_of_a_request#terminology 基础总结 &#xff08;1&#xff09;Envoy Envoy自己本身是工作在L7层的一个proxy&#xff…

如何让大模型更聪明?

【导读】 6月20日下午&#xff0c;163期文汇讲堂“数字强国”系列启动&#xff0c;首期《AIGC驱动生产力跃升与良好世界塑造》&#xff0c;在涌动着毕业季青春气息的华东师大樱桃河畔成功举办。北京智源人工智能研究院副院长兼总工程师林咏华应邀作主讲&#xff0c;华东师大学者…

Whisper-AT:抗噪语音识别模型(Whisper)实现通用音频事件标记(Audio Tagger)

本文介绍一个统一音频标记&#xff08;Audio Tagger&#xff09;和语音识别&#xff08;ASR&#xff09;的模型&#xff1a;Whisper-AT&#xff0c;通过冻结Whisper的主干&#xff0c;并在其之上训练一个轻量级的音频标记模型。Whisper-AT在额外计算成本不到1%的情况下&#xf…