Transformer问题总结及实现

news2024/9/23 5:20:55

目录

前提:

注意:以下对于优化的问题,要回答这个问题:前一种方法的局限性在哪里,优化的方法是怎么进行优化的?(未完全解决)

Step1:关于Transformer的疑问

Step2:关于Transformer各层的实现(未解决)

2.1:Encoder细节

2.2:Decoder细节

2.3:怎么用Transformer提升Kaggle平台的House_pricing竞赛?


前提:

注意:以下对于优化的问题,要回答这个问题:前一种方法的局限性在哪里,优化的方法是怎么进行优化的?(未完全解决)

Step1:关于Transformer的疑问

1.encoder层的输出向量是传递给第一层decoder还是所有层的decoder呢?(解决)

答案:所有层

2.transformer的encoder层的输入和输出维度是什么呢?(解决)

答案:encoder层的输入是(a,b),有a句话,每句话是b个分词的token,然后输入到encoder中,假设embed层是(m,n)的,那么经过embed层之后就是(a,b,n)了。 因为有resnet层的存在,所以encoder的每一层的输出和输入的维度是一样的。

解释一下:embedding层的参数含义:m指的是token表的大小,n指的是嵌入向量的维度

Attention层的参数含义:Q,K,V的维度大小是(n,d_k),n是为了迎合嵌入向量的维度,因为要做矩阵乘法,d_k是Q自身的维度,也就是softmax中要除以的那个d_k

3.Transformer的decoder层的输入和输出维度是什么呢?(解决)

答案:Transformer的decoder层输入和输出的维度是相同的。这通常由输出前的线性层决定,线性层的维度是(n,类别个数),取决于需要分类的类别个数,然后经过softmax将结果转换为概率分布,输出结果。

注意:将问题2和问题3总结一下,假设embed层的维度是(m,n),decoder层最后输出的线性层维度是(n,k),这里m是输入词汇表的大小,k是输出词汇表的大小,n是嵌入向量的维度。在Encoder的内部其他的任何层的输出维度都是一样的,在Decoder的内部其他的任何层的输出维度都是一样的,这样是为了保证可以进行resnet。

4.encoder-only和decoder-only的区别是什么呢?(解决)

答案:encoder-only是将输入x变成特征向量,然后用于下游的具体任务的操作方式,适合用于分类任务等有分类性质的任务;

decoder-only利用自回归的方式去预测下一个token的操作方式,decoder-only模型常用于生成任务

5.位置编码是什么样的,可以怎么优化?(未解决)

答案:Transformer中用的是标准位置编码,公式如下:

PE(pos,point) = sin(\frac{pos}{10000^{2k/d}}) \\ PE(pos,point) = cos(\frac{pos}{10000^{2k/d}})

解释一下参数:1.pos指的是token所在的位置;2.d指的是编码向量的维度;3.point是编码点,取值范围是[0,d-1];4.k的取值范围是[0,d/2],k = [point /2],当计算位置编码点point是偶数的时候,用sinx计算,当计算位置编码点point是是奇数的时候,用cosx计算。

举个例子:我打篮球  对我进行512维位置编码,token化省略

我 = [sin(\frac{0}{10000^{0/512}}),cos(\frac{0}{10000^{0/512}}),....]在对我进行编码的第一个位置,其实这个时候point是0,是偶数,所以这个时候会用sinx计算,并且k = 0/2取整,所以是0;进行编码的第二个位置,这个时候编码点point是1,是奇数,所以这个时候会用cosx计算,并且k = 1/2取整,所以是0
优化:RoPE解释如下:RoPE只考虑局部的两个相邻分量之间的关系。

举个例子,如果x = [x_1,x_2,x_3,x_4],那么第一组分量是[x_1,x_2],第二组分量是[x_3,x_4]

推导出这个等式的关键一步是为了推导出如下等式:

为什么要推导出这个等式呢?

 其中,各部分有相应的含义:

6.当前的注意力机制是什么样的,可以怎么优化?(未解决)
答案:当前的注意力机制是:score = softmax(\frac{QK^T}{sqrt(d_k))})V 或者多头注意力机制(注意到不同的表征空间之后,再去聚焦)。这里的注意力机制就出现了两个问题:1.复杂度高;2.由于计算和内存限制难以处理超长文本,文本长度的限制,如果记忆5000个token,计算量需要25000000。

