论文阅读:Attention is all you need

Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[J]. Advances in neural information processing systems, 2017, 30.

引言

文章首先引入循环模型存在一个根本性的计算瓶颈,即循环模型通常沿输入和输出序列的符号位置进行计算,在计算时刻t,模型会根据前一时刻的隐藏状态ht-1和当前位置的输入生成新的隐藏状态ht,这种固有的顺序性导致无法在训练样本内部进行并行化计算,当序列长度增加时,由于内存限制限制了批处理(batching)的大小,这一问题变得尤为严重。

文章提出了Transformer模型架构,完全摒弃了循环和卷积,并通过完全依赖注意力机制来建立输入和输出之间的全局依赖关系,具有高度并行化和训练速度极快的特点。

模型架构

Transformer 模型摒弃了传统的循环或卷积结构,采用了基于注意力机制的编码器-解码器(Encoder-Decoder)架构。其中编码器由6个相同的层堆叠而成,每层包含两个子层:一个是多头自注意力机制,另一个是简单的基于位置的全连接前馈网络,每个子层周围都采用了残差连接随后进行层归一化;解码器由6个相同的层堆叠而成,除了编码器中的两个子层外,解码器插入了第三个子层,用于对编码器堆栈的输出执行多头注意力,解码器中的自注意力子层经过修改,引入了掩码(Masking)机制,这种掩码确保了对位置i的预测只能依赖于小于i的已知输出,从而保持了自回归属性。

对于注意力机制,缩放点积注意力输入包括查询、键和值,计算

Attention(Q,K,V)=softmax(\frac{QK^{T}}{\sqrt{d_{k}}})V

,对于较大的dk值,点积结果的幅度会变大,导致 Softmax 函数进入梯度极小的区域,为了抵消这种影响,点积结果会除以

\sqrt{d_{k}}

进行缩放;多头注意力不再执行单一的注意力功能,而是将查询、键和值分别线性投影h次到隐藏维度,这些投影后的版本并行执行注意力功能,输出结果被拼接并再次投影,得到最终值,这种机制允许模型在不同位置关注来自不同表示子空间的信息。

除了注意力子层外,编码器和解码器的每一层都包含一个全连接的前馈网络,该网络分别且相同地应用于每个位置,由两个线性变换和中间的一个 ReLU 激活函数组成;对于嵌入层和softmax,模型使用学习到的嵌入将输入和输出token转换为dmodel的向量,在两个嵌入层和 Softmax 前的线性变换之间共享相同的权重矩阵,且在嵌入层中,权重会乘以

\sqrt{d_{model}}

由于模型不包含循环和卷积,为了利用序列的顺序信息,必须注入关于 Token 相对或绝对位置的信息【注意这里是否说明只有循环和卷积可以先天保持位置关系,即使是一维的】,位置编码被添加到编码器和解码器底部的输入嵌入中。具体而言,

PE_{(pos,2i)}=sin(pos/10000^{2i/d_{model}})

PE_{(pos,2i+1)}=cos(pos/10000^{2i/d_{model}})

。选择这种函数是因为它允许模型通过相对位置轻松学习关注,因为对于任何固定的偏移k,

PE_{pos+k}

都可以表示为

PE_{pos}

的线性函数。

为什么选择自注意力

自注意力机制连接所有位置的操作数是常数,相对的,RNN是O(N),卷积层需要

O(n/k)

O(log_k(n))

层才能连接所有对的输入输出位置。当序列长度n小于表示维度d时,自注意力层的计算速度快于循环层。此外,显而易见的是由于可以看见注意力分布,attention的可解释性是很好的。

结果

对于不同参数的作用进行了分析,对于注意力头数与维度,保持计算量不变,调整注意力头数和键/值维度,单头注意力/过多的头数都会导致质量下降;减小注意力键的维度会损害模型质量;必须使用dropout(0.0的时候性能显著下降);将正弦位置编码替换为学习到的位置嵌入,两者的结果几乎相同。作者最终选择正弦编码,是因为它可能允许模型推断出比训练期间遇到的序列更长的序列。


这里需要补充的内容:

1.关于inputs和outputs在不同任务中长什么样子

  • 考虑机器翻译任务,inputs始终是原始语言的完整句子,一次性并行处理整个句子,生成 Key 和 Value 矩阵供 Decoder 查询。decoder侧在训练时使用shifted right的标准答案句子,例如,标准翻译是 <sos> Ich liebe dich <eos>,Decoder 的输入就是 <sos> Ich liebe dich。模型预测的下一个 token。位置 0 的输入 <sos> 预测 Ich,位置1的输入 Ich 预测 liebe... 这些是并行计算的,因为使用了 Mask 机制防止看到未来(只能利用之前的信息);推理时使用自回归架构,Step 0的时候Encoder 输入 "I love you"。Decoder 输入 [<sos>]。Output 预测 Ich;Step 1:的时候Decoder 输入变成 [<sos>, Ich]。Output 预测 liebe......如此周而复始直到输出eos。
  • 上下文续写通常只使用decoder部分,但是如果坚持用encoder-decoder架构的话就把原始文本放到encoder侧,然后decoder不断生成新的东西

2.为什么token不知道自己的位置

卷积神经网络(CNN)知道位置是因为卷积核是滑动的;循环神经网络(RNN)知道位置是因为它是按时间步t依次递归计算的,但是自注意力层实际上并不清楚位置,如果不加位置编码,对于模型来说,"I eat apple" 和 "apple eat I" 在 Self-Attention层看来是完全一样的“词袋”(因为相当于只是计算上下文的东西然后更新自己的向量,前后无所谓的)。

