【NLP 面经 7、常见transformer面试题】
目录
1. 为何使用多头注意力机制?
2. Q和K使用不同权重矩阵的原因
3. 选择点乘而非加法的原因
4. Attention进行scaled的原因
5. 对padding做mask操作
6. 多头注意力降维原因
7. Transformer Encoder模块简介
8. 乘以embedding size的开方的意义
9. 位置编码
10. 其他位置编码技术
11. Transformer中的残差结构及其意义
12. LayerNorm与BatchNorm
13. BatchNorm介绍
14. Transformer的前馈神经网络
15. Encoder与Decoder的交互
16. Decoder自注意力与Encoder的区别
17. Transformer的并行化
18. WordPiece Model与Byte Pair Encoding
19. Transformer训练中的学习率与Dropout
20. BERT与Transformer attention屏蔽技巧
你最擅长说狠话,然后转身就流泪
—— 25.4.5
1. 为何使用多头注意力机制?
多头注意力机制使得模型能够并行处理信息的不同方面,每个头可以专注于输入序列的不同位置或特征,从而捕捉更丰富、更细腻的上下文依赖。单头注意力虽然也能捕捉序列间的关系,但其关注范围相对有限。多头机制提高了模型的表达能力,相当于模型可以“多视角”地审视输入数据,每个多头可以学习到不同类型的注意力模式,共同提升整体性能。
2. Q和K使用不同权重矩阵的原因
Q(查询)和K(键)使用不同的权重矩阵是因为这样能够增加模型的非线性表达能力,允许模型从不同角度(或维度)分别编码查询和键的信息。如果Q和K共享相同的权重矩阵,则它们会生成相同或高度相关的向量空间表示,限制了模型识别不同模式的能力。不同矩阵生成的Q和K进行点乘,可以更灵活地衡量不同部分输入之间的相关性。
3. 选择点乘而非加法的原因
点乘在计算复杂度上与加法相似,但在效果上,点乘能够更好地捕捉向量间的相似度,因为它考虑了元素级别的乘积,这在数学上等价于内积,可以衡量两个向量的“方向”一致性。而加法则更多反映的是两个向量的总“大小”。在注意力机制中,我们关心的是向量间关系的密切程度,因此点乘更适合。
4. Attention进行scaled的原因
除以 dk 是为了避免点积的结果因向量长度的增加而过分放大,导致softmax函数在计算概率分布时出现梯度消失或饱和问题。这有助于模型训练更加稳定,尤其是在维度较大的情况下。公式上, Attention(Q,K,V)=softmax(QKTdk)V ,其中, dk 是分母的缩放因子。
5. 对padding做mask操作
在计算attention score时,可以为padding位置的值设置为非常小的负数(如-1e9),这样经过softmax后,这些位置的权重接近0,即在计算上下文表示时忽略padding位置的影响。
6. 多头注意力降维原因
每个头进行降维是为了在不增加过多计算成本的前提下,允许模型探索更多的注意力子空间。多个低维头相比于单个高维头,可以在同样计算资源下学习更丰富的特征组合。
7. Transformer Encoder模块简介
Encoder由多个相同的层堆叠而成,每一层包括Self-Attention子层和一个前馈神经网络(FFN)子层,两侧均有残差连接和Layer Normalization。Self-Attention帮助捕获输入序列的长距离依赖,FFN引入非线性,增强模型表达能力。
8. 乘以embedding size的开方的意义
在输入词嵌入后乘以 dmodel 主要是为了初始化时调整词向量的尺度,使其初始分布更为合理,避免训练初期的爆炸或消失梯度问题,提高模型训练的稳定性。
9. 位置编码
位置编码是为了让Transformer能够理解序列中元素的位置信息,因为Transformer架构本身不包含循环或卷积结构,无法直接捕获位置信息。位置编码通过在词嵌入上添加特定模式的向量来实现,这些模式通常是正弦和余弦函数的组合,能区分不同位置的输入。
10. 其他位置编码技术
绝对位置编码:如上述,直接添加到词嵌入中。
相对位置编码:仅编码词对之间的相对距离,更灵活,常用于Transformer-XL等模型中。
** Rotary Positional Embedding**:提出于RoPE,旋转式位置编码,利用复数旋转矩阵动态调整词嵌入,保持位置信息的相对性,适合长序列任务。
11. Transformer中的残差结构及其意义
残差连接允许信息直接跳过复杂的子层(如Self-Attention和FFN),直接传递到下一层,减轻了梯度消失问题,加速了模型收敛,并且增加了模型深度,提高表达能力。
12. LayerNorm与BatchNorm
LayerNorm在Transformer中用于每个样本的每个特征维度上标准化,保证了不同层间输入的分布一致,适用于Transformer这种没有固定批量大小(尤其是解码器自注意力时)和顺序无关的场景。
LayerNorm一般置于每个子层的输入或输出端,有助于训练稳定性和速度。
BatchNorm基于整个batch的数据进行标准化,不适合Transformer这类序列到序列模型,因其依赖于固定长度的批次。
13. BatchNorm介绍
BatchNorm在训练时对每个mini-batch的数据进行标准化,减少内部协变量偏移,加速收敛,提高模型泛化能力。缺点包括增加了训练时间,对小批量数据效果不佳,且不适用于RNN等序列模型。
14. Transformer的前馈神经网络
Transformer的FFN通常包含两个线性变换层,中间夹着ReLU或GELU激活函数。这种结构引入非线性,增强了模型的表达能力。GELU相比ReLU,具有更好的非线性表达和光滑性,有助于模型学习更复杂的特征。
15. Encoder与Decoder的交互
Encoder和Decoder通过编码器-解码器注意力(Encoder-Decoder Attention)机制交互。在Decoder阶段,每个位置的单词不仅关注自身序列内的其他单词(自注意力),还关注Encoder的输出,从而在生成目标序列时考虑源序列的全局信息。
16. Decoder自注意力与Encoder的区别
Decoder的多头自注意力机制在训练时需要加入“未来遮挡”(sequence mask),确保在生成当前位置的输出时,模型只能看到过去的位置信息,不能看到未来的信息,符合自然语言的生成逻辑,避免信息泄露。
17. Transformer的并行化
Transformer模型设计上天然支持并行计算,特别是在自注意力和前馈网络层。由于其计算可以被拆分为独立的向量运算,非常适合GPU等并行计算硬件。Decoder端虽然在自注意力层受到序列依赖的限制,但除自注意力外的其它部分仍可并行化。
18. WordPiece Model与Byte Pair Encoding
WordPiece: 是一种文本分词方法,将文本切分成一系列有意义的子词单元。广泛应用于BERT等模型,有利于处理罕见词汇。
Byte Pair Encoding (BPE): 通过统计文本中最频繁出现的字符对来构建词汇表。随着迭代,新的符号是由最频繁出现的字符对组成。适用于多种语言,包括稀有语种。
19. Transformer训练中的学习率与Dropout
学习率:通常采用预热(warmup)策略,初期缓慢增加,之后按预定策略衰减,如线性衰减或余弦退火,以平衡初期的快速学习和后期的精细调整。
Dropout:在训练期间随机“丢弃”一部分神经元,防止模型过度拟合。通常设置在0.1至0.5之间,应用在全连接层和自注意力输出。测试时不需要使用Dropout,以得到确定性的输出。
20. BERT与Transformer attention屏蔽技巧
BERT在训练过程中使用了Masked Language Model任务,但它并未直接在注意力机制上进行屏蔽操作。这是因为BERT主要关注于如何从掩码输入中预测缺失的token,而Transformer的自注意力机制中加入的mask是用来确保解码器生成时只依赖于过去的上下文,这是两种不同的应用场景和目的。
相关文章:
【NLP 面经 7、常见transformer面试题】
目录 1. 为何使用多头注意力机制? 2. Q和K使用不同权重矩阵的原因 3. 选择点乘而非加法的原因 4. Attention进行scaled的原因 5. 对padding做mask操作 6. 多头注意力降维原因 7. Transformer Encoder模块简介 8. 乘以embedding size的开方的意义 9. 位置编码 10. 其…...
在js中数组相关用法讲解
数组 uniqueArray 简单数组去重 /*** 简单数组去重* param arr* returns*/ export const uniqueArray <T>(arr: T[]) > [...new Set(arr)];const arr1 [1,1,1,1 2, 3];uniqueArray(arr); // [1,2,3]uniqueArrayByKey 根据 key 数组去重 /*** 根据key数组去重* …...
第四章 react-redux,@reduxjs/toolkit依赖,学习
redux系列文章目录 第一章 简单学习redux,单个reducer 第二章 简单学习redux,多个reducer 第三章 redux和react-redux,reduxjs/toolkit依赖结合使用 第五章 两张图告诉你redux常使用的api有哪些 前言 本章将使用react-redux,reduxjs/toolkit依赖创…...
雅思7分听说读写专项书籍推荐
对于目标 7分以上的雅思考生(中高级水平),选对资料真的事半功倍。 下面按照 听力、阅读、写作、口语、综合书籍 五大类来分别列举高分推荐书籍,每本书包括:适合人群、核心内容、推荐理由,并贴合7分目标。 …...
C++容器使用说明
C标准库提供了多种容器,分为序列容器、关联容器、无序关联容器、容器适配器及其他相关类型。以下是所有标准容器的分类及简要说明: 1. 序列容器(Sequence Containers) 按线性顺序存储元素,支持随机或顺序访问。 vecto…...
Python-函数
1. 函数基础 1.1 定义函数 在Python中,使用def关键字来定义函数: def greet():"""简单的问候函数"""print("Hello, World!")1.2 调用函数 定义函数后,可以通过函数名加括号来调用: …...
【Redis】数据的淘汰策略
目录 淘汰策略方案(8种) LRU和LFU策略的区别 使用建议 手搓LRU算法 方式一 方式二 大家好,我是jstart千语。今天和大家回来聊一下redis,这次要讲的是它的淘汰策略。为什么需要淘汰策略呢,就是当redis里面的内存占…...
第七章:从类库到服务的分布式基石_《凤凰架构:构建可靠的大型分布式系统》
第七章:从类库到服务的分布式基石 一、服务发现(Service Discovery) 核心目标:解决分布式系统中服务实例动态变化时如何定位可用服务的问题。 1. 服务发现的意义 动态环境挑战: 微服务架构中,服务实例的…...
spring-ai-alibaba第九章使用Milvus构建大模型RAG应用
1、pom文件 <dependencies><dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-alibaba-starter</artifactId><version>${spring-ai-alibaba.version}</version></dependency><dependency&g…...
手撕LLM(一):从源码出发,探索LLM推理全流程
2025年,大模型爆发元年,各种各样的大模型、框架、工具层出不穷,不断刷新人们应用大模型的门槛,短短10行代码,就能完成“加载模型加载数据集推理强化学习”的全流程训练,但其底层的运行机制也被高度抽象的接…...
讯飞语音听写(流式版)开发指南
语音交互大模型的功能越来越受到重视。讯飞语音听写(流式版)为开发者提供了一种高效、准确的语音识别解决方案。本文将基于 Home.vue、iat_xfyun.js 和 sparkChat.js 这三个文档,详细阐述讯飞语音听写(流式版)的开发逻…...
P3654 First Step (ファーストステップ)
题目描述 可是……这个篮球场,好像很久没有使用过的样子啊…… 里面堆满了学校的各种杂物呢…… 我们 Aqours 的成员要怎么在里面列队站下呢? 我们浦之星女子学院的篮球场是一个 R 行 C 列的矩阵,其中堆满了各种学校的杂物 (用 # 表示)&a…...
MySQL篇(六)MySQL 分库分表:应对数据增长挑战的有效策略
MySQL篇(六)MySQL 分库分表:应对数据增长挑战的有效策略 MySQL篇(六)MySQL 分库分表:应对数据增长挑战的有效策略一、引言二、为什么需要分库分表2.1 性能瓶颈2.2 存储瓶颈2.3 高并发压力 三、分库分表的方…...
SonarQube 配置SQL Server 数据库遇到的问题
之前本机跑了一套SonarQube的社区版,默认使用的是H2数据库,那么我把它练到我机器上的SQL Server数据库了,期间遇到以下两个问题,并在配置过程中解决掉,特将这个过程记录下来。 一、JDBC连接SQL Server问题 1. 问题出…...
23种设计模式-行为型模式-备忘录
文章目录 简介问题解决代码关键实现要点功能扩展方向 总结 简介 备忘录是一种行为设计模式, 允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。 问题 假如你正在开发一款文字编辑器应用。你想加入撤销功能。你可以采用直接的方式来实现: 程序在执行任…...
IDEA/WebStrom操作之commit前批量清除console.log()与debugger
前言: 在前端开发过程中,往往需要频繁用到console.log()与debugger,来观察数据具体情况以及断点调试。在经历了水生火热的开发动作后,往往会残留一地console.log()和debugger,若开发者还得手动在多个文件中一个个去除…...
每日算法-250405
34. 在排序数组中查找元素的第一个和最后一个位置 题目 思路 本题的核心思路是二分查找。 解题过程 问题分析:在一个升序排列的数组中查找一个目标值 target 的起始和结束位置。这是一个典型的二分查找应用场景。核心转换:题目要求找到 target 的第一个…...
设计模式简述(四)模板方法模式
模板方法模式 描述基本定义使用 描述 当一系列业务的基本流程是相同的,对于不同的业务可以在各自子类实现 所谓模板方法指的就是父类中固定的那部分代码 其实这里的思想和前面设计原则中开闭原则的描述是一致的,父类中的模板代码就是稳定的部分&#x…...
论文修改时有哪些需要注意的问题?
论文修改是学术写作中不可或缺的环节,直接影响成果的专业性和说服力。许多作者因忽略细节或急于定稿,导致论文质量大打折扣。那么,如何修改才能提升论文的严谨性与可读性呢? 一、逻辑结构 论文修改时,先从头到尾通读…...
JAVA阻塞队列
目录 一、什么是阻塞队列?特点是什么? 二、阻塞队列的两种创建方式: 1、使用 ArrayBlockingQueue<>( ) : 2、使用 LinkedBlockingQueue<>( ) : 三、阻塞队列方法的使用: 阻塞队列关键的两个方法&…...
tomcat与spring-web
文章目录 SpringServletContainerInitializerWebApplicationInitializerWebApplicationInitializer接口AbstractContextLoaderInitializer抽象类AbstractDispatcherServletInitializer抽象类AbstractAnnotationConfigDispatcherServletInitializer抽象类 WebApplicationContext…...
将电脑控制手机编写为MCP server
文章目录 电脑控制手机后,截屏代码复习MCP server构建修改MCP的config文件测试效果困惑电脑控制手机后,截屏代码复习 def capture_window(hwnd: int, filename: str = None) -> dict:""&...
[ctfshow web入门]burpsuite的下载与使用
下载 吾爱破解网站工具区下载burpsuite https://www.52pojie.cn/thread-1544866-1-1.html 本博客仅转载下载链接,下载后请按照说明进行学习使用 打开 配置 burpsuite配置 burpsuite代理设置添加127.0.0.1:8080 浏览器配置 如果是谷歌浏览器,打开win…...
文章记单词 | 第25篇(六级)
一,单词释义 mathematical:形容词,意为 “数学的;数学上的;运算能力强的;关于数学的”trigger:名词,意为 “(枪的)扳机;(炸弹的&…...
讯飞语音合成(流式版)语音专业版高质量的分析
一、引言 在现代的 Web 应用开发中,语音合成技术为用户提供了更加便捷和人性化的交互体验。讯飞语音合成(流式版)以其高效、稳定的性能,成为了众多开发者的首选。本文将详细介绍在 Home.vue 文件中实现讯飞语音合成(流…...
【MediaPlayer】基于libvlc+awtk的媒体播放器
基于libvlcawtk的媒体播放器 libvlc下载地址 awtk下载地址 代码实现libvlc相关逻辑接口UI媒体接口实例化媒体播放器注意事项 libvlc 下载地址 可以到https://download.videolan.org/pub/videolan/vlc/去下载一个vlc版本,下载后其实是vlc的windows客户端࿰…...
复古未来主义屏幕辉光像素化显示器反乌托邦效果PS(PSD)设计模板样机 Analog Retro-Futuristic Monitor Effect
这款模拟复古未来主义显示器效果直接取材于 90 年代赛博朋克电影中的黑客巢穴,将粗糙的屏幕辉光和像素化的魅力强势回归。它精准地模仿了老式阴极射线管显示器,能将任何图像变成故障频出的监控画面或高风险的指挥中心用户界面。和……在一起 2 个完全可编…...
Kafka 如何保证消息有序性?
Kafka 保证消息顺序性,是基于 Partition(分区)级别的顺序 来实现的。下面我们详细拆解一下: ✅ 同一个 Partition 内,消息是严格有序的 Kafka 在 同一个分区(Partition)内,消息是按…...
【积木画】——第十三届蓝桥杯(2022)T7思路解析
题目描述 关键词 递推、dp 思路 显然这是一道递推题。 但是为什么我还要写在这呢?因为我虽然看了题解但是还是没想明白,综合了下面两篇 参考文献我才初步理解这题的精髓。所以还是自己写一遍为好。 我们把最终结果记为F(n)。 情况1 直接以一个竖着…...
Android studio xml布局预览中 Automotive和Autotive Distant Display的区别
在 Android Studio 中,Configure Hardware Profile 设置中的 Device Type 选项有两个不同的设置:Android Automotive 和 Android Automotive Distant Display,它们的含义和用途如下: 1. Android Automotive 含义:这个…...
第十三章:持久化存储_《凤凰架构:构建可靠的大型分布式系统》
第十三章 持久化存储 一、Kubernetes存储设计核心概念 (1)存储抽象模型 PersistentVolume (PV):集群级别的存储资源抽象(如NFS卷/云存储盘)PersistentVolumeClaim (PVC):用户对存储资源的声明请求&#…...
Nginx 基础使用(2025)
一、Nginx目录结构 [rootlocalhost ~]# tree /usr/local/nginx /usr/local/nginx ├── client_body_temp # POST 大文件暂存目录 ├── conf # Nginx所有配置文件的目录 │ ├── fastcgi.conf # fastcgi相…...
Docker基础1
本篇文章我将从系统的知识体系讲解docker的由来和在linux中的安装下载 随后的文章会介绍下载镜像、启动新容器、登录新容器 如需转载,标记出处 docker的出现就是为了节省资本和服务器资源 当企业需要一个新的应用程序时,需要为它买台全新的服务器。这样…...
【奇点时刻】GPT4o新图像生成模型底层原理深度洞察报告
个人最近一直在关注openai的新图像生成特性,以下内容基于现阶段社区及研究者们对 GPT-4O 图像生成功能的公开测试、逆向分析与技术推测综合而成,OpenAI 并未正式发布完整的技术报告,因此本文为非官方推断总结。但从多方信息与技术背景出发&am…...
Java的Selenium的特殊元素操作与定位之模态框
Modal Dialogue Box,又叫做模式对话框,是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。如单击【确定】或【取消】按钮等将该对话框关闭。 alert(警告) //访问本地的HTML文件 chromeDr…...
回归预测 | Matlab实现NRBO-Transformer-LSTM多输入单输出回归预测
回归预测 | Matlab实现NRBO-Transformer-LSTM多输入单输出回归预测 目录 回归预测 | Matlab实现NRBO-Transformer-LSTM多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.【JCR一区级】Matlab实现NRBO-Transformer-LSTM多输入单输出回归预测…...
Python菜鸟教程(小程序)
目录 一.简易计算器 二.学生成绩分级 三.密码设置 四.作业选择 点赞收藏,评论支持 一.简易计算器 print(-------使用的运算符-------\n) print(1.加号) print(2.减号) print(3.乘号) print(4.除号) Aint(input(请输入第一个数: )) Bint(input(请输入第二个数: )) Fi…...
类的(多态性、虚函数)基础练习
练习1:(简单) #include <iostream> using namespace std; class Vehicle { public: virtual void run() const0; }; class Car: public Vehicle { public: void run() const { cout << "run a car. "<<…...
特殊的质数肋骨--dfs+isp
1.dfs全排列组数,an记得还原 2.如果范围确定且只比较质数,isp比线性筛快,主要这个范围太大了 https://www.luogu.com.cn/problem/P1218 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typed…...
智能体开发实战指南:提示词设计、开发框架与工作流详解
在大语言模型(LLM)驱动的智能体(Agent)快速发展的今天,构建一个实用、智能的Agent已不再遥不可及。无论你是开发法律助手、租房合同分析器,还是通用办公自动化助手,理解提示词工程(P…...
jetson orin nano学习(torch+OpenCV+yolov5+)
一:入门第一件事:跟着商家教程配置哈哈 指令:nvidia-smi -h 帮助命令 sudo jtop --查看nvidia的gpu状态 Tip:教程下载的pytorth,cuda,cudnn版本不一定是你项目符合的,要提前想好 1.2 安装虚拟环境包(要安…...
client-go如何监听自定义资源
如何使用 client-go 监听自定义资源 在 Kubernetes 中使用 client-go 监听自定义资源(Custom Resource,简称 CR)需要借助 Dynamic Client 或 Custom Informer,因为 client-go 的标准 Clientset 只支持内置资源(如 Pod…...
【51单片机】3-3【定时器/计数器/中断】超声波测距模块测距
1.硬件 51最小系统超声波测距模块 2.软件 #include "reg52.h"//距离小于10cm,D5亮,D6灭,反之相反现象sbit D5 P3^7;//根据原理图(电路图),设备变量led1指向P3组IO口的第7口 sbit D6 P3^6;//根据原理图&…...
C语言求3到100之间的素数
一、代码展示 二、运行结果 三、感悟思考 注意: 这个题思路他是一个试除法的一个思路 先进入一个for循环 遍历3到100之间的数字 第二个for循环则是 判断他不是素数 那么就直接退出 这里用break 是素数就打印出来 在第一个for循环内 第二个for循环外...
金仓数据库KCM认证考试介绍【2025年4月更新】
KCM(金仓认证大师)认证是金仓KES数据库的顶级认证,学员需通过前置KCA、KCP认证才能考KCM认证。 KCM培训考试一般1-2个月一次,KCM报名费原价为1.8万,当前优惠价格是1万(趋势是:费用越来越高&…...
leetcode每日一题:替换子串得到平衡字符串
引言 今天的每日一题原题是1863. 找出所有子集的异或总和再求和,比较水,直接对于集合中的每一个元素,都有取或者不取2种情况,直接递归进去求和即可。更换成前几天遇到的更有意思的一题来写这个每日一题。 题目 有一个只含有 Q,…...
2025年数字化社会与智能计算国际学术会议 (ICDSIC 2025)
基本信息 官网:www.icdsic.net 时间:2025年4月18-20日 地点:中国-深圳 主题 数字化社会 智能计算 数字化制造、经济 数字化政务、转型 数字化农业、水利、管理 数字化医疗、学习、社区 数字基建、通信、交通 数字…...
BN测试和训练时有什么不同, 在测试时怎么使用?
我们来彻底搞懂 Batch Normalization(BN) 在训练和测试阶段的区别,以及 测试时怎么用。 🧠 一句话总结: 训练时:使用 当前 mini-batch 的均值和方差 测试时:使用 整个训练集估计的“滑动平均均值…...
为什么卷积神经网络适用于图像和视频?
我们常听说“卷积神经网络(CNN)擅长图像和视频”,但其实 CNN 的核心本质远不止图像领域。我们先搞懂它为啥适合图像/视频。 🧠CNN 为什么适用于图像和视频? 主要因为 图像/视频具有空间局部性和结构平移性,…...
python爬虫:DrissionPage实战教程
如果本文章看不懂可以看看上一篇文章,加强自己的基础:爬虫自动化工具:DrissionPage-CSDN博客 案例解析: 前提:我们以ChromiumPage为主,写代码工具使用Pycharm(python环境3.9-3.10) …...