大模型的底层逻辑及Transformer架构

一、大模型的底层逻辑

1.数据驱动

        大模型依赖海量的数据进行训练,数据的质量和数量直接影响模型的性能。通过大量的数据,模型能够学习到丰富的模式和规律,从而更好地处理各种任务。

2.深度学习架构

        大模型基于深度学习技术,通常采用多层神经网络进行特征学习与抽象。其中,Transformer架构是目前主流的大模型架构,它通过自注意力机制和前馈神经网络来处理输入数据。这种架构能够高效地处理序列数据,如文本。

3.自注意力机制

        自注意力机制是Transformer架构的核心,它允许模型在处理序列时关注整个上下文信息。通过计算输入序列中每个位置与其他位置的相关性,模型能够更好地理解全局信息。

4.预训练与微调

        大模型通常采用预训练和微调的策略。预训练阶段,模型在大规模无标签数据上学习通用的语言或图像特征。微调阶段,模型在特定任务上进行进一步训练,以适应具体的任务需求。

5.概率计算

        大语言模型通过概率计算逐字接龙的方式工作,根据已有的上下文预测下一个最可能的词。这种基于概率的方法使得模型能够生成自然流畅的文本。

6.损失函数与优化

        为了衡量模型预测结果与真实目标之间的差距,需要定义损失函数,如交叉熵损失。通过优化损失函数,模型不断调整参数,以提高预测的准确性。

7.激活函数

        在神经网络的每一层之后,通常会使用激活函数(如ReLU、GELU等)对输出进行非线性变换。这增加了模型的表达能力,使其能够学习更复杂的模式。

8.多模态融合

        一些大模型还支持多模态输入,如结合文本和图像信息。这种多模态融合能够更全面地理解输入数据,从而提高模型的性能。

        这些底层逻辑共同构成了大模型的基础,使其能够在自然语言处理、图像识别、推荐系统等多个领域表现出色。

二、Transformer架构图各组件说明和数据流向

        Transformer架构是一种深度学习模型,主要用于自然语言处理任务。它由Google在2017年提出,其核心思想是通过自注意力(Self-Attention)机制,使模型能够同时处理多个位置的输入,从而更好地捕捉输入数据中的长距离依赖关系。

1. Transformer整体架构

        整体分为编码器(Encoder)解码器(Decoder)两部分,均由多个相同层堆叠而成(原论文《Attention Is All You Need》中为6层),有关Attention is All you Need全文翻译可以查看:https://zhuanlan.zhihu.com/p/682007654。原论文的Transformer总体架构图如下:

图1 Transformer总体架构图

        简要流程图如下:

图2 Transformer的简要流程

2.编码器(Encoder)部分

        每个编码器层包含以下子层:

        2.1 输入嵌入(Input Embedding)

        输入包括了输入嵌入和位置编码。

        (1)输入嵌入(Input Embedding):是将输入的单词或标记转换为固定维度的向量表示,便于模型处理(维度 d_model,如512)。

        (2)位置编码(Positional Encoding):为输入向量添加位置信息,因为Transformer并行处理数据而不依赖顺序。将位置信息注入输入(通过正弦函数或可学习参数)。

        2.2 多头自注意力(Multi-Head Self-Attention)

        多头自注意力层(Multi-Head Self-Attention):是Transformer架构的核心,是将编码器输入序列通过多头自注意力计算“注意力权重”,让编码器在对特定词进行编码时使用输入句子中的其他词的信息。

        (1)输入:词嵌入 + 位置编码。

        (2)过程:

        ·将输入拆分为多个“头”(如8个头),每个头独立计算注意力。

        ·每个头计算缩放点积注意力(Scaled Dot-Product Attention),公式:

        ·合并多个头的输出并线性投影。

        注意力函数的作用是:将查询(query)和一组键值对(key-value pairs)映射到输出,其中 query、keys、values 和输出都是向量。输出是values的加权和,其中分配给每个value的权重是由query与相应key的兼容函数(compatibility function)计算。

图3 (左)缩放点积注意力,(右)多头注意力由多个并行运行的注意力层组成

        我们的特别注意力(Scaled Dot-Product Attention)机制称作“缩放点积注意力”(图3左)。输入由d_{k}维的queries和keys以及d_{v}维的values组成。我们使用计算query和所有keys的点积,随之除以\sqrt{d_{k}},再应用softmax函数来获取values的权重。

        实际应用中,我们将一组queries转换成一个矩阵Q,同时应用注意力函数。keys和values也同样被转换成矩阵KV。按照如下方式计算输出矩阵:

        2.3 残差连接与层归一化(Add & Layer Norm)

        对应原文框架中的(Add & Norm),残差连接与层归一化(Add & Normalize):通过添加跨层连接和标准化输出,帮助模型更好地训练,防止梯度问题。

        (1)残差连接:将多头注意力输入与输出相加。

        (2)层归一化:标准化输出。

        2.4 前馈网络(Feed-Forward Network, FFN)

        对应原文框架中的(Feed Forward),前馈网络(Feed Forward Network):对输入进行非线性变换,提取更高级别的特征。其中包含两个线性变换,中间用ReLU激活:

        2.5 重复残差连接与层归一化(Add & Norm)

        对前馈网络输出再次执行残差连接和层归一化。

        编码器(左边)中的数据流向:输入嵌入(Input Embedding)与位置编码(Positional Encoding)相加后,先流入多头自注意力层(Multi-Head Self-Attention),其输出再经过残差连接与层归一化(Add & Layer Norm),然后流入前馈网络(Feed Forward Network),最后再次经过残差连接与层归一化(Add & Layer Norm),得到编码器(Encoding laygers)的输出。

