Self Attention
目录一、什么是自注意力机制二、自注意力的计算步骤以单个头为例步骤 1生成 Q、K、V 向量步骤 2计算注意力分数Attention Scores步骤 3应用 Softmax 得到注意力权重步骤 4加权求和 Value代码实现PyTorch三、为什么自注意力优于 RNN四、多头注意力Multi-Head Attention五、现代优化FlashAttention 与 SDPA六、自注意力的应用场景七、总结​​​​​​​一、什么是自注意力机制自注意力机制Self-Attention 是 Transformer 模型的核心组件它允许模型在处理序列数据如文本、语音时动态地关注序列中不同位置之间的相关性。核心思想“当前词应该关注序列中的哪些词”比如在句子 “The cat sat on the mat” 中“mat” 和 “cat” 语义相关自注意力会让 “mat” 更加关注 “cat”。二、自注意力的计算步骤以单个头为例假设输入是一个序列的向量表示,其中 n 是序列长度d 是向量维度。步骤 1生成 Q、K、V 向量通过三个可学习的权重矩阵将输入 X 映射为Query查询Key键KXWValue值VXW 类比搜索引擎Query你在搜什么Key网页的关键词Value网页的实际内容步骤 2计算注意力分数Attention Scores计算每个 Query 与所有 Key 的点积衡量“匹配度”为了防止点积过大导致 Softmax 梯度饱和进行缩放Scaled其中是Key向量的维度步骤 3应用 Softmax 得到注意力权重输出是一个概率分布表示每个位置对其他位置的关注程度。步骤 4加权求和 Value用注意力权重对 Value 向量加权求和得到最终输出Output Weights.V这个输出向量融合了整个序列的信息并根据语义重要性进行了加权。代码实现PyTorchimport torch import math def self_attention(Q, K, V, maskNone): # 获取 Q 矩阵最后一个维度的大小即 d_k键向量的维度 d_k Q.size(-1) # 计算注意力分数Q K^T / sqrt(d_k) # 目的是防止点积过大导致 softmax 梯度消失 scores torch.matmul(Q, K.transpose(-2, -1)) / math.sqrt(d_k) # 如果有掩码如 padding mask 或 causal mask将无效位置设为极小值-inf # softmax 后这些位置的权重会趋近于 0 if mask is not None: scores scores.masked_fill(mask 0, -1e9) # 对注意力分数进行 softmax得到注意力权重权重和为1 weights torch.softmax(scores, dim-1) # 加权求和用注意力权重乘以值向量 V得到输出 return torch.matmul(weights, V)三、为什么自注意力优于 RNN指标RNNself-attention并行性串行处理t1→ t2 → t3)所有位置同时计算训练更快长度依赖梯度消失/爆炸难以捕捉远距离消息直接建模任意两个位置的关系计算复杂度O(n) per step$$O(n^2)$$但 GPU 并行弥补灵活性固定顺序更新动态调整关注点 举例在句子 “I arrived at the bank after crossing the river” 中RNN 需要一步步传递信息到 “bank”可能丢失上下文Self-Attention 可以直接让 “bank” 关注 “river”立刻判断是“河岸”而非“银行”。四、多头注意力Multi-Head Attention为了捕捉不同子空间的语义信息Transformer 使用 多头注意力Multi-Head Attention将Q、K、V分成多个“头”如8个每个头独立计算自注意力最后将所有头的输出拼接并线性变换其中✅ 好处不同头可以关注不同类型的依赖如语法、语义、指代等五、现代优化FlashAttention 与 SDPA随着模型变大标准自注意力计算成本高。Hugging Face 和 PyTorch 提供了优化方案1.SDPAScaled Dot Product AttentionPytorch 内置的高效实现自动选择最优后端from torch.nn.functional import scaled_dot_product_attention output scaled_dot_product_attention(Q, K, V, attn_maskmask)2.FlashAttention-2更快减少显存读写支持 fp16/bf16需要安装pip install flash-attn --no-build-isolation启用方式model AutoModelForCausalLM.from_pretrained( meta-llama/Llama-3.1-8B, attn_implementationflash_attention_2, torch_dtypetorch.bfloat16, device_mapauto )⚠️ 注意不支持 padding token建议在训练时使用 packed dataset。六、自注意力的应用场景场景说明自然语言处理BERT、GPT、LLaMA 等大模型核心图像处理Vision TransformerViT中将图像分块视为序列语音识别处理音频帧序列推荐系统用户行为序列建模七、总结特性说明核心思想动态关注序列中重要位置三大向量Q查什么、K有什么、V给什么缩放点积防止梯度饱和并行优势比 RNN 更快、更适合 GPU长度依赖能直接建模任意距离的依赖关系现代优化SDPA、FlashAttention-2 提升推理效率 一句话总结自注意力机制让模型像“阅读时划重点”一样动态决定哪些词更重要从而更高效地理解和生成语言。

相关新闻

uniapp安卓苹果APP端:解决安卓/苹果IOS获取蓝牙ID不一致问题,获取到的deviceId不一致?uniapp蓝牙设备ios与安卓端deviceId不一致问题(ios和安卓的获取方式不一样)