优化1:稀疏注意力机制:背景是:在传统的注意力机制的情况下,每一个token需要注意到所有的token,计算复杂度是O(N^2)(这里动手计算一下Q*K^T就明白了),所以呢,这个时候,不要求每一个token注意到所有的token,只要求它注意到和它相邻的前后k个token,这个时候算法复杂度是O(N * K),在处理长序列的时候,可以减少内存的消耗;或者将一句话分成不同大小的块,只要求每一个token注意到块中的token即可。(动手计算一下Q*K^T就明白了)

优化点:1.复杂度减少 2.相应的,可以处理超长token的建模问题

优化2:Flash attention机制:

7.前馈神经网络层是什么样的,可以怎么优化?(解决)

答案:Transformer的前馈神经网络层是由两层线性层和一层非线性层组成,结构是:全连接层 + 非线性层 + 全连接层
优化方式主要是非线性层上的优化,如下

8.非线性化是什么样的,可以怎么优化?(未解决)

答案:Transformer的激活函数是Relu = max(0,x),把小于零的部分变成零

先说一下Relu的缺点:Relu的特点是,当x<=0的时候,会将x设置为0,这样如果出现了大量负数的情况,就会出现大量为0的情况,使得这些神经元在学习的时候就变得无效,无法学习。

优化:SwiGLU = swish(x_1) * \sigma(x_2) \\ swish(x_1) = x_1 * \sigma(\beta*x_1) \\ \sigma(x_2) = \frac{1}{1+e^{-{x_2}}},通常取\beta为1

这里的x_1x_2x经过了两个线性层得到的。

优点:SwiGLU更加的平滑,再加上门控的优点??

9.Padding Mask 、 Attention Mask 、 Casual Mask是什么?有什么用?(解决)

答案:9.1:padding mask是处理变长的序列的过程中,在较短的序列后加上padding,使得所有序列变成相同长度;

9.2:attention mask是在计算注意力机制的时候,确保哪些token可以被看到,例如:casual mask,确保在decoder中的自回归步骤,只能看到该token之前的token,而看不到后面的token,这样保证在训练的过程中,在自回归的过程中,预测的结果是真的预测出来的,而不是提前看见,然后说出来的

9.3:MLM Mask:这是在bert中用到的掩码机制,bert是encoder-only模型,在训练的时候,随机掩盖15%的token,让bert来学习,在掩盖的15%token中,其中80%是掩盖为[Mask]标记,10%替换为随机token,10%不变

10.transformer结构怎么进行更好地并行训练?(解决)

答案:10.1:self-attention计算注意力的时候是并行计算的;
10.2:层并行化,Transformer的不同层放到不同的GPU上进行并行处理;
10.3:数据并行化:将数据切分为一定大小的batch;
等等

11.Transformer层归一化函数是什么?有什么改进?(解决)

答案:1.层归一化函数,在Transformer中是layer norm,举个例子:

如果编码后的向量是(5,10),也就是5个token,每个token的向量维度是10,那么对于layernorm来说,归一化是横着来的,最后结果是(5,1);但是batchnorm是竖着来的,最后结果是(1,10).layernorm对于某个token进行归一化,batchnorm是以这句话为整体进行归一化。

具体公式为:

\mu = \frac{\Sigma x_i}{n} \\ \sigma = sqrt(\frac{\Sigma(x_i - \mu)^2}{n}) + \epsilon\\ y_i = \gamma*\frac{x_i - \mu}{\sigma} + \beta其中\gamma和\beta是可学习的参数

2.除了层归一化之外,还有RMSnorm,RMSnorm其实也是在layer norm的基础上进行改进的,具体公式如下:

\sigma = sqrt(\frac{\Sigma(x_i - \mu)^2}{n}) + \epsilon\\ y_i = \gamma*\frac{x_i}{\sigma} + \beta

12.Transformer层归一化的位置在哪里,有什么改进?(解决)

答案:Transformer层归一化的位置在注意力机制和FFN层之后,LLama模型的层归一化位置在注意力机制和FFN层之前

13.Transformer的注意力机制中,为什么要除以sqrt(d_k)?(解决)

答案:一方面是为了避免梯度消失,另一方面是为了归一化。

先解释避免梯度消失:在softmax函数而言,值越大,导数值越小,除以sqrt(d_k)之后,导数值相对变大。

再解释一下归一化,数学计算如下:条件:Q和K的均值为0,方差为1且Q和K相互独立;将矩阵Q分块为(q1,q2,...,q_d),同样将K也这样分块,(k1,k2...,k_d),在计算的时候Q*K^T = q1*k1 + q2*k2 + ... + q_d * k_d.,于是Var(Q*K^T / sqrt(d)) =  1(动手写一下就明白了,假设均值为0,方差为1,且QK独立是重要的)

