大型语言模型中的QKV与多头注意力机制解析

news2025/5/18 21:10:36

  每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

【工程师视角下的大模型核心机制拆解:QKV 与多头注意力 (QKV and Multi-head Attention in LLM from an Enginee】

https://www.bilibili.com/video/BV1dAJPzvEW5/

在自然语言处理(NLP)领域,大型语言模型(LLM),如GPT-3和BERT,彻底改变了机器理解和生成自然语言的方式。而这些模型的核心机制中,QKV(Query、Key、Value)和多头注意力机制(Multi-Head Attention)起着关键作用。起初,这一机制显得晦涩难懂,有研究者甚至花费数周时间才逐渐弄清其运作原理。

在原始论文中,对QKV机制的解释如下:

Query(查询向量)
表示模型当前关注的元素。在一个序列中,Query就像是在针对某个具体元素发出的“问题”。

Key(键向量)
表示序列中所有可能被模型关注的元素。Query会与所有的Key进行对比,以判断该关注哪些部分、关注的程度如何。

Value(值向量)
每个Key对应一个Value。一旦确定了哪些Key比较重要(基于Query计算),其对应的Value将被用于构建最终输出。

虽然理论解释如此,但实际理解起来仍不容易。以下是一个直观的例子。

例如,一句简单的英文句子:“Tom is going to fish at the river bank.”
人类能够轻松理解这句话。但为了让计算机理解,我们需要先将句子中的每个单词转换成数字向量,这就是所谓的词嵌入(Word Embedding)。假设使用一个六维空间表示词向量,“River”这个词的嵌入向量可能是 [-0.9, 0.9, -0.2, 0.4, 0.2, 0.6]。在嵌入空间中,相似的词彼此靠近。比如:

  • 第一组:River, Fish, Fisherman

  • 第二组:Hospital, PostOffice, Restaurant

有趣的是,像“Bank”这样的多义词,其含义依赖于语境——需要判断它应该更接近哪一组。

回到原句:
“Tom is going to fish at the river bank.”


人们自然能判断出“bank”在这里不是提款的地方。为何能这样理解?这是因为“River”和“Fish”这两个词在语境中提供了更强的语义线索。它们在理解“bank”的含义时起到更重要作用,因此应给予更高的注意力权重,与“bank”的语义更加接近。

那么,计算机又如何判断该更关注“River”和“Fish”,而非其他词呢?这正是Q(Query)和K(Key)登场的地方。它们是两个线性变换,用于回答一个核心问题:在一个句子中,词与词之间的相似度如何?

首先,Q和K的输入是相同的词嵌入(此处暂不考虑位置嵌入)。以六维向量表示词嵌入为例:

将输入词嵌入分别进行Q和K的线性变换,然后计算Query与所有Key之间的点积(MatMul),接着进行缩放(Scale)、掩码(Mask)和SoftMax归一化,最终得到各个词的注意力权重。这些权重随后再与V(Value)向量进行点积,从而得到输出向量。最终的输出是各个Value的加权和,而权重则是由Key与Query之间的匹配程度决定的。


因此,这个新生成的向量在语义上比原始的词嵌入更能捕捉上下文间的联系。

举例来说,模型可能会对“bank”与“river”、“fish”的组合给出更高的注意力权重。这意味着模型在构建“bank”的输出时,会更多地参考这些相关词。

那么,为什么非得经历QKV这一套复杂的转化过程呢?

这可以类比于人类对图像的感知。如果让人描述一幅画面,大脑并不会从左上角逐像素扫描,而是立刻将注意力集中在最突出的物体上,例如画面中的一个小男孩。这种处理方式高效而精准,正体现了“注意力机制”的威力。

如果将QKV看作是一组三个线性映射,即一个“注意力头”(Attention Head),那么**多头注意力机制(Multi-Head Attention)**就是拥有多组QKV,并将它们的输出拼接起来。其优势在于能从不同角度捕捉相似性信息。例如,一个头可以专注于相邻的名词关系,另一个头则可能关注动词与宾语之间的联系。回到图像类比,一个“头”可能识别出画面中的男孩,另一个则聚焦于他手中的球。

以上是一种对QKV与多头注意力机制的直观解释。至于更为严谨的数学推导,可参考原始论文《Attention Is All You Need》。在深入学习的过程中,许多技术细节将逐渐变得清晰而有趣。

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

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

相关文章

基于地图的数据可视化:解锁地理数据的真正价值

目录 一、基于地图的数据可视化概述 (一)定义与内涵 (二)重要性与意义 二、基于地图的数据可视化的实现方式 (一)数据收集与整理 (二)选择合适的可视化工具 (三&a…

分布式链路跟踪

目录 链路追踪简介 基本概念 基于代理(Agent)的链路跟踪 基于 SDK 的链路跟踪 基于日志的链路跟踪 SkyWalking Sleuth ZipKin 链路追踪简介 分布式链路追踪是一种监控和分析分布式系统中请求流动的方法。它能够记录和分析一个请求在系统中经历的每…

刷leetcodehot100返航版--二叉树

二叉树理论基础 二叉树的种类 满二叉树和完全二叉树,二叉树搜索树 满二叉树 如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。 节点个数2^n-1【n为树的深度】 完全二叉树 在完全二叉树…

双重差分模型学习笔记4(理论)

【DID最全总结】90分钟带你速通双重差分!_哔哩哔哩_bilibili 目录 总结:双重差分法(DID)在社会科学中的应用:理论、发展与前沿分析 一、DID的基本原理与核心思想 二、经典DID:标准模型与应用案例 三、…

Mysql 8.0.32 union all 创建视图后中文模糊查询失效

记录问题,最近在使用union all聚合了三张表的数据,创建视图作为查询主表,发现字段值为中文的筛选无法生效.......... sql示例: CREATE OR REPLACE VIEW test_view AS SELECTid,name,location_address AS address,type,"1" AS data_type,COALESCE ( update_time, cr…

Jenkins 执行器(Executor)如何调整限制?

目录 现象原因解决 现象 Jenkins 构建时,提示如下: 此刻的心情正如上图中的小老头,火冒三丈,但是不要急,因为每一次错误,都是系统中某个环节在说‘我撑不住了’。 原因 其实是上图的提示表示 Jenkins 当…

编程错题集系列(一)

编程错题集系列(一) 人生海海,山山而川。 谨以此系列作为自己一路的见证。本期重点:明明已经安装相关库,但在PyCharm中无法调用 最大的概率是未配置合适的解释器,也就是你的书放在B房间,你在A…

【原创】基于视觉大模型gemma-3-4b实现短视频自动识别内容并生成解说文案

📦 一、整体功能定位 这是一个用于从原始视频自动生成短视频解说内容的自动化工具,包含: 视频抽帧(可基于画面变化提取关键帧) 多模态图像识别(每帧图片理解) 文案生成(大模型生成…

Spark(32)SparkSQL操作Mysql

(一)准备mysql环境 我们计划在hadoop001这台设备上安装mysql服务器,(当然也可以重新使用一台全新的虚拟机)。 以下是具体步骤: 使用finalshell连接hadoop001.查看是否已安装MySQL。命令是: rpm -qa|grep ma…

基于 Python 的界面程序复现:标准干涉槽型设计计算及仿真

基于 Python 的界面程序复现:标准干涉槽型设计计算及仿真 在工业设计与制造领域,刀具的设计与优化是提高生产效率和产品质量的关键环节之一。本文将介绍如何使用 Python 复现一个用于标准干涉槽型设计计算及仿真的界面程序,旨在帮助工程师和…

c++成员函数返回类对象引用和直接返回类对象的区别

c成员函数返回类对象引用和直接返回类对象的区别 成员函数直接返回类对象&#xff08;返回临时对象&#xff0c;对象拷贝&#xff09; #include <iostream> class MyInt { public:int value;//构造函数explicit MyInt(int v0) : value(v){}//加法操作,返回对象副本&…

数字化转型- 数字化转型路线和推进

数字化转型三个阶段 百度百科给出的企业的数字化转型包括信息化、数字化、数智化三个阶段 信息化是将企业在生产经营过程中产生的业务信息进行记录、储存和管理&#xff0c;通过电子终端呈现&#xff0c;便于信息的传播与沟通。数字化通过打通各个系统的互联互通&#xff0c;…

IP68防水Type-C连接器实测:水下1米浸泡72小时的生存挑战

IP68防水Type-C连接器正成为户外设备、水下仪器和高端消费电子的核心组件。其宣称的“1米水深防护”是否真能抵御长时间浸泡&#xff1f;我们通过极限实测&#xff0c;将三款主流品牌IP68防水Type-C连接器沉入1米盐水&#xff08;模拟海水浓度&#xff09;中持续72小时&#xf…

【技术追踪】InverseSR:使用潜在扩散模型进行三维脑部 MRI 超分辨率重建(MICCAI-2023)

LDM 实现三维超分辨率~ 论文&#xff1a;InverseSR: 3D Brain MRI Super-Resolution Using a Latent Diffusion Model 代码&#xff1a;https://github.com/BioMedAI-UCSC/InverseSR 0、摘要 从研究级医疗机构获得的高分辨率&#xff08;HR&#xff09;MRI 扫描能够提供关于成像…

list重点接口及模拟实现

list功能介绍 c中list是使用双向链表实现的一个容器&#xff0c;这个容器可以实现。插入&#xff0c;删除等的操作。与vector相比&#xff0c;vector适合尾插和尾删&#xff08;vector的实现是使用了动态数组的方式。在进行头删和头插的时候后面的数据会进行挪动&#xff0c;时…

Java 框架配置自动化:告别冗长的 XML 与 YAML 文件

在 Java 开发领域&#xff0c;框架的使用极大地提升了开发效率和系统的稳定性。然而&#xff0c;传统框架配置中冗长的 XML 与 YAML 文件&#xff0c;却成为开发者的一大困扰。这些配置文件不仅书写繁琐&#xff0c;容易出现语法错误&#xff0c;而且在项目规模扩大时&#xff…

vue使用Pinia实现不同页面共享token

文章目录 一、概述二、使用步骤安装pinia在vue应用实例中使用pinia在src/stores/token.js中定义store在组件中使用store登录成功后&#xff0c;将token保存pinia中向后端API发起请求时&#xff0c;携带从pinia中获取的token 三、参考资料 一、概述 Pinia是Vue的专属状态管理库…

遨游科普:三防平板是什么?有什么功能?

清晨的露珠还挂在帐篷边缘&#xff0c;背包里的三防平板却已开机导航&#xff1b;工地的尘土飞扬中&#xff0c;工程师正通过它查看施工图纸&#xff1b;暴雨倾盆的救援现场&#xff0c;应急队员用它实时回传灾情数据……这些看似科幻的场景&#xff0c;正因三防平板的普及成为…

spring MVC 至 springboot的发展流程,配置文件变化

spring mvc Spring MVC 是 Spring 框架中的一个重要模块&#xff0c;用于构建基于 Java 的 Web 应用程序。它基于 ​​MVC&#xff08;Model-View-Controller&#xff09;设计模式​​&#xff0c;提供了灵活、可配置的方式来开发动态网页或 RESTful 服务 ssm ​​SSM 框架​…

AI全域智能监控系统重构商业清洁管理范式——从被动响应到主动预防的监控效能革命

一、四维立体监控网络技术架构 1. 人员行为监控 - 融合人脸识别、骨骼追踪与RFID工牌技术&#xff0c;身份识别准确率99.97% - 支持15米超距夜间红外监控&#xff08;精度0.01lux&#xff09; 2. 作业过程监控 - UWB厘米级定位技术&#xff08;误差&#xff1c;0.3米&…