一、Attention的本质与计算步骤

1.1 核心思想

  • 动态聚焦:Attention是一种信息分配机制,让模型在处理输入时动态关注最重要的部分。
  • 类比:像人类阅读时用荧光笔标记关键句子。

1.2 计算三步曲(以"吃苹果"为例)

Q(Query)、K(Key)、V(Value)的分工

角色数学表示作用类比
QW_q·输入向量主动提问者:表示当前需要关注什么好比"学生举手提问"
KW_k·输入向量匹配者:提供被匹配的特征像"书本目录关键词"
VW_v·输入向量实际内容:真正传递的信息即"书本正文内容"
# 伪代码示例
Q = embedding("吃")  # Query
K = [embedding("吃"), embedding("苹果")]  # Keys
V = [embedding("吃"), embedding("苹果")]  # Values# Step1: 计算注意力分数
scores = [Q·K[0], Q·K[1]]  # [1, 2]# Step2: Softmax归一化
weights = softmax(scores)  # [0.27, 0.73]# Step3: 加权求和
output = 0.27*V[0] + 0.73*V[1]  # 新向量[1.46, 0.54, 0]

二、关键问题深度解答

2.1 为什么需要加权求和?

  • 信息融合:保留所有相关信息的加权组合(如73%“苹果”+27%“吃”)
  • 对比实验:若仅选最大权重词,模型准确率下降约40%(论文《Attention Is All You Need》)

2.2为什么需要Q/K/V分离?

职责分离原则:

Q/K决定"应该关注谁"(注意力权重)

V决定"实际传递什么"(信息内容)

类比:搜索引擎工作原理

Q = 你的搜索关键词

K = 网页的关键词索引

V = 网页的正文内容

2.3Attention与Embedding的关系

组件作用必要性
Embedding将离散符号转为连续向量必须
Attention建立词间动态关系可选

协作流程
文本 → Embedding → Q/K/V → Attention → 新表示 → 预测输出

三、主流Attention方法对比

3.1 常见变体

类型特点应用场景
多头注意力(MHA)并行多个注意力头Transformer
因果注意力掩码防止未来信息泄漏GPT生成
分组查询注意力(GQA)查询头共享键值,提升效率GPT-4 Turbo
稀疏注意力只计算部分位置关系长文本处理

3.2 ChatGPT的Attention实现

  • 核心技术
    • 多头自注意力(通常8-128个头)
    • 旋转位置编码(RoPE)
    • KV缓存加速生成
  • 优化方案
    输入文本
    Token Embedding
    +位置编码RoPE
    多头注意力
    前馈神经网络
    输出概率

四、实战建议

  1. 超参设置

    • 头数选择:8头(小模型) ~ 64头(10B+参数模型)
    • 维度分配:d_model = 头数 * d_head(通常d_head=64)
  2. 性能优化

    # 使用FlashAttention加速(PyTorch示例)
    from flash_attn import flash_attention
    output = flash_attention(q, k, v)
    

五、延伸思考

  • Attention的局限性

    • 计算复杂度O(n²)不适合超长序列
    • 缺乏显式逻辑推理能力
  • 最新进展

    • 2024年Google提出的Jamba架构(Attention+MoE混合)
    • DeepSeek-V3的MLA注意力(内存优化)

📌 本文重点:Attention不是简单的"理解输入",而是通过动态权重分配+信息融合实现上下文感知。实际应用中需与Embedding配合,并根据任务需求选择注意力变体。

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

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

相关文章

2025年3月青少年电子学会等级考试 中小学生python编程等级考试三级真题答案解析(判断题)

博主推荐 所有考级比赛学习相关资料合集【推荐收藏】1、Python比赛 信息素养大赛Python编程挑战赛 蓝桥杯python选拔赛真题详解

HTML5 新特性详解:从语义化到多媒体的全面升级

很多小伙伴本都好奇:HTML5有什么功能是以前的HTML没有的? 今天就给大家说道说道 HTML5 作为 HTML 语言的新一代标准,带来了诸多革命性的新特性。这些特性不仅简化了前端开发流程,还大幅提升了网页的用户体验和功能性。本文将深入…

mac安装docker

1、下载docker-desktop https://www.docker.com/products/docker-desktop/2、安装,双击安装 3、优化docker配置 默认配置 cat ~/Library/Group\ Containers/group.com.docker/settings-store.json {"AutoStart": false,"DockerAppLaunchPath": …

mapbox进阶,绘制不随地图旋转的矩形,保证矩形长宽沿屏幕xy坐标方位

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️line线图层样式1.4 ☘️circle点图层样…

${project.basedir}延申出来的Maven内置的一些常用属性

如&#xff1a;${project.basedir} 是 Maven 的内置属性&#xff0c;可以被 pom.xml 直接识别。它表示当前项目的根目录&#xff08;即包含 pom.xml 文件的目录&#xff09;。 Maven 内置的一些常用属性&#xff1a; 项目相关&#xff1a; ${project.basedir} <!-- 项…

[特殊字符] Python 批量生成词云:读取词频 Excel + 自定义背景 + Excel to.png 流程解析

本文展示如何用 Python 从之前生成的词频 Excel 文件中读取词频数据&#xff0c;结合 wordcloud 和背景图&#xff0c;批量生成直观美观的词云图。适用于文本分析、内容展示、报告可视化等场景。 &#x1f4c2; 第一步&#xff1a;读取所有 Excel 词频文件 import os from ope…

模拟网络请求的C++类设计与实现