3.解码器(Decoder)部分

        解码器结构与编码器类似,但额外包含编码器-解码器注意力层,并引入掩码机制:

        3.1 掩码多头自注意力(Masked Multi-Head Self-Attention)

        (1)掩码多头自注意力层(Masked Multi-Head Self-Attention):解码器的单个序列通过多头因果自注意力进行注意力计算,确保模型在生成某个词时只能依赖之前的词,避免未来信息的干扰。简单来说,即训练时使用掩码矩阵,防止解码器看到未来信息。

        (2)多头交叉注意力层(Multi-Head Cross-Attention):编码器和解码器的两个序列通过多头交叉注意力进行注意力转移,帮助解码器关注输入句子的相关部分。

        3.2 编码器-解码器注意力(Encoder-Decoder Attention)

        Query来自解码器前一层的输出,Key和Value来自编码器的最终输出。

        3.3 前馈网络与层归一化

        同编码器的FFN结构。

        解码器(右边)中的数据流向:解码器的输入嵌入与位置编码相加后,先流入掩码多头自注意力层,其输出经过残差连接与层归一化,然后流入多头交叉注意力层,再经过残差连接与层归一化,最后流入前馈网络,经过残差连接与层归一化,得到解码器的输出(Encoder)。

        对应原图中的解释如下:

图4 Transformer总体架构图释义

4.输出部分

        (1)线性层(Linear Layer):通过对上一步的线性变化得到指定维度的输出,也就是转换维度的作用。

        (2)Softmax层:使最后一维的向量中的数字缩放到0-1的概率值域内,并满足它们的和为1。

        在模型输出部分的数据流向:解码器的输出先经过线性层,再经过Softmax层,最终得到模型的预测结果。

5. 关键细节标注

        需明确以下内容:

        维度变化(如 d_model=512, h=8 头注意力)。

        残差连接路径(输入→子层→Add→LayerNorm)。

        位置编码公式(如正弦/余弦函数)。

        掩码机制(解码器自注意力中的三角掩码矩阵)。

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

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

相关文章

C++ 学习:深入理解 Linux 系统中的冯诺依曼架构

一、引言 冯诺依曼架构是现代计算机系统的基础,它的提出为计算机的发展奠定了理论基础。在学习 C 和 Linux 系统时,理解冯诺依曼架构有助于我们更好地理解程序是如何在计算机中运行的,包括程序的存储、执行和资源管理。这对于编写高效、可靠…

【C++】STL——list底层实现

目录 💕1.list的三个类介绍 💕2.list——节点类 (ListNode) 💕3.list——链表类 (List) 💕4.list——迭代器类(重点思考)(ListIterator) 💕5…

deepseek、qwen等多种模型本地化部署

想要在本地部署deepseek、qwen等模型其实很简单,快跟着小编一起部署吧 1 环境搭建 1.1下载安装环境 首先我们需要搭建一个环境ollama,下载地址如下 :Ollama 点击Download 根据自己电脑的系统选择对应版本下载即可 1.2 安装环境(window为例) 可以直接点击安装包进行安…

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>黄金矿工

目录 决策树&#xff1a;代码设计代码&#xff1a; 决策树&#xff1a; 代码设计 代码&#xff1a; class Solution {boolean[][] vis;int ret,m,n;public int getMaximumGold(int[][] grid) {m grid.length;n grid[0].length;vis new boolean[m][n]; for(int i 0; i <…

基于springboot河南省旅游管理系统

基于Spring Boot的河南省旅游管理系统是一种专为河南省旅游行业设计的信息管理系统&#xff0c;旨在整合和管理河南省的旅游资源信息&#xff0c;为游客提供准确、全面的旅游攻略和服务。以下是对该系统的详细介绍&#xff1a; 一、系统背景与意义 河南省作为中国的中部省份&…

并发编程 - 线程同步(三)之原子操作Interlocked简介

上一章我们了解了3种处理多线程中共享资源安全的方法&#xff0c;今天我们将更近一步&#xff0c;学习一种针对简单线程同步场景的解决方案——Interlocked。 在此之前我们先学习一个概念——原子操作。 01、原子操作 原子操作&#xff0c;其概念源于化学领域&#xff0c;原子…

