5分钟搞懂什么是窗口注意力?

在基于 Transformer 架构的 AI 大模型中,注意力机制早已成为了必不可少的核心组件。

但是传统注意力机制在处理长序列数据时存在很多问题。

典型的就是计算复杂度过高,导致在大数据场景中的应用受到很大的限制。

这里说的长序列数据,指的是输出或者输入的文本过长。

举个例子,让AI写一个5000字的作文,相比于写 500 字的作文,那就是输出一个更长序列数据的场景。

为了解决这种长序列数据下传统注意力的问题,"窗口注意力"就出现了。

什么是注意力?

在介绍窗口注意力之前,我们先简单了解一下注意力机制。

当你在阅读一篇文章的时候,你的眼睛会自动聚焦在句子的关键词上,并且还会自动忽略不重要的部分。

这就是人眼或人脑的注意力机制。

而大模型的注意力机制也是模仿了这种行为,让模型在处理数据时"关注"更重要的部分,而不是一视同仁地处理所有信息。

那传统注意力和窗口注意力有什么区别呢?

我们看一个"生成一篇关于周末计划的文章"的场景------

假设我们用AI模型来生成一篇500字的文章,主题是"我的周末计划"。

模型需要根据上下文和提示词生成连贯的句子。

在传统注意力机制下,模型会"全局关注"------

每次生成一个新词时,它都会回顾整篇文章(比如已经生成的499个词),并且计算接下来要生成的词和之前所有词的关系,以模型认为最可能或者最好的词作为接下来的输出。

这个过程可以类比为写日记。

当你写到"周日我要去......"时,你需要停下来,把整篇日记从头到尾读一遍,回忆之前写过的每句话(比如"周六去爬山""周五晚上看电影"),然后决定接下来写什么。

在这个过程中,你的大脑每次都要扫描所有已经写过的词,判断哪些词对接下来要写的内容最重要。

比如,之前写过"爬山",那么可能是在提示你接下来要写"带水壶"。

但你得花时间把所有写过的词都过一遍。

这,问题就来了。

如果日记很长(比如5000字),每次写下一个词都要回顾整篇,这不就费时费力了吗?

就像你需要翻看前已经写过的10页日记,才能决定接下来要写"去海边"。

效率很低。

而在窗口注意力机制下,模型只关注"附近"的内容------

每次生成新词时,只看最近的几个词(比如前后10个词,这个时候窗口大小为21),而不是整篇文章。

还是以写日记为例子。

当你写到"周日我要去......"时,你只需要快速回顾最近几句(比如"周六去爬山,带了水壶和帽子"),然后根据这些信息决定接下来写什么,比如"周日我要去海边,带上防晒霜"。

这个过程中,你只需要关注最近的10个词就可以了,而不用完整的回顾之前写过的所有内容。

这样,优势不就非常明显了吗。

只看附近的内容,思考范围小了很多,速度快了不少。

这就是传统注意力和窗口注意力的区别。

实际上,窗口注意力是注意力机制的一种优化方式,核心思想是"限制关注范围"。

它不再让模型一次性关注整个输入序列,而是只关注每个输入点附近的一个小范围(称为"窗口")。

这样,模型的计算量大大减少,效率显著提升。

接下来,我们看看这个优化方法提升的效果有多惊人!

假设你有一串很长的文本,包含1000个单词。

如果用传统注意力机制,模型需要计算1000×1000=100万个关系。

但如果我们使用窗口注意力,只让每个单词关注它前后各10个单词(即窗口大小为21,包括自身),那么每个单词只需要计算21个关系,总计算量降到1000×21=2.1万个。

效率提升了近50倍,是不是挺可怕的。

窗口注意力是一种高效的注意力机制,通过限制关注范围来降低计算复杂度,同时保留了注意力机制的核心优势------"挑重点"。

它就像给模型戴上了一副"局部放大镜",让它专注于眼前的关键信息,同时保持高效和可扩展性。

实际上,窗口注意力类似于 CV 领域卷积的局部感知能力,而传统注意力更像是全连接。

如果想更好的理解本文,建议阅读以下三篇文:

简单粗暴:终于搞清楚了 AI 大模型的推理过程...

为什么是卷积呢?

用盲人摸象 来理解全连接算法,真的一看就懂了

相关推荐
mu_guang_1 小时前
计算机算术8-浮点加法
算法·cpu·计算机体系结构
Jayden_Ruan2 小时前
C++计算正方形矩阵对角线和
数据结构·c++·算法
李白同学3 小时前
C++:list容器--模拟实现(下篇)
开发语言·数据结构·c++·windows·算法·list
一丢沙3 小时前
Verilog 硬件描述语言自学——重温数电之典型组合逻辑电路
开发语言·算法·fpga开发·verilog
竹子_234 小时前
《零基础入门AI:YOLOv2算法解析》
人工智能·python·算法·yolo
卡尔曼的BD SLAMer6 小时前
计算机视觉与深度学习 | 基于深度学习的图像特征提取与匹配算法综述及MATLAB实现
人工智能·深度学习·算法·计算机视觉·matlab
0wioiw07 小时前
算法(③二叉树)
算法
WHS-_-20227 小时前
Carrier Aggregation Enabled MIMO-OFDM Integrated Sensing and Communication
算法
何妨重温wdys7 小时前
贪心算法解决活动选择问题:最多不重叠活动数量求解
算法·贪心算法
闻缺陷则喜何志丹7 小时前
【有序集合 有序映射 懒删除堆】 3510. 移除最小数对使数组有序 II|2608
c++·算法·力扣·有序集合·有序映射·懒删除堆