uniapp安卓苹果APP端:解决安卓/苹果IOS获取蓝牙ID不一致问题,获取到的deviceId不一致?uniapp蓝牙设备ios与安卓端deviceId不一致问题(ios和安卓的获取方式不一样)

问题说明 uni-app使用uni.onBluetoothDeviceFound、uni.getBluetoothDevices查找到的蓝牙设备数据里deviceId值不一样,蓝牙设备的 deviceId 在 Android 和 iOS 平台上表现不同。Android 通常返回设备的 MAC 地址,而 iOS 返回的是 UUID,这可能导致每次获取到的 deviceId 不一…

2026/7/4 12:17:34 阅读更多 →
9篇7章17节:特殊的NHANES数据解读,包括NNYFS、NHEFS、NHES 和 HHANES 等数据

9篇7章17节:特殊的NHANES数据解读,包括NNYFS、NHEFS、NHES 和 HHANES 等数据

自20世纪中叶以来,美国国家健康与营养调查(NHANES)一直是评估国民健康状况、营养水平和疾病风险的重要工具。通过系统的抽样调查、体格检查、实验室检测和问卷访谈,NHANES为公共卫生研究提供了丰富的数据支持。在这一框架下,还衍生出多个附属研究(Ancillary Studies),例…

2026/5/17 11:34:10 阅读更多 →
uniapp:鸿蒙报错> hvigor ERROR: Failed :entry:default@MergeProfile... > hvigor ERROR: The compatibleSdkVe

uniapp:鸿蒙报错> hvigor ERROR: Failed :entry:default@MergeProfile... > hvigor ERROR: The compatibleSdkVe

问题描述 uniapp鸿蒙开发真机运行报错:> hvigor ERROR: Failed :entry:default@MergeProfile… | > hvigor ERROR: The compatibleSdkVersion X cannot be smaller than version X declared in library [:cashiersdk] | as the library might be using APIS not availa…

2026/5/17 11:34:10 阅读更多 →

最新新闻

如何轻松管理Minecraft游戏体验:PCL启动器完整指南

如何轻松管理Minecraft游戏体验:PCL启动器完整指南

如何轻松管理Minecraft游戏体验:PCL启动器完整指南 【免费下载链接】PCL Minecraft 启动器 Plain Craft Launcher(PCL)。 项目地址: https://gitcode.com/gh_mirrors/pc/PCL 如果你是一位Minecraft玩家,是否曾为复杂的游戏…

2026/7/5 6:07:48 阅读更多 →
WPS-Zotero插件:5分钟搞定跨平台文献引用,科研写作效率翻倍

WPS-Zotero插件:5分钟搞定跨平台文献引用,科研写作效率翻倍

WPS-Zotero插件:5分钟搞定跨平台文献引用,科研写作效率翻倍 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero 还在为Windows和Linux之间切换文献管理软…

2026/7/5 6:05:48 阅读更多 →
StreamCap终极指南:3步掌握开源直播录制工具,轻松录制40+平台直播内容

StreamCap终极指南:3步掌握开源直播录制工具,轻松录制40+平台直播内容

StreamCap终极指南:3步掌握开源直播录制工具,轻松录制40平台直播内容 【免费下载链接】StreamCap Multi-Platform Live Stream Automatic Recording Tool | 多平台直播流自动录制客户端 基于FFmpeg 支持监控/定时/转码 项目地址: https://gitcode.co…

2026/7/5 6:05:48 阅读更多 →
ROS Kinetic 系统下 SpotMicro 12舵机校准:从表格数据到YAML配置的5步实操

ROS Kinetic 系统下 SpotMicro 12舵机校准:从表格数据到YAML配置的5步实操

ROS Kinetic 系统下 SpotMicro 12舵机校准:从表格数据到YAML配置的5步实操 四足机器人SpotMicro的舵机校准是确保运动精度的关键环节。本文将手把手带您完成从原始测量数据到最终YAML配置文件的完整流程,特别针对ROS Kinetic系统中的12舵机校准场景。不同…

2026/7/5 6:03:47 阅读更多 →
SchoolCMS开源教务管理系统:5步打造高效智能的学校管理平台

SchoolCMS开源教务管理系统:5步打造高效智能的学校管理平台

SchoolCMS开源教务管理系统:5步打造高效智能的学校管理平台 【免费下载链接】schoolcms 中国首个开源学校教务管理系统、网站布局自动化、学生/成绩/教师、成绩查询 项目地址: https://gitcode.com/gh_mirrors/sc/schoolcms 还在为学校教务管理工作效率低下而…

2026/7/5 5:57:46 阅读更多 →
如何通过Diablo Edit2角色编辑器打造个性化暗黑破坏神2游戏体验

如何通过Diablo Edit2角色编辑器打造个性化暗黑破坏神2游戏体验

如何通过Diablo Edit2角色编辑器打造个性化暗黑破坏神2游戏体验 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否曾在暗黑破坏神2中花费数小时刷装备,却始终无法获得理想的属性组…

2026/7/5 5:57:46 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