【大语言模型基础】-详解Transformer原理

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍 阅读详情

一、Transformer

Transformer最开始用于机器翻译任务,其架构是seq2seq的编码器解码器架构。其核心是自注意力机制: 每个输入都可以看到全局信息,从而缓解RNN的长期依赖问题。

0

输入: (待学习的)输入词嵌入 + 位置编码(相对位置)

编码器结构: 6层编码器: 一层编码器 = 多头注意力+残差(LN) + FFN+残差(LN)

**输出:**每一个位置上输出预测概率分布(K类类别分布)

0

1.1 自注意力

分解式

0

0

缩放内积注意力

1. 自注意力的优势

     a. 计算开销,计算可并行 (嵌入维度d,序列长度n,计算复杂度**O(n^2d))**

     b. 建模长期依赖 (稳定训练过程)

2. 自注意力缩放(内积过大,softmax饱和)

We suspect that for large values d_k, the dot products grow large in magnitude, pushing the softmax function into regions where it has extremely small gradients.To counteract this effect, we scale the dot products by sqrt(d_k)

如上为原文。作者怀疑,如果Q和K的维度特别大,会使得内积后的值也大。从而使softmax进入梯度极小的区域(类似于sigmoid的饱和区域)。 这样容易导致梯度消失。

所以,他们将内积值除以sqrt(d_k),进行一个缩放,而又不破坏相对比例。

多头注意力机制(multi-head attention)

0

0

Transformer 提出多头注意力机制(不同头结果拼起来,再做线性变换),增强了 attention 层的能力(参数量不变)。解释:

  1. 它扩展了模型关注不同位置的能力。不同注意力头,关注不同的位置。长距离依赖
  2. 多头注意力机制赋予 attention 层多个“子表示空间(训练之后,每组注意力可以看作是把输入的向量映射到一个”子表示空间“)
torch.nn.MultiheadAttention(embed\_dim, num\_heads, dropout=0.0, bias=True, add\_bias\_kv=False, add\_zero\_attn=False, kdim=None, vdim=None)

参数说明如下:

  • embed_dim:最终输出的 K、Q、V 矩阵的维度,这个维度需要和词向量的维度一样
  • num_heads:设置多头注意力的数量。如果设置为 1,那么只使用一组注意力。如果设置为其他数值,那么 num_heads 的值需要能够被 embed_dim 整除
  • dropout:这个 dropout 加在 attention score 后面

定义 MultiheadAttention 的对象后,调用时传入的参数如下。

forward(query, key, value, key\_padding\_mask=None, need\_weights=True, attn\_mask=None)
  • query:对应于 Query 矩阵,形状是 (L,N,E) 。其中 L 是输出序列长度,N 是 batch size,E 是词向量的维度

  • key:对应于 Key 矩阵,形状是 (S,N,E) 。其中 S 是输入序列长度,N 是 batch size,E 是词向量的维度

  • value:对应于 Value 矩阵,形状是 (S,N,E) 。其中 S 是输入序列长度,N 是 batch size,E 是词向量的维度

  • key_padding_mask:如果提供了这个参数,那么计算 attention score 时,忽略 Key 矩阵中某些 padding 元素,不参与计算 attention(序列长度不同)。形状是 (N,S)。其中 N 是 batch size,S 是输入序列长度。

  • 如果 key_padding_mask 是 ByteTensor,那么非 0 元素对应的位置会被忽略

  • 如果 key_padding_mask 是 BoolTensor,那么 True 对应的位置会被忽略

  • attn_mask:计算输出时,忽略某些位置。形状可以是 2D (L,S),或者 3D (N∗numheads,L,S)。其中 L 是输出序列长度,S 是输入序列长度,N 是 batch size。

  • 如果 attn_mask 是 ByteTensor,那么非 0 元素对应的位置会被忽略

  • 如果 attn_mask 是 BoolTensor,那么 True 对应的位置会被忽略

在实际中,K、V 矩阵的长度一样,而 Q 矩阵的序列长度可不一样。这种情况发生在:在解码器部分的encoder-decoder attention层中,Q 矩阵是来自解码器下层,而 K、V 矩阵则是来自编码器的输出。

0

2. Encoder 和 Decoder

0

编码器就是编码器层(多头注意力+(残差+LN),FFN+(残差+LN))的堆叠。

0

解码器

Self-attention layers in the decoder allow each position in the decoder to attend to all positions in the decoder up to and including that position.We need to prevent leftward information flow in the decoder to preserve the auto-regressive property.We implement this inside of scaled dot-product attention by masking out (setting to −∞) all values in the input of the softmax which correspond to illegal connections.

  为了保持自回归的性质,要保持从左往右的顺序 (这种情况下,不能利用要预测的未来来推断过去)。  这里将当前token以后的进行mask (即将注意力得分加上-inf,将其变成无穷小,使其注意力系数极小接近于无) \[exp(-inf) = 0\]

  GAT也是这样做的,只不过mask的是非邻居结点 (避免信息泄露,从而让模型学不好)。