为什么Q和K可以假设为独立的呢? 这就要追溯到QK是怎么得到的,Q = x * Wq K = x*Wk,这里x是常数,因为Wq和Wk是独立的,所以Q和K是独立的

所以就进行了所谓的归一化

14.Transformer中用的优化器是什么?有哪些其他的优化器?(解决)

答案:SGD,Adam,AdamW
SGD适用于简单的机器学习模型和深度学习模型;Adam适用于复杂,高维,噪声较大的任务;Adamw保留了Adam的优点的同时,又加上了正则化来避免过拟合。

15.介绍一下Transformer中的多头注意力机制的实现方式是什么样的?(解决)

答案:如果一句话有30个token,编码后的向量维数是(30,512),WQ,WK,WV是(512,512),那么Q,K,V是(30,512),然后分到八个头,每个头有64维,那么Q,K,V就是(8,30,64),然后Q,K做注意力机制的乘积,得到了(8,30,30),然后再做softmax之后和V相乘得到(8,30,64),然后再把八个头合起来,先变成(30,8,64),然后合起来(30,512).

如果一个batch有64句话,那么在维度的最前面加上64,例如(64,8,30,64),具体变换的意义也是很明显的

Step2:关于Transformer各层的实现(未解决)

注意:所有的零件都可以去网上找,来组装一个变形金刚,但是不要直接找一个变形金刚来用,自己动手组装一个,当然了,也可以自己修改零件

2.1:Encoder细节

2.2:Decoder细节

2.3:怎么用Transformer提升Kaggle平台的House_pricing竞赛?

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

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

相关文章

初步认识Linux系统

前言 Linux系统具有许多优点&#xff0c;不仅系统性能稳定&#xff0c;而且是开源软件。其核心防火墙组件性能高效、配置简单&#xff0c;保证了系统的安全。在很多企业网络中&#xff0c;为了追求速度和安全&#xff0c;Linux不仅仅是被网络运维人员当作服务器使用&#xff0c…

FreeRTOS互斥量

文章目录 一、互斥量的使用场合二、互斥量函数1、创建2、其他函数 三、示例: 优先级继承四、递归锁1、死锁的概念2、自我死锁3、函数 怎么独享厕所&#xff1f;自己开门上锁&#xff0c;完事了自己开锁。 你当然可以进去后&#xff0c;让别人帮你把门&#xff1a;但是&#xff…

Linux驱动入门实验班——步进电机模块驱动(附百问网视频链接)

目录 一、工作原理 二、接口图 三、真值表 四、编写思路 1.构造file_operations结构体 2.编写入口函数 3.编写出口函数 4.编写write函数 五、bug记录 六、源码 课程链接 一、工作原理 步进电机由定子和转子两部分组成。定子上有多组线圈&#xff0c;通常称为相&…

8.16 mysql读写分离架构+MyCAT实现读写分离

1、读写分离的目的 数据库负载均衡&#xff1a; 当数据库请求增多时&#xff0c;单例数据库不能够满足业务 需求。需要进行数据库实例的扩容。多台数据库同时相 应请求。也就是说需要对数据库的请求&#xff0c;进行负载均衡 但是由于数据库服务特殊原因&#xff0c;数据库扩容…

《SPSS零基础入门教程》学习笔记——05.模型入门

文章目录 5.1 回归模型5.2 分类模型5.3 降维和刻度模型5.4 生存分析和时间序列模型 5.1 回归模型 线性回归&#xff08;分析 -> 回归 -> 线性&#xff09;曲线估计&#xff08;分析 -> 回归 -> 曲线估计&#xff09; 二元Logistic回归&#xff08;分析 -> 回归…

Centos7主机带宽限速

需求&#xff1a;最近有两个主机经常把带宽打满。咨询了阿里云无法对内网网卡做限制。这边想使用linux默认的TC工具。 限速之前测试带宽。这时带宽有 168.4MB/s。 ]# scp filebeat-8.8.2-x86_64.rpm 172.116.47.54:/root/100% 26MB 168.4MB/s 00:00 1. 限制出站&#xff0…

数据结构入门——08排序

1.排序 1.1什么是排序 排序是一种操作&#xff0c;通过比较记录中的关键字&#xff0c;将一组数据按照特定顺序&#xff08;递增或递减&#xff09;排列起来。排序在计算机科学中非常重要&#xff0c;因为它不仅有助于数据的快速检索&#xff0c;还能提高其他算法的性能。 1…

PostgreSQL-03-入门篇-过滤数据