在C开发中&#xff0c;理解和模拟网络请求是学习客户端-服务器通信的重要一步。本文将详细介绍一个模拟HTTP网络请求的C类库设计&#xff0c;帮助开发者在不涉及实际网络编程的情况下&#xff0c;理解网络请求的核心概念和工作流程。 整体架构设计 这个模拟网络请求的类库主要由…

移动机器人的认知进化:Deepoc大模型重构寻迹本质

统光电寻迹技术已逼近物理极限。当TCRT5000传感器在强烈环境光下失效率超过37%&#xff0c;当PID控制器在路径交叉口产生63%的决策崩溃&#xff0c;工业界逐渐意识到&#xff1a;导引线束缚的不仅是车轮&#xff0c;更是机器智能的演化可能性。 ​技术破局点出现在具身认知架构…

记录一次pip安装错误OSError: [WinError 32]的解决过程

因为要使用 PaddleOCR&#xff0c;需要安装依赖。先通过 conda新建了虚拟环境&#xff0c;然后安装 PaddlePaddle&#xff0c;继续安装 PaddleOCR&#xff0c;上述过程我是在 VSCode的终端中处理&#xff0c;结果报错如下&#xff1a;Downloading multidict-6.6.3-cp312-cp312-…

后端id设置long类型时,传到前端,超过19位最后两位为00

文章目录一、前言二、问题描述2.1、问题背景2.2、问题示例三、解决方法3.1、将ID转换为字符串3.2、使用JsonSerialize注解3.3、使用JsonFormat注解一、前言 在后端开发中&#xff0c;我们经常会遇到需要将ID作为标识符传递给前端的情况。当ID为long类型时&#xff0c;如果该ID…

SpringAI学习笔记-MCP客户端简单示例

MCP客户端是AI与外部世界交互的桥梁。在AI系统中&#xff0c;大模型虽然具备强大的认知能力&#xff0c;却常常受限于数据孤岛问题&#xff0c;无法直接访问外部工具和数据源。MCP协议应运而生&#xff0c;作为标准化接口解决这一核心挑战。该协议采用客户端-服务端架构&#x…

postgresql|数据库|系统性能监控视图pg_stat与postgresql数据库的调优(备忘)

一、 写作初衷 通常,我们使用navicat这样的数据库图形管理工具,只能看到用户层面的表,视图,而系统层面的表,视图,函数是无法看到的,这些表,视图和函数好像也可以称之为内模式;而这些视图,函数的作用是非常大的,其中pg_stat 族系统视图可以得到数据库的详细运行信息…

网络安全护网实战:攻击手段解析与防御策略

在网络安全领域&#xff0c;护网行动中对各类攻击方式和漏洞原理的掌握至关重要。本文将详细解析常见的攻击方式及其背后的漏洞原理&#xff0c;帮助大家提升护网技能。一、常见攻击方式及漏洞原理1. SQL注入漏洞• 定义&#xff1a;将恶意的数据库语句注入到后台数据库去执行&…

使用alist+RaiDrive+webdav将百度夸克网盘变为本地电脑磁盘方法教程

由于每天都要操作网盘不下十几次&#xff0c;频繁启动网盘比较麻烦。 使用百度夸克网盘的webdav服务可以将百度夸克网盘挂载到本地电脑上&#xff0c;就像操作本地电脑硬盘一样操作网盘&#xff0c;非常方便。我们以alistraidrive为例演示。 首先打开百度网盘pan.baidu.com&a…

C# 入门学习教程(二)

文章目录一、操作符详解1、操作符概览2、操作符的本质3、操作符的优先级4、同级操作符的运算顺序5、 各类操作符的示例二、表达式&#xff0c;语句详解1. 表达式的定义2. 各类表达式概览3. 语句的定义4. 语句详解一、操作符详解 C# 中的操作符是用于执行程序代码运算的符号&am…

Linux内核深度解析:IPv4策略路由的核心实现与fib_rules.c源码剖析

深入探索Linux网络栈的规则引擎,揭秘策略路由如何通过多级路由表实现复杂流量控制 在Linux网络栈中,路由决策远不止简单的目的地址匹配。策略路由(Policy Routing)允许根据源地址、TOS值、端口等复杂条件选择不同的路由路径。本文将深入剖析实现这一功能的核心源码——net/…

【UE5】虚幻引擎的运行逻辑

UE5的运行逻辑可以分为引擎启动流程和游戏运行流程两个部分。引擎启动流程一、平台入口&引擎主流程初始化1、系统入口不同的平台会有不同的入口。在Windows平台&#xff0c;入口是Launch模块下的\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp文件中的W…

大数据学习1:Hadoop单机版环境搭建

1.基础知识介绍 Flume采集日志。Sqoop采集结构化数据&#xff0c;比如采集数据库。 存储到HDFS上。 YARN资源调度&#xff0c;每台服务器上分配多少资源。 Hive是基于Hadoop的一个数据仓库工具&#xff0c;提供SQL查询功能&#xff0c;能将SQL语句转变成MapReduce任务来执行…

深入理解PHP中的命名空间和自动加载机制

首先&#xff0c;让我们来讨论命名空间。PHP的命名空间是一种对代码进行逻辑分组的机制&#xff0c;它允许开发者将函数、类和常量封装在不同的命名空间中。这样做的好处在于可以避免全局范围内的名称冲突。例如&#xff0c;你可能在你的项目中使用了一个名为"Database&qu…

学习:JS[3]数组的增删改查+函数+作用域

一.操作数组1.改2.增arr.push(新增的内容):将一个或多个元素添加到数组的结尾arr.unshift(新增的内容):方法将一个或多个元素添加到数组的开头,并返回该数组的长度3.删除arr.pop():方法从数组中删除最后一个元素,不带参数,并返回元素的值arr.shift():方法从数组中删除第一个元素…