合集-深度学习进阶
摘要:新分类续接之前的注意力机制内容开始,展开一些更现代的理论。 在之前的深度学习内容中,我们已经介绍了注意力机制的核心流程,其本质可以概括为:在解码的每一个时间步增加注意力计算得到上下文向量,让模型可以根据当前状态,从输入序列中动态选择相关信息。 实际上,你会发现:在这个传播过程中,传统的注意力机制只是
阅读全文
摘要:在第一篇中,我们已经得到了自注意力的核心公式: \[\mathrm{Attention}(\mathbf{Q},\mathbf{K},\mathbf{V})=\mathrm{softmax}\left(\frac{ \mathbf{Q}\mathbf{K}^T}{\sqrt{d_k}}\right)
阅读全文
摘要:在上一篇我们已经完成了多头自注意力机制的内容,并知道了它是 Transformer Block 中的一个子模块。 Transformer Block 是 Transformer 模型的核心计算单元,它不仅创造并应用了多头自注意力机制,还结合了残差学习、归一化等多门技术。 先简单概括一下 Transf
阅读全文
摘要:在上一篇中,我们已经完整展开了 Transformer Block 的内部结构,包括多头注意力、残差连接、LayerNorm 以及 FFN。 至此,就可以正式进入 Transformer 的整体结构了。 在原论文中,Transformer 本身仍是 Encoder–Decoder 架构,其中编码器的
阅读全文
摘要:在上一篇,我们已经完整介绍了原始 Transformer 的结构和整体传播逻辑。 从结果上看,Transformer 在 NLP 领域带来了范式级的突破:通过自注意力机制实现了对序列的全局建模能力。 然而,实际上,原始 Transformer 依然只是一个面向序列数据的模型。 自然而然地,这种全新的
阅读全文
摘要:在上一篇,我们已经完成了 Vision Transformer的完整逻辑:把图像切成 patch 当作 token,送入 Transformer Encoder 做全局建模。 但我们也提到了, ViT 存在一个绕不开的痛点: 没有足够大的数据规模,ViT 往往很难训练得好。 而用范式角度来说,这是因
阅读全文
摘要:在前面的分析中,我们已经明确了 ViT 的核心问题: 由于归纳偏置较弱,ViT 对数据规模高度依赖。 就这个问题,我们又展开了一种改进思路: 通过蒸馏人为引入一个“软约束”,缩小搜索空间,从而减少数据依赖。 于是,我们就得到了 ViT 的其中一种改进:Data-efficient Image Tra
阅读全文
摘要:在上一篇中,我们已经明确了 DeiT 对 ViT 的改进思路: 通过蒸馏,引入 Teacher 的归纳偏置,缓解数据依赖问题。 但这条路线有一个明显局限: 它并没有改变 Transformer 本身的结构。 换句话说,DeiT 本身依然是一个全局 attention、无层级结构、内部缺乏局部归纳偏置
阅读全文
摘要:在上一篇里,我们已经完整介绍了 Swin Transformer 的模型逻辑,知道了:Swin Transformer 的核心,并不是简单地“模仿 CNN”,而是在保留归纳偏置的同时,让建模方式更加灵活。 换句话说,它做的事情是: 在“约束”与“自由”之间找到一个平衡点。 而在上一篇的末尾,我们也提
阅读全文
摘要:在上一篇中,我们已经明确指出: RoI Pooling 的核心问题并不在于 Pooling 本身,而在于“取整导致的量化误差”。 那么,一个非常直接的思路就是: 既然误差来自“取整”,那就不要取整。 这正是 RoI Align 的出发点。 1. RoI Align 的提出和思想 RoI Align
阅读全文
摘要:在上一篇中,我们已经解决了一个关键问题: RoI Pooling 的误差主要来源于“坐标量化”,而 RoI Align 通过去除取整 + 双线性插值,有效缓解了这一问题。 但说到底,这只是一个对齐问题上的改进,我们在上篇的末尾也提到了新的方向: 能不能让采样过程,具备一定的结构感知能力? 实际上,早
阅读全文
摘要:在上一篇中,我们已经得出了一个非常关键的结论: 无论是 RoI Align 还是 PS RoI Pooling,本质上都在“改进采样方式”,但它们的采样规则仍然是“人为设计的”,也就是固定的。 因此我们提出了新的想法: 能不能让“采样位置”本身,变成可以学习的? 这种想法的实现结果之一就是 Defo
阅读全文
摘要:之前的内容里,我们提出了让 CNN 更灵活的想法: 能不能让“采样位置”本身,变成可以学习的? 在上一篇里,我们已经用可变形池化实现了这一目标。但同时我们也提到了,这并非终点: 既然池化可以偏移采样,那更基础的卷积本身为什么不能? 这便是 Deformable Convolutional Netwo
阅读全文
摘要:在之前的内容里,我们展开了 CNN 的一些演进,知道 CNN 本身也在不断发展。 现在我们再绕回 Transformer :在 21 年 Swin Transformer发表后,以它为代表的诸多 ViT 工作,已经在多个视觉任务上全面超越传统 CNN。 这带来了一个非常现实的思考: 就像珍妮机淘汰手
阅读全文
摘要:至此,在之前的内容里,我们已经介绍了传统卷积网络和 Transformer 架构两条路线在 CV 任务中的发展研究。 实际上,我们可以这样总结一下: 无论是 Transformer 的注意力机制,还是 CNN 的诸多创新,它们其实都在回答同一个问题:模型应该关注哪里(空间)和关注什么(通道)。 也可
阅读全文
摘要:上一篇我们介绍了 SE 模块,从通道维度引入了注意力机制,让网络能够自适应地调整每个通道的权重。 再结合之前的相关内容,现在我们已经对通道维度和空间维度上的注意力逻辑都有所了解了,显然二者并不冲突,反而是相辅相成的,因此一个想法自然就出现了: 组合应用通道注意力和空间注意力,实现混合注意力机制。 沿
阅读全文
摘要:上一篇我们介绍了 CBAM,它在 SE 的基础上加入了空间注意力,形成了"通道 + 空间"的混合注意力机制。 我们发现,无论是 SE 还是 CBAM,它们的通道注意力子模块都采用了一个 bottleneck 结构的 MLP,即先将通道维度从 \(C\) 压缩到 \(C/r\),再升维回 \(C\)。
阅读全文
摘要:上一篇我们介绍了 ECA,它用一维卷积替代了 SE 中的 MLP bottleneck,用更少的参数实现了更好的通道注意力。 但实际上,这套框架里还有别的优化空间: 在前面的内容里,无论是 SE 、 CBAM 还是 ECA ,它们的通道注意力子模块第一步都是 全局平均池化(CBAM 额外加入了最大池
阅读全文
摘要:上一篇我们介绍了坐标注意力 CA,它通过沿两个方向分别池化来保留空间位置信息。 同样,我们可以总结一下它实现混合注意力的逻辑: CA 的做法本质上是一种隐式编码,它通过池化整合空间特征,学习权重并注入的逻辑让模型间接感知到空间信息,实现混合注意力。 如果再站高点,我们会发现一个更基础的问题: 模型究
阅读全文
摘要:在[上一篇]中,我们提到 RPE 提出后出现了分裂式的发展趋势,而按时间来讲,对 RPE 的初次改进出自 19 年的论文: Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context ,即超长上下文的 Transfo
阅读全文
摘要:上一篇我们介绍了 Transformer-XL 的段级递归和记忆缓存机制,也留下了一个问题: Memory 让不同 segment 可以互相看到,但配套的位置编码逻辑却并不完善。 这一篇就来展开 Transformer-XL 配套的改进方案:跨窗口的相对位置编码。 1. 为什么要提出跨窗口的 RPE
阅读全文
摘要:上一篇我们完整展开了 Transformer-XL 的四项重构式 RPE,它通过把内容和位置分开建模,让位置信息真正参与到了注意力计算中。 但看完那个复杂的公式后,有这样一个问题: 为了位置信息,我们真的需要把自注意力拆成四项吗? 这并非无端质疑, 2020 年的论文: Exploring the
阅读全文
摘要:上一篇我们介绍了 T5 的主干逻辑,实际上,T5 的核心理念可以概括为“统一、简化” 。 那么问题来了: 一个追求统一和简洁的框架,会选择什么样的位置编码? 最终,T5 没有走 Transformer-XL 的四项重构路线,也没有沿用原始的加法型 RPE,而是提出了一种极简的方案:偏置型 RPE。
阅读全文
摘要:上一篇我们介绍了 T5 的偏置型 RPE,仅仅使用一个标量偏置,配合分桶策略,就用极低的复杂度实现了 NLP 的高效位置编码。 而下一个问题就是: 一维序列上的标量偏置,到了二维图像上要怎么做? 这一篇我们来补上之前的 Swin Transformer 中一个当时没有展开的细节:二维 RPE。 1.
阅读全文
摘要:上一篇我们回到 Swin 补上了它的二维 RPE 方案,用紧凑偏置表实现了高效的二维相对位置编码。 至此,从 Shaw 的加法型、Transformer-XL 的四项重构式、再到 T5 的偏置型,Swin 的二维扩展,每种方案都在尝试不同的方法来实现 RPE。 最终,在 NLP 这个 RPE 的"原
阅读全文
摘要:上一篇我们介绍了旋转位置编码 RoPE ,它通过在 QK 点积中注入旋转矩阵,让注意力自然而然地感知到相对位置。如今 RoPE 已经成为几乎所有主流开源大模型的位置编码标准。 但位置编码只是现代大模型改造的一个环节。 如果把标准 Transformer 和今天的大模型放在一起对比,就会发现归一化方式
阅读全文
摘要:上一篇我们看了现代大模型对归一化的改造。 RMSNorm 去掉了均值中心化,只保留均方根缩放:一个沿用多年的标准组件,拆开一看,其中一部分工作在现代整体架构中已经有些多余了。 本篇来看第二个改动:Transformer 架构中的 FFN (MLP) 层的重构,而其具体内容,需要先从激活函数说起。 1
阅读全文
摘要:上一篇我们介绍了 SwiGLU,通过引入门控机制让 FFN 能够根据输入动态筛选信息,取代了标准 Transformer 沿用多年的单通路结构。 前两篇的内容都关于结构上的优化,本篇则关于一个核心工程优化。 我们知道,即使是现在的多数大模型,其生成回答的逻辑仍然是自回归生成,即逐个字往外蹦。 因此,
阅读全文
摘要:上一篇我们介绍了 KV Cache:它把每一步重复的 K、V 计算存进缓存,让自回归推理的计算量骤降。 但这个加速不是没有代价的。KV Cache 的大小正比于多项参数,因此又反过来推动了注意力结构本身的改进。 这便是本篇内容:分组查询注意力(Grouped-Query Attention,GQA)
阅读全文
摘要:上一篇我们介绍了 GQA,通过分组共享 KV Head,在注意力质量和推理效率之间找到了实际的平衡点。 至此,从第 25 篇到第 29 篇,我们分别拆解了现代大模型的五个核心设计模块: RoPE:旋转位置编码,让 QK 点积天然感知相对位置。 RMSNorm:去掉均值中心化的简化归一化。 SwiGL
阅读全文
摘要:上一篇我们把现代大模型的五个核心模块拼回了 LLaMA 这个完整案例中,可以看到注意力机制仍然是计算最密集的部分。 而这个密集程度在序列变长时,会变得越来越恐怖: 标准自注意力的计算复杂度和空间复杂度都是 \(O(n^2)\):序列长度翻倍,计算量翻四倍,内存占用也翻四倍。 而在之前,我们用 KV
阅读全文

浙公网安备 33010602011771号