文章目录 1. WHEREWHERE 子句概述WHERE 子句示例1) 使用 WHERE 子句和等于运算符 () 示例2) 使用 WHERE 子句和 AND 运算符示例3) 使用 WHERE 子句和 OR 运算符示例4) 使用 WHERE 子句和 IN 运算符示例5) 使用 WHERE 子句和 LIKE 运算符示例6) 将 WHERE 子句与 BETWEEN 运算符一…

自动化运维---ansible

ansible是一种由Python开发的自动化运维工具&#xff0c;集合了众多运维工具&#xff08;puppet、cfengine、chef、func、fabric&#xff09;的优点&#xff0c;实现了批量系统配置、批量程序部署、批量运行命令等功能。 特点: 部署简单 默认使用ssh进行管理&#xff0c;基于py…

【LLM大模型论文日更】| 大型语言模型用于模拟搜索用户行为

论文&#xff1a;https://arxiv.org/pdf/2403.09142代码&#xff1a;未开源机构&#xff1a;中国人民大学高瓴人工智能研究院领域&#xff1a;信息检索发表&#xff1a;SIGIR2024 短文 Abstract 由于成本效益和可再现性方面的优势&#xff0c;用户模拟已成为信息检索系统面向用…

Python酷库之旅-第三方库Pandas(084)

目录 一、用法精讲 351、pandas.Series.str.isdigit方法 351-1、语法 351-2、参数 351-3、功能 351-4、返回值 351-5、说明 351-6、用法 351-6-1、数据准备 351-6-2、代码示例 351-6-3、结果输出 352、pandas.Series.str.isspace方法 352-1、语法 352-2、参数 3…

【 亿邦动力网-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …

钢铁百科:美标A633GrC材质分析、A633GrC正火状态、A633GrC材料性能

A633GrC钢板是一种美国ASTM标准的高强度低合金结构钢板&#xff0c;字母"A"代表钢&#xff08;Steel&#xff09;&#xff0c;数字"633"表示该材料的牌号&#xff0c;而"GrC"表示该材料为高强度低合金钢&#xff08;High Strength Low Alloy&…

wtv-next 宝塔更新教程

数据库升级办法 输入用户名密码&#xff0c;点执行 程序升级办法 文件后缀看清楚&#xff0c;是amd64、arm64。etc 目录下是配置文件&#xff0c;按照格式往下加就行。 回到刚才那个页面 先点停止&#xff0c;再点启动

【大模型部署及其应用 】RAG检索技术和生成模型的应用程序架构:RAG 使用 Meta AI 的 Llama 3

目录 RAG检索技术和生成模型的应用程序架构1. **基本概念**2. **工作原理**3. **RAG的优势**4. **常见应用场景**5. **RAG的挑战**6. **技术实现**参考RAG 使用 Meta AI 的 Llama 3亲自尝试运行主笔记本与文档应用聊天关键架构组件1. 自定义知识库2. 分块3. 嵌入模型4. 矢量数据…

GAMES104:08游戏引擎的动画技术基础-学习笔记

文章目录 一&#xff0c;动画技术简介动画技术的挑战 二&#xff0c;2D游戏动画技术2.1 精灵动画&#xff08;sprite animation&#xff09;2.2 Live2D 三&#xff0c;3D游戏动画技术3.1 基于层次的刚体动画3.2 顶点动画3.3 Morph Target Animation3.4 蒙皮动画3.4.1 2D蒙皮动画…

房产系统源码开发

一、开发需求&#xff1a; 信息录入与管理&#xff1a;系统需要支持各种数据的录入&#xff0c;这包括但不限于客户信息、房源信息、员工信息、合同信息和财务信息等。这些数据是房产系统的基础&#xff0c;对于后续的信息查询、分析和共享至关重要。信息查询与检索&#xff1…

Ports Number of field profile samples 参数设置

Ports Number of field profile samples 参数设置 正文正文 在进行 Port 仿真时,通常我们会对 port 端口中的光束模式进行设定,很多时候我们会遇到一个名为 Number of field profile samples 的参数,如下图所示: 如果去官方论坛查看解释,往往会被搞得云里雾里。这个参数…

什么是AR、VR、MR、XR?

时代背景 近年来随着计算机图形学、显示技术等的发展&#xff0c;视觉虚拟化技术得到了广泛的发展&#xff0c;并且越来越普及化&#xff0c;慢慢的也走入人们的视野。目前市场上视觉虚拟化技术的主流分为这几种 VR、AR、MR、XR。这几项技术并不是最近才出现的&#xff0c;VR的…