避免信息泄露,在解码器中使用mask:

# mask 不为空,那么就把 mask 为 0 的位置的 attention 分数设置为 -1e10(系数无穷小)

attention = torch.matmul(Q, K.permute(0, 1, 3, 2)) / self.scale
if mask is not None:
  attention = attention.masked\_fill(mask == 0, -1e10)
  attention = self.do(torch.softmax(attention, dim=-1))
  x = torch.matmul(attention, V)

交叉注意力层(Decoder-Encoder Attention, Decoder到Encoder输出的潜表示)

使用前一层的输出来构造 Query 矩阵,而 Key 矩阵和 Value 矩阵来自于编码器最终的输出(seq2seq都是这样的,预测当前输出时,不仅看之前的输出,同时也对输入隐状态进行关注)

预测

0

每一个位置有一个分类损失;总的损失就是每个位置损失之和。

训练

0

让我们假设输出词汇表只包含 6 个单词(“a”, “am”, “i”, “thanks”, “student”, and “”(“”表示句子末尾))。

这种架构本就可以用来做语言模型,只不过这里做了seq2seq的翻译。

如果训练数据中本身就有很多句子对,就可以直接通过语言模型实现翻译,例如GPT架构。

学习笔记,配图参考知乎-张贤同学、李宏毅机器学习。

程序员为什么要学大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

继科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉优快云大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

​

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

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

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

在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

LLM大模型学习路线 ↓

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容:

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容:

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容:

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容:

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉优快云大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

​

YF-S401水流量传感器在STM32上的精准计量实现 本文详细介绍了YF-S401水流量传感器与STM32微控制器的集成应用,实现精准水流计量。通过外部中断和外部时钟两种脉冲计数方案,结合硬件配置、软件滤波和校准技巧,确保高精度流量测量。适用于智能家居和工业自动化中的水控系统,提升系统稳定性和测量准确性。 阅读详情

相关推荐

SpringBoot 中 @RequestMapping 及衍生注解的全面解析与实践

本文全面解析Spring Boot中@RequestMapping及其衍生注解的使用,涵盖核心功能、HTTP方法特定注解(@GetMapping/@PostMapping等)、属性详解(路径/参数/头信息等)以及路径变量处理。文章详细介绍了注解的组合使用、继承特性、版本控制策略等高级应用,并针对405/404等常见错误提供解决方案。通过学习这些注解的规范用法,开发者能够构建符合RESTful风格的API接口,提升代码可读性和可维护性。建议优先使用HTTP方法特定注解,合理规划URL结构,并注意避免路径冲突。

Java&AI小吕布的博客 2037

Transformer 模型详解

本内容主要介绍 Transformer 模型的具体实现。

步入人工智能 37万+

黑苹果从入门到精通:最详细的VMware安装macOS教程

前言 不知为何,以前我发的两篇关于黑苹果的文章或没过审或被删除,最近SMZDM上有不少优质的黑苹果文章发出来,貌似禁令已开,前段时间在一篇写的很不错的黑果文章下吹牛说今年要写一个系列,故有了这篇文章作为系列的开头。 系列的名字起的有点俗,叫做xxx从入门到精通,但是我很喜欢,相信过半的黑果群众都是程序员,作为教程来说这个名字俗但是好用,我也希望这个系列能像其它入门到精通系列一样,让大家学到东西...

La victoria的博客 14万+

NLP Transformer的Decoder的输入输出都是什么?每个部分都是什么? NLP中的encoder和decoder的输入是什么?

要弄清楚Decoder的输入输出,关键在于图示三个箭头的位置:因为输入(“我爱中国”)在Encoder中进行了编码,这里我们具体讨论Decoder的操作,也就是如何得到输出(“L Love China”)的过程。

Drug discovery 9402

schrodinger 薛定谔

链接: https://pan.baidu.com/s/1Duh4GsoytIklvZp7TdHpWg 密码: wmr1 Linux系统版 进入 Schrodinger_Suites_2021-2_Linux-x86_64 sudo ./INSTALL 中间按默认的来即可,也可以自己调整安装目录。安装目录一定要记住。 安装完,把patcher 拷贝到安装目录 sudo ./patcher 点击Patch即可。 启动程序,进入安装目录 ./maestro ...

周迪新的博客 1万+

Colmap中 patchmatch源码

惊世骇俗的Colmap PatchMatch源码 500多行,简明易懂 先了解PatchMatch的options: max_image_size: 任一维度的最大图像尺寸 gpu_index: gpu的下标 depth_min,depth_max: 随机采样的深度范围 window_radius:用于计算NCC(两图片的归一化互相关),NCC的计算需要用到 win_size. 图像匹配 | NCC 归一化互相关损失 | 代码 + 讲解 - 知乎 (zhihu.com) window_step: 用.

