Transformer算法7个面试常见问题

news2024/11/6 3:00:47

1.Transformer为何使用多头注意力机制?(为什么不使用一个头)

英文论文中是这么说的:
Multi-head attention allows the model to jointly attend to information from different representation subspaces at different positions.
翻译:

多头注意使模型能够共同关注来自不同位置的不同表征子空间的信息。
直观上讲,多头的注意力有助于网络捕捉到更丰富的特征/信息。可以类比CNN中同时使用多个滤波器的作用。

举例:

       当你浏览网页的时候,你可能在颜色方面更加关注深色的文字,而在字体方面会去注意大的、粗体的文字。这里的颜色和字体就是两个不同的表示子空间。同时关注颜色和字体,可以有效定位到网页中强调的内容。使用多头注意力,也就是综合利用各方面的信息/特征。

2.对缩放因子的解释:

  • 1.为什么要除以一个缩放因子?
    (1)论文解释为:

    我们怀疑,对于很大的dk值,点积大幅度增长,将softmax函数推向具有极小梯度的区域。为了抵消这种影响,我们缩小点积。
    

(2)我们理解为:
因为softmax的本质是一个e为底的指数,会随着指数的变大变化率很明显,例如当点积为100,200,500,那么e的500次方会占绝对权重,从而影响结果不准确。

  • 2.那么要除以一个多大的缩放因子呢?

(1)论文脚注解释为:

为了说明点积变大的原因,假设q和k的分量是独立随机的均值为0和方差为1的变量。然后他们的点积                           均值为0,方差为dk

(2)我们理解为:
假设q和k的分量是独立随机的均值为0和方差为1的变量,也就是说qi和ki是均值为0和方差为1,那么qiki也是均值为0,方差为1。所以qk的均值为0,方差为dk。

WechatIMG27.png

3.Decoder阶段的多头自注意力和encoder的多头自注意力有什么区别?

答:Decoder有两层mha,encoder有一层mha,Decoder的第二层mha是为了转化输入与输出句长,Decoder的请求q与键k和数值v的倒数第二个维度可以不一样,但是encoder的qkv维度一样。

4.Transformer的并行化提现在哪个地方?

答:Transformer的并行化主要体现在self-attention模块,在Encoder端Transformer可以并行处理整个序列,并得到整个输入序列经过Encoder端的输出,但是rnn只能从前到后的执行

5.Decoder端可以做并行化吗?

训练的时候可以,但是交互的时候不可以

6.bert的mask为何不学习transformer在attention处进行屏蔽score的技巧?

答:BERT和transformer的目标不一致,bert是语言的预训练模型,需要充分考虑上下文的关系,而transformer主要考虑句子中第i个元素与前i-1个元素的关系。

7、简单介绍一下Transformer的位置编码?有什么意义和优缺点?

     Transformer 模型的核心是自注意力机制,它允许模型在处理序列数据时考虑序列中所有位置的信息。然而,传统的循环神经网络(RNN)和长短期记忆网络(LSTM)等模型能够自然地处理序列数据的时间信息,因为它们在处理序列时会逐个元素地传递状态。Transformer 模型则需要一种机制来模拟这种时间信息,这就是位置编码(Positional Encoding)的作用。
位置编码的意义:
1.时间信息的引入:位置编码为模型提供了序列中每个元素的位置信息,使得模型能够区分序列中的不同位置。
2.保持序列顺序:在自注意力机制中,位置编码帮助模型保持输入序列的顺序性,这对于理解语言结构至关重要,
位置编码的方法:
在原始的 Transformer 论文中,位置编码是通过以下方式添加到词嵌入(Word Embedding)中的:

其中,pos是词在序列中的位置,i是维度索引,dmodel 是模型的维度大小。这种方式生成的位置编码是固定的,并且随着位置的增加,编码的周期性变化。

优缺点:
优点:
灵活性:位置编码允许模型在处理不同长度的序列时保持灵活性
并行化:由于位置编码是预先定义的,它可以与词嵌入一起并行处理,这提高了模型的计算效率。
缺点:
固定模式:位置编码是预先定义的,可能不会很好地适应所有类型的序列数据。可解释性:位置编码的周期性模式可能不如 RNN 中的递归状态直观,这可能会影响模型的可解释性。
随着研究的发展,出现了一些改进的位置编码方法,例如相对位置编码(RelativePositionaEncoding),它通过考虑词与词之间的相对位置关系来增强模型对序列的理解能力。这些方法在某些任务中显示出比传统位置编码更好的性能。

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

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

相关文章

AtCoder Beginner Contest 373(ABCDEF 题)视频讲解

A - September Problem Statement There are 12 12 12 strings S 1 , S 2 , … , S 12 S_1, S_2, \ldots, S_{12} S1​,S2​,…,S12​ consisting of lowercase English letters. Find how many integers i i i ( 1 ≤ i ≤ 12 ) (1 \leq i \leq 12) (1≤i≤12) satisfy …

【line features】线特征(2)

【line features】线特征(2) 1. line features实现原理1. **初始化与参数设置**:2. **图像读取**:3. **线特征检测**:4. **线特征描述子计算**:5. **特征匹配**:6. **匹配结果可视化**&#xff…

递归算法介绍和【题解】——数楼梯

递归算法介绍和【题解】——数楼梯 1.递推算法介绍2.数楼梯题目描述输入格式输出格式输入输出样例输入 #1输出 #1 提示 1.思路解析2.AC代码 1.递推算法介绍 有些目标是宏大的,比如如果你想找到一个好工作,需要先把面试通过。要把面试通过,就需…

