关于Transformer的面试题

文章目录

  • 前言
  • 1、Transformer模型
    • 1. 1 基本要点
    • 1.2 提升
  • 2、BN和LN的区别和联系
    • 2.1 基本要点
    • 2.2 扩展
  • 3、PreNorm和PostNorm的区别[链接](https://www.zhihu.com/question/519668254)
  • 4、Multi-head self-attention中为什么要用三个不同的矩阵


前言

Transformer大模型的一些问题


1、Transformer模型

1. 1 基本要点

  1. 由一个多头self-attention和一个FFN前馈网络组成
  2. 利用了残差网络结构,解决了快速收敛和梯度问题

    传统网络是通过层与层之间的连接传播信息,而残差连接则在层与层之间提供了一条直接的"捷径"。这种设计可以允许梯度在反向传播时更直接地传递回去,避免了梯度在深层网络中逐层传播时出现的衰减或爆炸问题。

  3. EncodeDecode 两种模式,encode中可以看到全部信息而decode中只能看到部分信息
  4. 在decode中的Multi-Head Attention用于信息融合(非必须),广泛用于多模态,机器翻译等场景

1.2 提升

  1. Attention的作用获取上下文信息,参数两不大;FFN的作用是存储知识。先获取上下文再存储知识
  2. 运算量大 n 2 n^2 n2 ,加速算法 kv-cache主要用在推理阶段

KV-Cache是一种专门针对Transformer模型设计的加速方法,它利用了Transformer自注意力机制的特性来减少冗余计算,从而提高推理效率。

a. 工作原理::在Transformer的自注意力计算过程中,查询(Query)需要与所有的键(Key)进行点积运算,得到注意力分数。而在推理时,输入序列是固定的,因 此对应的键(Key)和值(Value)也是固定的。KV-Cache就是预先计算并缓存这些固定的键和值,避免了重复计算的开销。具体来说,在模型推理时,它会:计算并缓存第一个token的键(Key)和值(Value)对后续的token,查询先与缓存的键计算注意力分数,再与缓存的值进行加权求和,完成自注意力的计算。

b. 优势:
减少重复计算,降低计算量,从而提高推理速度。
无需修改模型结构和训练过程,易于部署。
加速效果显著,尤其对长序列输入效果更加明显

c. 缺点:
需要额外的内存空间来缓存键和值。
无法加速模型训练,只能加速推理过程。
存在一些固定的内存开销,对短序列输入加速效果不太明显。

d. 应用场景:
KV-Cache加速方法主要应用于需要高效推理的Transformer模型场景,例如:
机器翻译: 在线翻译服务需要快速响应。
语音识别: 实时转录对低延迟有较高要求。
文本生成: 如新闻生成、对话系统等。
长序列输入: 当输入序列很长时,KV-Cache加速效果更加显著。
总的来说,KV-Cache是一种高效的Transformer推理加速方法,能够在一定程度上提升响应速度和吞吐量,但需权衡内存开销。对于对延迟和吞吐量要求较高的应用场景,KV-Cache是一个值得考虑的加速选择。

  1. Norm用的是LayerNorm不是BatchNorm layernorm和batch normal的区别

2、BN和LN的区别和联系

2.1 基本要点

  1. 都是用于对数据进行正规化,将输入数据归一至正态分布,加速收敛,提升训练的稳定性
  2. BN:一个batch的向量,同一维度的数据做归一化;LN:序列向量中,不同时刻的向量做正规化
  3. BN的缺点在于:数据变长无法处理,语义数据无法处理。所以有了LN

2.2 扩展

  1. 对于BN来说训练时存在batch的能够对每一批数据进行归一化,但是如果在推理的时候,就会使用在训练时的batch,即将训练时候的所有均值和方差统计下来求均值作为推理使用;缺点:训练时的数据分布和推理时的数据分布不一样导致推理结果产生差异
  2. 防止过拟合:(1)减少了内部协变量偏移(Internal Covariate Shift) 神经网络在训练过程中,每一层的输入数据分布会由于前一层参数的更新而发生变化,这种分布变化被称为内部协变量偏移。BN通过对每一层的输入进行归一化,使得数据分布保持相对稳定,从而加快收敛速度,提高训练效率。缓解了内部协变量偏移也有助于减轻过拟合。(2)BN 的使用使得一个 minibatch 中所有样本都被关联在了一起,因比网络不会从某一个训练样本中生成确定的结果,即同样一个样本的输出不再仅仅取决于样本的本身,也取决于跟这个样本同属一个 batch 的其他样本,而每次网络都是随机取 batch,这样就会使得整个网络不会朝这一个方向使劲学习。
  3. LN不依赖于序列的长度和输入sequence的长度。

3、PreNorm和PostNorm的区别链接

在这里插入图片描述

  1. post-norm在残差之后做归一化,对参数正则化的效果更强,进而模型的鲁棒性也更好
  2. pre-norm相对于post-norm,因为有一部分参数直接加在了后面,不需要对这部分参数进行正则化,正好可以防止模型的梯度消失和梯度爆炸
  3. 如果层数少post-norm会更好,但是层数多了就需要考虑梯度消失和梯度爆炸的影响,因此就需要使用pre-norm。
    在这里插入图片描述

4、Multi-head self-attention中为什么要用三个不同的矩阵

  1. 使用不同的矩阵,反映了将同意向量映射至不同的语义空间,从而提升了语义的表达能力
  2. 如果使用相同的矩阵,相同量级的情况下,q和k进行点积的值是最大的,进行softmax的加权平均后,该词所占的比重会最大,使得其他词的比重很少,无法有效利用上下文信息来增强当前词的语义表示,而使用不同的QKV,会很大程度上减轻上述的影响。

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

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

相关文章

【GEE实践应用】哨兵1号和2号数据叠加

目录 1.数据叠加代码 2.代码逐句解释 1.数据叠加代码 var geometry table; //table是我们提前导入的矢量数据 // 加载Sentinel-2影像 var sentinel2 ee.ImageCollection("COPERNICUS/S2").filterBounds(geometry) // geometry是你感兴趣区域的几何对象.filte…

Redis:发布和订阅

文章目录 一、介绍二、发布订阅命令 一、介绍 Redis的发布和订阅功能是一种消息通信模式,发送者(pub)发送消息,订阅者(sub)接收消息。这种功能使得消息发送者和接收者不需要直接建立连接,而是通…

商标没有去注册有哪些不好的影响!

有些商家咨询普推知产老杨,商标没有去注册有哪些不好的影响,其实对企业来说还有许多实际不利的影响,有时代价比注册一个商标要大很多。 想的商标名称没去注册商标,如果别人抢注拿下商标注册证,那就会涉及侵权&#xf…

工厂方法模式:解锁灵活的对象创建策略

在软件设计中,工厂方法模式是一种非常实用的创建型设计模式,它不仅提升了系统的灵活性,还简化了对象的创建过程。本文将详细探讨工厂方法模式的核心概念、实现方式、应用场景以及与其他设计模式的对比,旨在提供一份全面且实用的指…

磁悬浮鼓风机市场规模不断增长 我国行业发展面临挑战

磁悬浮鼓风机市场规模不断增长 我国行业发展面临挑战 磁悬浮鼓风机又称磁悬浮高速离心鼓风机,指基于磁悬浮技术制成的气体输送设备。磁悬浮鼓风机综合性能优良,属于高效节能磁悬浮动力装备,在众多领域需求旺盛。未来随着国家节能环保政策逐渐…

阿里云优惠口令2024最新

2024年阿里云域名优惠口令,com域名续费优惠口令“com批量注册更享优惠”,cn域名续费优惠口令“cn注册多个价格更优”,cn域名注册优惠口令“互联网上的中国标识”,阿里云优惠口令是域名专属的优惠码,可用于域名注册、续…

01—JavaScript概述

一、初识Javascript JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML(标…

python3面向对象

1、面向对象编程概述 面向对象编程(OOP)是一种编程范式,它以“对象”为核心,将数据和操作封装在对象中,通过类和对象来实现代码的组织和复用。在Python3中,面向对象编程是其重要的特性之一。 2、类与对象…

jsoncpp 编译和使用

原文链接: jsoncpp的编译和使用 jsoncpp 编译出库文件 1.从github仓库下载 2.下载 cmake 工具 3.生成VS项目 4.编译得到需要的库文件 jsoncpp 的使用 查看原文

JAVA基础05-数据包装类,JAVA常用类 介绍

目录 基本数据类型的包装类 定义 String是字符串类型 创建String类型的对象 返回指定索引处的 char 值 返回某字符在字符串中出现的索引 替换 返回此字符串的长度 测试此字符串是否以指定的前缀开始 返回一个新的字符串 大小写转换 拆分字符串 字符串的创建及比较…

基于Springboot的自习室预订系统

基于SpringbootVue的自习室预订系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录页 网站首页 公告信息 留言反馈 后台管理 学生信息管理 公告信息管理 留言…

SGI_STL空间配置器源码剖析(四)_S_refill函数

代码如下,解析已在注释中,下次再剖析_S_chunk_alloc函数和__nobjs变量的作用。 /* Returns an object of size __n, and optionally adds to size __n free list.*/ /* We assume that __n is properly aligned. __n校准过(向上临近8&#x…

postgis使用

1 postgreSQL 安装 下载:https://www.postgresql.org/ 2 postgis postgis 属于postgresql插件,安装pg时勾选上postgis 3. 导入shp数据 postgresql可以导入shp数据 4. postgis使用 https://postgis.net/workshops/postgis-intro/creating_db.html

入门:多层感知器Multiple-Layer Perceiver, MLP

本文将简单介绍多层感知器(MLP)的基本概念、原理和应用。MLP是一种前馈人工神经网络,由多层节点组成,每层节点通过权重和偏置与下一层节点相连。MLP在许多领域都有广泛的应用,如分类、回归、自然语言处理等。 本文将分…

Java --- Java语言基础

这个Java可是个好东西,是一门面对对象的程序设计语言,其语法很类似C,所以学过C的伙伴们就很好上手,另外Java对C进行了简化与提高,这个在后期学习会感受到,Java还有很多的类库API文档以及第三方开发包。 这…

Excel与项目管理软件比较?哪个是项目组合管理的最佳选择?

在定义和管理每个正在进行的项目的资源、任务、收益、风险和优先级时,项目组合管理已成为公司的战略要素。为了实现高效的项目组合管理,PMO 经理需要评估Excel 是否满足他们管理项目组合的需求,或者是否应该尝试不同的解决方案,例…

Linux IPC-Daemon: 工业级通信的守护者

引言 在Linux系统中,进程间通信(Inter-Process Communication, IPC)是系统编程的基础之一。IPC机制允许运行在同一个系统上的进程之间共享数据和信息。一个专门设计用于此任务的后台服务程序即为IPC-Daemon。这种守护进程在工业自动化、服务…

攻防演练作为红方,使用Metasploit模拟攻击

在安装Metasploit之后,你可以使用它来执行各种安全测试和模拟攻击。以下是如何使用Metasploit进行基本扫描和攻击的步骤: 1. 启动Metasploit 首先,打开终端并启动Metasploit控制台: msfconsole这个命令会启动Metasploit框架&am…

SRNIC、选择性重传、伸缩性、连接扩展性、RoCEv2优化(六)

参考论文SRDMA(A Scalable Architecture for RDMA NICs ):https://download.csdn.net/download/zz2633105/89101822 借此,对论文内容总结、加以思考和额外猜想,如有侵权,请联系删除。 如有描述不当之处&…

C语言每日一题(68)无重复字符的最长字串

题目链接 无重复字符的最长字串 题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的 最长连续子字符串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子字符串是 "abc",所以其长度为 3。示…