qq_24884193的博客 2210

Transformer架构详解

Transformer是一种深度学习模型,最初是由Vaswani等人在2017年的论文《Attention Is All You Need》中提出的。这种模型在自然语言处理(NLP)领域特别流行,它引入了一种新的机制——自注意力(self-attention),使得模型能够更加高效和有效地处理序列数据。

m0_63260018的博客 1万+

反激开关电源变压器设计实例讲解(定明芳)

内容来自《反激变压器的设计》(定明芳主讲)。 定名芳老师主要讲了10步,最后应该还有一步,线径的选择已经绕制方式。这里进行了记录整理,把一些公式来源进行了推导。所有的设计都是基于理论计算。 1.确定电源规格 2.确定工作频率和最大占空比 3.计算匝比(利用伏秒平衡原则) 此处插入解释一下伏秒平衡,根源是磁通量平衡。该原则可以用来检查MOS管耐压是否够。 4.计算初级线圈峰值电流 基于CCM模式计算的。ip1是开关管要关闭时的峰值电流,ip2是开关管开始导通时的起始电流。因为时CCM模式,所以,ip

ydgd118的博客 5万+

一文彻底搞懂 Transformer(图解+代码手撕)

Transformer 通过其捕捉上下文和理解语言的能力,彻底改变了自然语言处理(NLP)领域。通过注意力机制、编码器-解码器架构和多头注意力,它们使得诸如机器翻译和情感分析等任务得以在前所未有的规模上实现。随着我们继续探索诸如 BERT 和 GPT 等模型,很明显,Transformer 处于语言理解和生成的前沿。它们对 NLP 的影响深远,而与 Transformer 一起的发现之旅将揭示出该领域更多令人瞩目的进展。研究论文。

2201_75499313的博客 7114

AIGC内容溯源技术:如何追踪AI生成内容的原始来源

本文旨在系统性地介绍AIGC内容溯源的技术体系,帮助读者理解如何追踪AI生成内容的来源。我们将覆盖从基础概念到前沿技术的完整知识链,包括但不限于数字水印、区块链存证、内容指纹等技术方案。文章将从AIGC的基本概念出发,逐步深入探讨各种溯源技术,分析其原理和实现,最后讨论实际应用和未来趋势。AIGC:AI Generated Content,人工智能生成内容内容溯源:追踪数字内容的创作、修改和传播历史数字水印:嵌入在数字内容中的不可见识别信息数字水印:隐藏在内容中的识别信息,像隐形墨水内容指纹。

SuperAGI2025 2070

如何设置反馈点

前面的POWER DC仿真都是忽略反馈线进行的仿真,如果单板压降不过,电源会自动调整输出电压,来满足负载的得到额定的电压.可以看到因为设置了反馈点,源端电压就被抬高到满足压降的值了。仿真上也可以自己添加反馈点,以得到抬高后的电源输出电压值。同样以下图的CPU的Core电源为例。按照流程正常设置好参数。

weixin_54787054的博客 1147

大模型原理(Transformer )

Transformer是一种基于自注意力机制(Self-Attention Mechanism)的深度学习模型,它在2017年由Vaswani等人在论文《Attention Is All You Need》中提出。Transformer模型的出现极大地推动了自然语言处理(NLP)领域的发展,尤其是在机器翻译、文本摘要、问答系统等任务中表现出色。

2401_85375186的博客 1471

电磁场仿真软件:Sonnet_(12).Sonnet与其他软件的集成

Sonnet作为电磁场仿真领域的强大工具,不仅能够独立完成复杂的仿真任务,还可以通过与其他软件的集成,实现更高效的工作流程和更广泛的功能扩展。通过与CAD、EDA、数据处理软件、MATLAB、Python以及云计算平台的集成,Sonnet用户可以更好地利用现有设计资源,进行参数优化和结果分析,从而提升设计和仿真效率。希望本节的内容能够帮助你更好地理解和应用Sonnet的集成功能。

kkchenjj的博客 1432

一文讲清楚大语言模型核心:Transformer 内部运行原理详解,看这一篇就够了!

一文讲清楚大语言模型核心:Transformer 内部运行原理详解,看这一篇就够了!

kaka0722ww的博客 1250

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Transformer工作原理详解:大语言模型的基石,建议收藏学习

本文详细解析了Transformer架构,这是所有大语言模型的基础。文章从词向量化、位置编码开始,逐步解释了Self-Attention、Multi-Head Attention、残差连接、LayerNorm和Feed Forward网络的工作原理。同时,文章还深入介绍了Encoder和Decoder的工作方式,展示了Transformer如何实现语言生成和理解。通过这种通俗的解读,读者可以理解Transformer为何成为现代AI大模型的基石。