3.为什么需要sin/cos交替

这实际上构成了一组不同频率的波。低维度的波长短变化快,高维度的波长长变化慢(导致整体出来的d_model维度的位置编码类似二进制数字),这种组合能为每个位置生成一个独一无二的编码纹理。此外,对于pos+k,其编码向量可以看作是位置pos的编码向量*一个与pos无关、只与k有关的线性变换矩阵,这意味着模型在计算 Attention时,能够很容易地学到相对位置信息(不是绝对位置100和105的关系,而是“相距5个单位之间的关系”),这使得模型具有更好的外推性,即在训练时只见过短句子,测试时遇到比训练集更长的句子,这种相对位置的规律依然成立。

4.添加位置编码不会搞脏语义特征吗

使用的是高维度的d_model,在高维空间中,向量分布是非常稀疏的。位置编码向量和词嵌入向量在数学上倾向于正交,这意味着它们占据了空间中不同的“子空间”。模型可以通过学习不同的权重矩阵将这两种信息轻易地剥离出来,此外除了残差连接,Embedding 层会将权重乘以

\sqrt{d_{model}}

,这意味着语义 Embedding 的数值量级被放大了,而位置编码 Sin/Cos 的值始终在[-1,1]之间,因此对原始语义特征的影响微乎其微。这里实际上是一种最简易的特征融合,类似相加,只不过加的东西是不可学习的罢了。


Read more

2026毕业季AIGC检测红线全解读:你的论文AI率达标了吗?

2026毕业季AIGC检测红线全解读:你的论文AI率达标了吗?

2026毕业季AIGC检测红线全解读:你的论文AI率达标了吗? 2026年的毕业季,AIGC检测已经从"建议执行"变成了"硬性要求"。 如果你还觉得"学校不会真查AI率",那你可能要吃大亏。从去年下半年开始,越来越多的高校把AIGC检测纳入了论文审核的必经流程,和查重放在同等位置。 这篇文章帮你理清三个核心问题:红线是多少、被查出来会怎样、怎么应对。 2026年各学历AIGC检测标准 经过整理主流高校的最新政策,大致标准如下: 学历层次AI率红线处理方式本科30%超过需修改后重新检测硕士15%-20%超过暂缓答辩,修改后复查博士10%超过取消答辩资格,需重新撰写期刊投稿视期刊而定核心期刊通常要求<10% 需要注意的是,这是目前多数985、211高校的标准。部分双非院校可能还没这么严格,但趋势很明确——标准只会越来越高,不会放松。 为什么今年特别严? 知网AIGC检测升级到3.0 2025年12月,知网AIGC检测算法从2.0升级到了3.0版本。新算法的检测维度从原来的3个增加到了7个,

1.2 Whisper的安装与配置 | 《Whisper语音识别实战专栏》

引言 在前一篇文章中,我们了解了Whisper的基本概念、发展背景和主要特点。现在,我们将介绍Whisper的安装与配置方法,帮助您快速上手使用Whisper。 Whisper的安装相对简单,主要包括Python环境配置、Whisper库安装和FFmpeg配置三个步骤。在本文章中,我们将详细介绍每个步骤的具体操作方法,并提供常见问题的解决方案。 系统要求 在安装Whisper之前,您需要确保您的系统满足以下要求: * 操作系统:Windows、macOS或Linux * Python版本:3.8-3.11 * PyTorch版本:支持最新版本的PyTorch * 硬件要求: * CPU:支持x86_64架构的处理器 * GPU(可选):支持CUDA的NVIDIA GPU(用于加速模型推理) * 内存:至少4GB RAM,推荐8GB以上 安装步骤 1. 配置Python环境 首先,您需要安装Python环境。如果您已经安装了Python 3.8-3.11,可以跳过这一步。 1.1

AIGC全栈实践指南:从模型选型到产业落地(附2025实战手册)

AIGC 全栈实践指南:从模型选型到产业落地(附 2025 实战手册) 引言:AIGC 的工业化革命 —— 从 “生成内容” 到 “创造价值” 2025 年的 AIGC 早已跳出 “文生图”“写文案” 的娱乐化陷阱:阿里 “魔绘” 工业设计 AI 能在 3 分钟内生成符合力学原理的机械零件图纸,字节跳动 “灵笔” 影视 AI 单日产出 200 条符合平台调性的短视频脚本,华为 “筑境” 建筑 AI 设计方案中标率较人类团队提升 47%。这些突破的核心,是 AIGC 从 “内容生成工具” 到 “产业生产力引擎” 的进化。 据 IDC《

AI绘画建筑设计提示词:从基础到高级的完整创作指南

AI绘画建筑设计提示词:从基础到高级的完整创作指南

一、核心逻辑:高质量建筑提示词的 7 大组成部分 AI 对建筑的理解需要 “分层引导”,一个完整的提示词通常包含 7 个关键模块,你可根据需求灵活组合或删减,基础逻辑为:先明确 “画什么”,再定义 “怎么画”,最后优化 “画得好”。具体结构如下: [主体/建筑类型] + [风格/建筑师参考] + [环境/场景设定] + [细节与材质] + [构图与视角] + [灯光与氛围] + [画质/技术参数] 这一结构能让 AI 清晰捕捉设计核心,避免因信息模糊导致的 “偏离预期”,是高效创作的基础框架。 二、分模块详解:建筑提示词词汇库与应用技巧 1. 主体 / 建筑类型:明确 “画什么” 的核心 这是提示词的 “根基”,需精准定义建筑的功能与形态,避免笼统表述。