c++11~c++20 结构化绑定

结构化帮绑定可以作用于3中类型 一、原生数组类型 结果: 备注:绑定到原生数组所需条件仅仅是要求别名的数量于数组元素的个数一致,这里的x,y,z分别绑定到a[0],a[1],a[2] 二、绑定到结构体和类对象 结果:…

C99中的变长数组

在C99标准之前,从语言在创建数组的时候,指定数组的大小只能使用常量和表达式,或者数据初始化的时候,可以省略数组大小。 1.int arr[5]{1,2,3,4,4}; 2.int arr[24]{1,2,3,4,5,6}; 3.int arr[]{1,2,3,3,4,5,6}; 这样的语法限制不够灵…

新疆阿克苏地区新和县召开2024年重大项目高质量发展推进会

五一水库及生态修复产业融合发展等14个项目动工兴建 9月29日,新疆阿克苏地区新和县举行2024年重大项目高质量发展推进会上,五一水库生态修复暨产业融合发展重点项目等14个项目正式动工兴建。 据了解,此次开工的14个项目,总投资17…

LPDDR4芯片学习(二)——Functional Description

一、LPDDR4寻址表 以每个die容量为4GB为例: Memory density(per channel) 2Gb:每个通道大小为2Gb,一个die有两个通道Configuration 16Mb 16DQ 8 banks 2 channels :16Mb的寻址空间16位每个channels8个bank*每个die两channels。1…

电影《749局》酷燃首映 苗苗神秘感大片释出氛围感拉满

2024 年 9 月 30 日,电影《749 局》在北京举办首映礼,导演陆川携主创王俊凯、苗苗、郑恺、任敏、李晨、杨皓宇出席,演员苗苗在片中饰演 749 局成员夏婳,这个角色天赋异禀,拥有特殊异能,为影片增添一抹神秘色…

从异步传染浅谈代数效应

如果你经常使用并且关注React,你一定会在不少地方见过"代数效应"(algebra effect) 这个抽象概念。可能是翻译和过度学术的缘故,我看了很多文章才大致理解,在这里简单记录一下。 try/catch & try/handle 你一定使用…

通信工程学习:什么是CSMA/CD载波监听多路访问/冲突检测

CSMA/CD:载波监听多路访问/冲突检测 CSMA/CD(Carrier Sense Multiple Access/Collision Detect),即载波监听多路访问/冲突检测,是一种用于数据通信的介质访问控制协议,广泛应用于局域网(特别是以…

SQL增删查改操作

目录 数据库概述 SQL基础操作 SQL通用语法 数据类型 SQL语句的分类 DDL(数据库定义,表定义,字段定义) 数据库操作 表操作 DDL小结 DML(数据的增删改,数据操作语言) DQL(查询) DQL小节 数据库概述 数据库,顾名思义就是用来存储和管理数据的,我们平时所使用的各大软…

养老院管理系统(含源码+sql+视频导入教程+文档)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 养老院管理系统拥有两种角色:管理员和护工 管理员:用户管理、老人信息管理、事故记录管理、入住费用管理、护工薪资管理、护工请假管理、床位管理、请假管理等 护…

消息中间件:RabbitMQ

消息中间件:RabbitMQ 前言安装Window安装Linux安装 管理页面什么是RabbitMQ?入门基本概念简单队列工作队列(Work Queues)发布/订阅(Publish/Subscribe)临时队列 路由(Routing)主题&a…

NanoDet安装教程

目录 1.安装NanoDet 1.1官网下载NanoDet 1.2 创建虚拟conda环境 1.3安装Pytorch库 2.侦测 3.训练 3.1yml文件修改 3.训练 3.1yml文件修改 轻量级模型 NanoDet-m 目标检测框架: YOLO 、 SSD 、 Fast R-CNN 等模型 ;但模型太大,不适合移植到移…

HTTP状态码全解

文章目录 常见状态码1XX Informational(请求正在处理)2XX Success(请求成功)3XX Redirection(重定向)4XX Client Error(客户端错误)5XX Server Error(服务器错误&#xf…

ros2安装完成后重要的一步

安装完成ros2之后,每次打开新的终端都需要 source /opt/ros/humble/setup.bash 为了解决这个为题,我们需要做如下操作,避免每次打开一个新的在终端都要设置。 在文件的最后一行添加 source /opt/ros/foxy/setup.bash

浸没式密封连接器

在当今科技快速发展的背景下,电子设备的整合度与性能需求持续提高,而连接技术作为电子设备间交互的关键,其重要性显而易见。在各式各样的连接技术当中,浸没式密封连接器凭借其独到设计和高超性能,在特定使用环境中显示…

学习经验分享【38】YOLOv11解读——最新YOLO版本

YOLO算法更新速度很快,已经出到V11版本,后续大家有想发论文或者搞项目可更新自己的baseline了。后续将改进YOLOv11算法,有需要的朋友可关注,我会持续进行更新。 YOLO11是Ultralytics YOLO系列实时目标检测器的最新迭代版本&#x…

《Linux从小白到高手》理论篇(七):Linux的时间管理运行级别启动过程原理详解

List item 本篇将介绍Linux的时间管理&运行级别相关知识,并将深入介绍Linux的启动过程及原理。 Linux的时间管理 Linux 时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称 RTC)时钟。系统时…

STM32CubeMX创建STM32H743工程

1、下载安装STM32CubeMX STM32CubeMX是STM32Cube工具家族中的一员,从MCU/MPU选型,引脚配置,系统时钟以及外设时钟设置,到外设参数配置,中间件参数配置,它给STM32开发者们提供了一种简单,方便&a…