2401_84815887的博客 930

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

一文穿透 Transformer 内部原理:大语言模型核心机制详解,收藏这篇就够了

一文穿透 Transformer 内部原理:大语言模型核心机制详解,收藏这篇就够了

大模型研究中心 1191

【收藏必备】Transformer工作原理详解:掌握大语言模型的核心技术

Transformer作为大语言模型的核心架构,通过Encoder对输入进行词向量化、位置编码和自注意力处理,Decoder则按序生成输出。其多头注意力机制捕捉多角度语义,残差连接和层归一化确保训练稳定,前馈网络增强特征表达。这种高度并行、可扩展的对称性设计,使Transformer成为ChatGPT等大模型的基石,完美诠释了"Attention is All You Need"的革命性思想。

datian1234的博客 559

大语言模型核心原理:Transformer与自注意力机制详解

文章解析了大语言模型的自回归特性和Transformer架构,重点解释自注意力机制。通过Query、Key、Value矩阵实现单词间关联计算,帮助模型理解上下文。文章用Python代码展示了自注意力的实现步骤,包括嵌入向量生成、注意力得分计算、Softmax归一化和上下文向量生成。这种机制使模型能捕捉单词间的复杂语义关系,是其强大表达能力的基础。GPT等生成式模型以文本为输入、文本为输出。从下图可见,该类模型不会一次性生成完整的输出结果,而是逐个生成token。

老皮的博客 1009

大语言模型(LLM)核心原理解析:next token prediction与transformer结构详解

本文深入浅出地解析了大语言模型(LLM)的核心原理:next token prediction。详细介绍了token的概念、token embedding与位置编码的作用,以及语言模型预训练和推理阶段的区别。通过nanoGPT的代码实现,展示了transformer结构中的因果自注意力机制和温度参数对生成文本随机性的影响。适合初学者建立对大模型的基础认知。

bugyinyin的博客 796

大语言模型的预训练:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

大语言模型的预训练:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

大模型训练 1635

从零实现大语言模型:Transformer核心原理与工程实践详解

Transformer架构作为现代大语言模型(LLM)的基石,其核心在于自注意力机制(Self-Attention),它通过计算序列中所有位置之间的关联权重,实现了对长距离依赖的高效建模。这一机制与位置编码、前馈网络、层归一化及残差连接共同构成了Transformer块,赋予了模型强大的序列建模能力。从工程实践角度,理解并亲手实现这些组件,特别是自注意力机制中Q、K、V矩阵的生成、缩放点积计算以及多头注意力的分头与合并过程,是深入掌握模型工作原理、进行有效调试和定制化创新的关键。这种从底层构建的经验,为解决

weixin_28728443的博客 537

Transformer 大语言模型(LLM)基石 - Transformer架构详解 - 掩码机制(Masked)原理介绍以及算法实现

Transformer 大语言模型(LLM)基石 - Transformer架构详解 - 掩码机制(Masked)原理介绍以及算法实现

java1234的博客 1178

从零训练微型大语言模型:Horus-runtime框架实战与Transformer原理详解

Transformer架构作为现代大语言模型(LLM)的核心基础,通过自注意力机制实现了对序列数据的高效建模。其原理在于并行计算输入序列中所有位置之间的关联权重,从而捕获长距离依赖关系。这一技术价值在于为自然语言处理任务提供了强大的特征提取能力,推动了生成式AI的快速发展。在应用场景上,Transformer不仅支撑了ChatGPT、LLaMA等知名模型,也成为众多NLP任务的标配架构。本文聚焦于Horus-runtime这一轻量级LLM训练框架,它通过约2000行可读代码完整实现了从数据预处理、分词器构建

weixin_30596343的博客 315

Transformer 大语言模型(LLM)基石 - Transformer架构详解 - 自注意力机制(Self-Attention)原理介绍

Transformer 大语言模型(LLM)基石 - Transformer架构详解 - 自注意力机制(Self-Attention)原理介绍

java1234的博客 514

深入解析大语言模型系列:Transformer架构的原理与应用

Transformer 作为一种革命性的神经网络架构,通过引入注意力机制,解决了传统模型在处理序列数据时的诸多问题。其并行处理能力、长距离依赖捕捉能力,使得它在大语言模型中的应用大放异彩。从机器翻译到文本生成,再到语义理解,Transformer 正在引领 NLP 领域的创新和发展。

希望我的博客,能帮上你解决学习中工作中所遇到的问题,也期待与您一起探讨技术问题,共同成长。 4421
上一篇: RAG技术全面解析:Langchain4j如何实现智能问答的跨越式进化?
下一篇: 【大语言模型基础】GPT(Generative Pre-training )生成式无监督预训练模型原理
Llama-Turbo
博客等级 码龄4年 9901粉丝 2022原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值