0205算法:最长连续序列、三数之和、排序链表

力扣128&#xff1a;最长连续序列 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 class Solution {public int longestConsecutive(in…

JAVA_内部类

定义&#xff1a;在类的内部再定义一个类 特点&#xff1a;内部类可以直接访问外部类中的成员变量&#xff0c;即使是私有的。 外部类要想访问内部类中的成员变量&#xff0c;必须先创建内部类对象。 什么时候使用内部类&#xff1a;B类是A类的一部分&#xff0c;且B单独存在没…

2024 JAVA面试题

第一章-Java基础篇 1、你是怎样理解OOP面向对象 面向对象是利于语言对现实事物进行抽象。面向对象具有以下特征&#xff1a; 继承****&#xff1a;****继承是从已有类得到继承信息创建新类的过程 封装&#xff1a;封装是把数据和操作数据的方法绑定起来&#xff0c;对数据的…

视频融合平台EasyCVR无人机场景视频压缩及录像方案

安防监控视频汇聚EasyCVR平台在无人机场景中发挥着重要的作用&#xff0c;通过高效整合视频流接入、处理与分发等功能&#xff0c;为无人机视频数据的实时监控、存储与分析提供了全面支持&#xff0c;广泛应用于安防监控、应急救援、电力巡检、交通管理等领域。 EasyCVR支持GB…

2025最新软件测试面试大全

前面看到了一些面试题&#xff0c;总感觉会用得到&#xff0c;但是看一遍又记不住&#xff0c;所以我把面试题都整合在一起&#xff0c;都是来自各路大佬的分享&#xff0c;为了方便以后自己需要的时候刷一刷&#xff0c;不用再到处找题&#xff0c;今天把自己整理的这些面试题…

Hugging Face GGUF 模型可视化

Hugging Face GGUF 模型可视化 1. Finding GGUF files (检索 GGUF 模型)2. Viewer for metadata & tensors info (可视化 GGUF 模型)References 无知小儿&#xff0c;仙家雄霸天下&#xff0c;依附强者才是唯一的出路。否则天地虽大&#xff0c;也让你们无路可走&#xff0…

【C++】多态详细讲解

本篇来聊聊C面向对象的第三大特性-多态。 1.多态的概念 多态通俗来说就是多种形态。多态分为编译时多态(静态多态)和运⾏时多态(动态多态)。 编译时多态&#xff1a;主要就是我们前⾯讲的函数重载和函数模板&#xff0c;他们传不同类型的参数就可以调⽤不同的函数&#xff0c;通…

oracle 基础语法复习记录

Oracle SQL基础 学习范围 学习SQL基础语法 掌握SELECT、INSERT、UPDATE、DELETE等基本操作。 熟悉WHERE、GROUP BY、ORDER BY、HAVING等子句。 理解表连接&#xff1a; 学习INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN等连接方式。 掌握聚合函数&#xff1a; 熟悉…

配置@别名路径,把@/ 解析为 src/

路径解析配置 webpack 安装 craco npm i -D craco/craco 项目根目录下创建文件 craco.config.js &#xff0c;内容如下 const path require(path) module.exports {webpack: {// 配置别名alias: {// 约定&#xff1a; 使用 表示src文件所在路径: path.resolve(__dirname,src)…

Vue前端开发-pinia之Actions插件

Store中的Actions部分&#xff0c;用于定义操作属性的方法&#xff0c;类似于组件中的methods部分&#xff0c;它与Getters都可以操作State属性&#xff0c;但在定义方法时&#xff0c;Getters是对State属性进行加工处理&#xff0c;再返回使用&#xff0c;属于内部计算;Action…

Java NIO详解

一、NIO简介 NIO 中的 N 可以理解为 Non-blocking&#xff0c;不单纯是 New&#xff0c;是解决高并发、I/O高性能的有效方式。 Java NIO 是Java1.4之后推出来的一套IO接口&#xff0c;NIO提供了一种完全不同的操作方式&#xff0c; NIO支持面向缓冲区的、基于通道的IO操作。 …

Java进阶笔记(中级)

-----接Java进阶笔记&#xff08;初级&#xff09;----- 目录 集合多线程 集合 ArrayList 可以通过List来接收ArrayList对象&#xff08;因为ArrayList实现了List接口&#xff09; 方法&#xff1a;接口名 柄名 new 实现了接口的类(); PS: List list new ArrayList();遍历…

21.2.2 保存

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 如果打开某个Excel文件修改后&#xff0c;需要保存到原文件或者用新的文件名保存&#xff0c;在 Excel.Application.Quit() 前使用W…

基于微信小程序的校园水电费管理平台设计与实现

目录 摘要 系统展示 技术介绍 MySQL数据库 Vue框架 代码实现 管理员实现登录后端代码 连接数据库 前端代码实现 获取源码 摘要 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用…