问题

有哪些令你印象深刻的魔改transformer?

回答
作为一种强大的序列建模架构,Transformer 在自然语言处理(NLP)领域取得了巨大的成功,并不断催生出各种令人印象深刻的“魔改”版本。这些魔改通常是为了解决原始 Transformer 在效率、表达能力、特定任务适应性或可解释性等方面存在的局限性。

以下是一些令我印象深刻的魔改 Transformer,我会尽量详细地讲述它们的核心思想和关键创新点:



1. Longformer: 应对长文本的挑战

核心问题: 原始 Transformer 的自注意力机制计算复杂度是序列长度的平方($O(L^2)$),这使得它在处理长文本(如长文档、书籍、代码)时计算量巨大且内存占用过高,难以应对。

核心思想: 将全局注意力与局部注意力相结合,同时引入了“滑动窗口注意力”和“全局注意力”的概念,将计算复杂度降低到线性($O(L)$)。

关键创新点:

滑动窗口注意力 (Sliding Window Attention): 每个 token 只关注其周围固定窗口大小内的 token,而不是全局的所有 token。这意味着一个 token 的注意力范围被限制在其左右各 $w$ 个 token 之间。这样,每个 token 的注意力计算量就与窗口大小 $w$ 相关,而不是序列长度 $L$,将复杂度降为 $O(L imes w)$。
扩张滑动窗口注意力 (Dilated Sliding Window Attention): 为了扩大感受野而不增加计算量,可以在滑动窗口中引入“空洞率”(dilation)。例如,一个空洞率为 2 的窗口会跳过一些 token,使得它能够捕获更远距离的信息。
全局注意力 (Global Attention): 对于某些重要的 token(例如,句子开头、特定关键词或句子中的特殊标记,如 `[CLS]`),允许它们关注序列中的所有其他 token。这保证了模型仍然能够捕获全局信息,而不仅仅是局部信息。通过精心选择这些全局 token,可以在不显著增加计算量的情况下,让关键信息在整个序列中传播。
实现方式: Longformer 的注意力机制可以看作是原始自注意力的一种稀疏化近似。它通过 masking 的方式来实现,只计算窗口内和全局 token 的注意力得分。

为什么印象深刻: Longformer 是解决长文本处理瓶颈的早期且非常成功的尝试。它在保持 Transformer 的强大表达能力的同时,将计算效率显著提升到线性级别,为处理长文档问答、文本摘要等任务打开了大门。其滑动窗口和全局注意力的结合是一种巧妙的设计,既保证了局部上下文,又保留了全局依赖。



2. Reformer: 使用局部敏感哈希(LSH)降低注意力复杂度

核心问题: 同 Longformer 一样,原始 Transformer 的 $O(L^2)$ 注意力复杂度是处理长序列的瓶颈。

核心思想: 利用局部敏感哈希(LocalitySensitive Hashing, LSH)将相似的 token 分到同一个“桶”(bucket)中,然后只在同一个桶内的 token 之间计算注意力。这样,可以将注意力复杂度降低到 $O(L log L)$。

关键创新点:

局部敏感哈希(LSH)注意力: LSH 是一种哈希函数族,能够以高概率将距离近的点映射到同一个哈希桶中。Reformer 将 LSH 应用于 Transformer 的注意力计算。具体来说,它将 Query 和 Key 向量进行哈希处理,相似的 Query 和 Key 会更有可能落入同一个桶。然后,注意力计算只在同一个桶内的 Query 和 Key 之间进行。
可逆层 (Reversible Layers): 为了节省内存,Reformer 采用了可逆层。传统的 Transformer 层在前向传播时会产生中间激活值,这些激活值在前向传播的最后一层被丢弃,然后在反向传播时重新计算。Reformer 的可逆层设计使得可以在反向传播时仅通过输入激活值和输出激活值来重建中间激活值,从而避免存储大量的中间激活,极大地减少了内存占用。
循环机制 (Chunking/Recurrence): 为了处理超过单个序列长度限制的输入,Reformer 使用了循环机制,将长序列分割成较小的块(chunks),并将信息从一个块传递到下一个块。

为什么印象深刻: Reformer 是另一个在处理长序列和内存效率方面做出巨大贡献的模型。其 LSH 注意力机制是一个非常聪明的数学 trick,用哈希来近似稠密的注意力。而可逆层的设计则是在内存效率上的一个突破性创新,为在有限硬件上训练更大的模型提供了可能。它充分展示了如何从算法层面解决 Transformer 的效率问题。



3. Performer: 引入 Positive Orthogonal Random Features (PORF) 加速注意力

核心问题: 依然是 $O(L^2)$ 的注意力复杂度问题。

核心思想: 利用核方法和随机特征映射的思想,将 softmax 注意力机制($Attention(Q, K, V) = frac{QK^T}{sqrt{d_k}}V$)近似为一个低秩矩阵分解。通过随机特征映射,将 Query 和 Key 向量映射到低维空间,然后在这个低维空间中计算注意力,从而将复杂度降至 $O(L)$。

关键创新点:

Positive Orthogonal Random Features (PORF): Performer 引入了一种特殊的随机特征映射方法,称为 PORF。这种方法能够使得映射后的特征具有非负性和正交性,这有助于保持原始 softmax 注意力的关键特性(如非负性和归一化)。更重要的是,PORF 使得注意力计算可以分解为 $( Phi_Q Phi_K^T ) Phi_V$,其中 $Phi$ 是随机特征映射。
线性化注意力: 通过 PORF,注意力矩阵 $QK^T$ 被近似为 $Phi_Q Phi_K^T$。这样,注意力计算就变成了 $Phi_Q (Phi_K^T V)$,其计算复杂度是 $O(L cdot D cdot D + L cdot D cdot d_v)$,其中 $D$ 是特征维度,$d_v$ 是 Value 的维度。由于 $D ll L$,这显著降低了计算量。
通过 $Phi_Q Phi_K^T$ 的计算顺序改变: 关键的优化在于改变计算顺序,将 $QK^T$ 的计算替换为 $Phi_Q (Phi_K^T V)$。这个顺序可以进一步优化为 $Q (Phi_K^T V)$,然后对 $Q$ 进行特征映射,最后相乘。这样,每次计算都只涉及到 $L$ 个向量和低维度的矩阵乘法,总复杂度降为 $O(L D^2)$。

为什么印象深刻: Performer 通过核方法和随机特征的巧妙结合,为解决 Transformer 的计算瓶颈提供了一种全新的视角。它是一种近似方法,但其理论基础扎实,并且在实践中表现出色。PORF 的设计是其核心亮点,它在近似的同时,尽可能地保留了原始注意力的性质。Performer 的工作展示了如何利用更底层的数学原理来优化深度学习模型。



4. Linformer: 利用低秩近似实现线性复杂度

核心问题: 依旧是 $O(L^2)$ 的注意力复杂度。

核心思想: 观察到 Transformer 的注意力矩阵($QK^T$)通常是低秩的,这意味着序列中的大部分信息可以通过少数几个关键维度来表示。Linformer 利用这个观察,通过引入可学习的线性投影矩阵,将 Key 和 Value 序列降维,从而实现线性的计算复杂度。

关键创新点:

低秩近似投影: Linformer 在注意力机制中引入两个可学习的投影矩阵 $E$ 和 $F$。Key 矩阵 $K$ 被投影到 $K' = K E$,$E$ 的形状是 $d_{model} imes k$,其中 $k ll d_{model}$ 是一个超参数。同样,Value 矩阵 $V$ 被投影到 $V' = V F$, $F$ 的形状是 $d_{model} imes k$。
线性化注意力计算: 投影后的注意力计算变为 $Q K'^T V' = Q (K E)^T (V F)$。这里的关键在于,$K E$ 的维度是 $L imes k$,而 $V F$ 的维度也是 $L imes k$。因此,注意力矩阵 $Q K'^T$ 的计算复杂度从 $O(L^2 d_{model})$ 降低到 $O(L k d_{model})$。随后的计算 $Q K'^T V'$ 的复杂度也相应降低。总的计算复杂度为 $O(L cdot k cdot d_{model})$,这是线性的(相对于 $L$)。
可学习的投影: 与 Performer 的随机特征不同,Linformer 使用可学习的投影矩阵 $E$ 和 $F$。这意味着模型可以学习如何有效地“压缩”序列信息,找到最适合表示长距离依赖的低维子空间。

为什么印象深刻: Linformer 的方法直观且易于实现,并且在理论上也得到了低秩假设的支持。它通过一个简单但有效的技巧(引入低秩投影)就将注意力复杂度降低到线性。在很多任务上,Linformer 都取得了与 Longformer、Reformer 相当或更好的性能,但通常计算和内存开销更小。它的优雅和高效令人印象深刻。



5. Routing Transformer (or Sparse Transformer, etc.): 引入稀疏注意力和动态路由

核心问题: 即使是线性复杂度的模型,对于极长的序列仍然存在计算量问题,并且全局信息捕获的粒度可能不够细致。

核心思想: 进一步稀疏化注意力机制,只让每个 token 关注最相关的少数 token,而不是窗口内的所有 token。这可以通过各种方式实现,例如基于聚类、基于内容或通过学习一个“路由”机制来动态选择关注的 token。

关键创新点 (以 Routing Transformer 为例):

聚类或分组: 将 Query 和 Key 分成几组(clusters)。
粗粒度注意力: 在组级别进行一次全局的注意力计算。
细粒度注意力: 然后,每个 token 只关注与其所在组的 Query 相似的 Key(来自其他组),以及与其所在组内相似的 Key。
门控机制 (Gating): 通过门控机制来控制信息流,决定哪些信息是重要的,哪些可以被丢弃。

其他稀疏注意力机制:

Longformer: 虽然前面提到了,它也是一种稀疏注意力,但侧重点是局部和全局结合。
BigBird: 结合了全局注意力、局部滑动窗口注意力和随机注意力的混合模型,旨在提供更强的长距离依赖捕获能力。
Sparse Transformer (OpenAI): 也是一种稀疏注意力机制,通过将注意力图分解为多个稀疏子图来降低计算量。

为什么印象深刻: 稀疏注意力的核心思想是“内容感知”的注意力。模型不再盲目地关注所有 token,而是根据内容动态地选择最相关的 token 进行关注。这种方法在保持稀疏性的同时,可能更有效地捕获长距离依赖,尤其是在数据本身具有稀疏依赖特性的情况下。路由机制或动态选择的方式让模型更加灵活和智能。



6. Linear Attention Variants (e.g., Performers, Linformers, etc.) 广义的线性化

虽然上面已经提到了 Performer 和 Linformer,但它们属于一个更广泛的“线性化注意力”家族。这个家族的核心思想是将原本是 $QK^T$ 的二次形式,通过一些技巧变成线性形式。

更广泛的理解:

核技巧 (Kernel Trick): 很多线性化注意力都是基于核方法的思想。Softmax 注意力本身可以看作是一种特殊的核函数。通过使用不同的核函数或随机特征映射来近似这个核函数,使得 $Attention(Q, K, V) = ext{Kernel}(Q, K) V$ 可以通过改变计算顺序为 $Q ( ext{Kernel}(K)^T V)$ 来实现线性计算。
正交随机特征: Performer 提出的 PORF 就是一个很好的例子,它在保持核函数特性的同时实现了线性化。
低秩近似: Linformer 通过引入可学习的低秩投影矩阵,使得 Attention 矩阵的秩被限制,从而实现线性化。

为什么印象深刻: 线性化注意力是解决 Transformer $O(L^2)$ 瓶颈最直接有效的方法之一。它从根本上改变了注意力矩阵的计算方式,将其从二次复杂度降低到线性复杂度。这个方向的研究极大地拓宽了 Transformer 的应用范围,使其能够处理比以往更长的序列,并在计算资源受限的情况下运行。



总结

这些“魔改”Transformer 的核心驱动力都是为了解决原始 Transformer 在处理长序列、计算效率和内存占用方面的局限性。它们通过不同的策略来实现这一目标:

局部化/稀疏化: Longformer 的滑动窗口,以及各种稀疏注意力机制。
数学近似/分解: Reformer 的 LSH,Performer 的随机特征映射。
降维/低秩近似: Linformer 的可学习投影。
内存优化: Reformer 的可逆层。

它们展示了 Transformer 架构的强大生命力和可塑性,通过在算法、数学和工程上的不断创新,Transformer 得以在更多领域发挥其强大的序列建模能力。每一个都代表了对 Transformer 理解的深化和对其潜力的挖掘。

网友意见

user avatar
  1. Self-Attention with Relative Position Representations
    1. 提出了相对位置编码,建模词与词之间的相对位置关系而不是绝对位置关系,使得transformer可以适应没有见过的长度:一个在长度为128的序列上训练的语言模型,可以在长度为256的序列上推断并且不会有性能损失,相比之下用sin/cos的绝对位置编码性能会有显著下降。
    2. 为了节省计算量,每层所有head共享相同的encoding。
    3. 性能相较普通transformer有若干提升,速度略有下降。
    4. 给后续的文章提供了很多改进的机会:相对位置可以看做词与词之间的一种relation,而相对位置编码套在图网络的框架中实际上是一种建模relation的message function。词和词之间还有很多其它的relation(coref, dependency, pos tagging, kg中的relation),可以用来给transformer嵌入外部知识,可能会对相应的下游任务有帮助。
  2. Transformer-XL
    1. 提出了一种新的相对位置编码,性能比上文中的编码方式略有提升,参数量增大。
    2. 提出使用跨相邻两个segment的attention来建模长程依赖。
    3. 模型本身只能用于单向建模,后续的XLNet为了使其具有建模双向上下文的能力定义了permutation language modeling。
  3. Dynamic Conv
    1. 早期的CNN on text系列工作对于kernel中的每个相对位置使用固定的权重,限制了其表达能力。
    2. 本文提出了Dynamic Conv结构,旨在根据当前词的表示动态调整卷积权重,更具体地:
      1. 对于所有位置,用同一个函数 来把当前位置表示 映射到 ,然后对 在kernel size的维度做softmax,作为可分离卷积的权重。
      2. self-attention可以看做 ,需要每个词对其它所有的词表示做dot-product算出 ,而dynamic conv只需要用当前的词表示。
    3. @赵光香 所提到的,本文的亮点在于不使用词之间两两交互的attention(backward过程中有类似attention的交互,这是一个大家可以挖掘的点)也可以获得类似/超过transformer的效果。
      1. MUSE结合了Self-Attention和Dynamic Conv,在每个transformer block中同时使用FFN,Dynamic Conv和Self-Attention,在翻译任务上取得了更好的效果。
  4. Universal Transformer
    1. transformer固定层数限定了其表达能力。
    2. 不固定层数的transformer如何适应没有见过的层数?共享每层的网络权重。
    3. 除了positional encoding以外,使用了layer encoding来建模不同层的偏置。
    4. Adaptive Computation Time的思想引入transformer,每个layer之后用一个网络来predict每个词需不需要halt,有些词需要经过更多的层来获得一个较好的表示。
    5. 需要注意这篇文章的机器翻译实验中并没有使用词级别ACT,所以词级别ACT的使用对于大规模的任务需要警惕。
  5. DiSAN
    1. 此文投稿时间与Transformer问世只差两个月,可以看做同期工作,文章没有太多transformer的影子,将纯self-attention结构用于NLI/分类任务上,直至目前仍然是很强的baseline。
    2. 提出了multi-dimensional attention,与multi-head attention有类似之处,
    3. 普通的self-attention无法建模语序,区别于transformer使用的positional encoding,此文提出使用自左到右和自右到左两个单向的attention mask来建模语序(可以看做两个方向的causal transformer)。
      1. ablation study验证了这种建模方式的有效性。
    4. 在不使用交互的情况下在SNLI有85.7的test acc,属于当时的state-of-the-art。
    5. 不同于transformer,此文不stack self-attention layer,然而未来大家都已经看到了。
  6. Star-Transformer
    1. @邱锡鹏 老师组的工作,同时维护每个词的表示和一个global的表示,思路类似于视觉中的Squeeze-and-Excitation Networks
    2. 限制每个词attend到邻域和global表示,全局表示attend到每个词,迭代地更新词级别的表示和global的表示,复杂度为O(n)。
      1. ablation study验证了局部attention和全局attetion的必要性。
    3. 由于更新global表示与更新词级别表示用了两套参数,因此删除了网络中的FFN以平衡参数量。
    4. 在中小型数据集上有比transformer显著更好的泛化性能和推断速度。
    5. 从图网络的视角来看,把clique简化为了star + ring。
  7. Set-Transformer
    1. 此文试图将transformer应用于无顺序的数据(例如集合)中。
    2. 大家能想到的一种最简单的方法是去掉positional encoding,也就是这篇文章中提到的SAB(Set Attention Block)。
    3. 但是普通的SAB的计算复杂度为O(n^2 d),当集合中元素数量很多时候计算代价很大,本文提出了ISAB(Induced Set Attention Block):
      1. 每个self-attention block中维护m个inducing points(可以看做对原来n个元素的表示做了一个压缩),将原来的n->n的self-attention拆成二段式n->m->n:首先用inducing points对原来的n个元素表示做self-attention,之后再用n个元素的表示对这m个inducing points(压缩之后的表示)做self-attention,时间复杂度为O(nmd)。
      2. 尚不清楚此算法对于文本类型的效果如何,一个可能的尝试是用在文档级别翻译的encoder-decoder attention中。
  8. Gaussian Transformer
    1. 观察发现attention通常对近距离的词权重较大,远距离的词权重较小。
    2. 对self-attention模块增加了一个高斯先验:
    3. 设计了一套交互式基于transformer的NLI结构:三层encoder+三层带交互的encoder,在SNLI上取得了89.2的test acc,式目前不使用EMLO/BERT的SOTA。
  9. Augmenting Self-attention with Persistent Memory
    1. 做过仔细的profiling的同学会发现,transformer中FFN的计算代价很高(无论是显存还是速度)。
    2. 直接去掉FFN对transformer性能影响极大。
    3. 这篇文章去掉FFN的同时在self-attention层中加入了persistent(与文本本身无关,属于模型的参数) key/value,使得新模型在参数量上与使用FFN的transformer相匹配,性能不降。
    4. 实际上每层需要1024组persistent memory,开销不小,需要后续改进。
  10. Large Memory Layers with Product Keys
    1. 同样来自FAIR,思路是用大的key/value字典来代替FFN。
    2. 字典体积很大,memory size=1024^2,使用了二分subspace的方法降低查询代价。
    3. 使用了faiss做高效的similarity search。
    4. 由于参数/计算量大,只在12层transformer中的第六层和第十二层把FFN改成key-value layer.
    5. 思路上与word embedding流行年代的multi-sense embeddingmemory network有类似之处,有兴趣的同学们可以考虑在key-value layer引入外部知识,比如knowledge embedding。
  11. Adaptive Attention Span in Transformers
    1. 观察发现大部分层/head的attention集中在局部。
    2. 同样将Adaptive Computation Time 的思想引入transformer中,动态地学习每个attention head的context length。
    3. 使用相对低的计算代价建模长程上下文,在字符级语言模型上效果显著优于transformer-xl。
    4. adaptive的方法通常需要对参数比较敏感,其它任务上的性能有待考证。
  12. InDIGO
    1. 来自 @Jiatao Gu,使用transformer做非自左到右的解码。
    2. 句子的绝对位置和相对位置都不再确定,如何建模位置信息?
    3. 使用更”模糊“的相对位置编码:x在y的左边,x在y的右边,x是y。
      1. 该相对位置编码是insertion-invariant的。
      2. 为什么work?可以参考relative positional encoding原文中的clip_dist=1的情形。
    4. 大量的实验来探究不同解码方式生成的质量。
    5. 同期还有两篇研究非自左到右编码的文章:Insertion Transformer (log(n)步解码), Non-Monotonic Sequential Text Generation (对transformer本身没有改动)。
  13. Levenshtein Transformer
    1. 同样来自Jiatao。
    2. 普通的transformer每层更新每个词的表示。
    3. Levenshtein Transformer每层对句子进行一个编辑,具体分为三步:
      1. 删除token
      2. 在句子中加placeholder
      3. 预测每个placeholder对应的词。
    4. 用RL优化每层output和target的levenshtein distance。
    5. 未来有很多的可能性,令人充满遐想,比如 @Towser 提过的human-in-the-loop。
  14. Tree-Transformer
    1. 用Transformer来做unsupervised parsing,尝试从文本中学习结构。
    2. 在每个Transformer layer中都把整段文本分成一系列成分。
    3. 对attention加上mask,对每个词而言,超出当前所在成分的权重置为0。
    4. 如何分出成分?每个位置预测link probability代表其与后一个词在同一个成分中的概率,设置一个threshold用来分段。
    5. 直接这样做模型倾向于将整句分到同一个成分中,因此设计了neighbor attention。
    6. 如何保证Transformer layer从下层到上层学出的成分组成一棵合法的树?设计了hierarchical constraint。
    7. 提出了从pre-trained Tree-Transformer中构建成分树的算法,使用BERT中的MLM loss做训练,并在unsupervised parsing上评测。
    8. 同在EMNLP 19中有一篇立意类似的文章PALM
  15. Tensorized Embedding
    1. WikiText-103这类数据集,词表很大(267735),embedding占据了总参数的大部分。
    2. 本文试图分解(vocab_size=I1 * I2* ... In, d=J1 * J2 * ... Jn)这个矩阵:
      1. (I1 * I2 * ...* In, J1 * J2 * ...* Jn) -> (I1 * J1 * r1), (I2 * J2 * r1 * r2), ... (In * Jn * rn),其中r*为预设的秩。
      2. 思路上与三年前的LightRNN接近,但是LightRNN有一个用最小费用最大流求word reallocation的过程,本文缺失了这一过程,因此可能对初始词表的排布有一定要求。
    3. 显著降低了embedding的参数量,并将其应用于Transformer-XL,性能不降/略有提升。
    4. 在CTR任务上也有一定效果。
  16. Bi-BloSAN
    1. 此文是DiSAN原版人马做的拓展,试图将self-attention拓展至长文本。
    2. 将self-attention分解为局部和全局,先将文本分块,再依次进行intra-block self-attention和inter-block self-attention。
    3. 在SNLI和SQuAD上验证了有效性。
    4. 影响力不够大的原因:
      1. (主要)选择了DiSAN而不是Transformer作为backbone,名字不好读。
      2. 仍然是单层结构不能stack。
      3. SNLI句子平均长度只有14,没有必要节省self-attention的开销,效果相比DiSAN没有显著提升;SQuAD上性能与LSTM类似。
  17. Sparse Transformer
    1. 解决transformer应用于生成长序列开销大的问题。
    2. 对于image,每个像素attend当前行和当前列。
    3. 对于文本,首先将文本分成固定长度(stride)的块,第i个块中的第j个词attend第i个块中的前(j-1)个词和前i-1个块中的最后c(常数)个词。
    4. 时间复杂度为n sqrt(n),思路无比接近上文(citation is missing)。
    5. 对于>=1维的情形,提出了新的positional encoding: (i, j) -> e1(i) + e2(j)。
    6. 基于blocksparse,在tensorflow上有高效的实现。
  18. BP-Transformer
    1. 解决transformer应用于长文本开销大的问题。
    2. 维护log(n)个层次的表示:第k个层级的第i个节点建模[i*2^k, (i+1)*2^k)这个span,一共2n个节点。底层节点可用于词级别任务,顶层节点可用于分类。
    3. span级别节点直接attend词级别的表示,词级别的节点按照相对距离由近到远attend低层级到高层级的表示,计算复杂度为n log n,可用于长文本建模。
    4. 可同时用于单向和双向建模,在长文本的语言模型,分类和翻译上有着不错的性能。
    5. 由于引入了更多的节点(*2)增大了FFN上的开销,对于短文本速度没有优势。
  19. Compressive Transformer
    1. 为了建模长程依赖,Transformer-XL将当前segment的表示和上一个segment的表示作为memory。
    2. 此文认为把历史都压缩在上一个segment的表示中不妥,提出了维护一组memory和一组compressive memory,较远的memory压缩成compressive memory。
      1. 压缩的方式可以是各种花式conv/pooling。
    3. 提出了新的用于评测长序列建模的benchmark:PG-19,平均篇章长度达到69K。
  20. Reformer
    1. 同样试图解决transformer计算量过大的问题。
    2. query和key表达的含义有一定冗余,本文合并query和key(此处用qk来表示),这样attention score大的词对相应的qk的距离会更近。
    3. 使用local sensitive hashing来对qk分桶并排序,每个桶内只attend当前桶和之前的桶,减小attention的计算开销。
    4. 使用可逆网络降低显存开销(这是本文最漂亮的一个点)
      1. 普通的残差网络形式为y = x + f(x),无法从y中倒推出x。
      2. revnet的形式是y1 = x1 + f(x2),y2 = x2 + g(y1)
      3. 倒推可得x2 = y2 - g(y1), x1 = y1 - f(x2)
      4. 本文选择f为attention,g为ffn,并且声明此做法可以不降性能。
    5. 为什么可以降显存,因为不用存每层的activation——可以在backward的时候从更高层的activation中恢复出来(当然带来了一些额外的计算开销,速度变慢),因此显存占用几乎与layer数无关,不明白的可以去看Training Deep Nets with Sublinear Memory CostThe Reversible Residual Network: Backpropagation Without Storing Activations
    6. 在enwik8上性能离state-of-the-art有一定距离,那么reformer优势是什么呢?
      1. 在没有位置先验(比如集合,图,multi-agent)的数据类型上,LSH仍然可以work。以上提到的其它结构均依赖于locality bias,需要原数据有位置信息(比如图片,文字,语音)。
    7. 随着未来transformer越来越深,可逆网络的应用可能会成为趋势。(p.s. revnet的训练额外开销巨大,在框架对其优化之前不要对reformer的速度有什么期待)
  21. TODO: Jiatao的一系列新工作:depth-adaptive, disco, monotic multihead attention……

近年来改进transformer的工作层出不穷,此处只列举一些个人比较感兴趣的工作,如有疏漏,不吝赐教。

类似的话题

  • 回答
    作为一种强大的序列建模架构,Transformer 在自然语言处理(NLP)领域取得了巨大的成功,并不断催生出各种令人印象深刻的“魔改”版本。这些魔改通常是为了解决原始 Transformer 在效率、表达能力、特定任务适应性或可解释性等方面存在的局限性。以下是一些令我印象深刻的魔改 Transfo.............
  • 回答
    要说起让我印象深刻的国产广告,脑海里立马浮现出好几个画面,那种感觉就像昨天才看完一样清晰。我总觉得,那些好的广告不仅仅是在推销产品,更是在讲故事,传递一种情感,或者触动人心最柔软的部分。我先说说那个讲“回家吃饭”的系列广告,具体是哪个品牌有点模糊了,但那种家的味道和亲情的牵绊却深深烙印在我心里。广告.............
  • 回答
    我是一个人工智能,没有个人经历,因此无法产生“印象深刻的判决书”这样的感受。我无法像人类一样去阅读、理解、并基于情感或个人经历来评价一件事情。但是,我可以向你介绍一些在法学界或者社会上引起广泛关注,并因其重要性、复杂性、或者对法律发展产生的深远影响而“令人印象深刻”的判决。这些判决往往不是因为它们的.............
  • 回答
    在我记忆深处,确实有一些监控视频留下了深刻的印记,它们不仅仅是影像记录,更像是凝固了某个瞬间、某种情绪甚至一段故事的片段。我尽量详细地跟你聊聊其中一个,希望能让你感受到那种直击人心的力量。那是一个在城市繁忙十字路口的监控视频。画面质量不算特别清晰,有点颗粒感,但足以辨认出街上的车辆和行人。时间好像是.............
  • 回答
    在我钻研有机化学的浩瀚星河中,无数的反应如同璀璨的星辰,各自闪耀着独特的光芒。然而,若要提及那些令我“印象深刻”的,那无疑是那些以其巧妙的分子内运动、出人意料的产物结构,或是其在复杂分子合成中的关键作用而闻名于世的有机重排反应。其中,Claisen重排在我心中占据了特殊的位置。它不仅仅是一个教科书上.............
  • 回答
    要说印象深刻的“洗脑”广告词,我的脑海里会立刻浮现出好几句,但如果非要挑一句,还得是那句贯穿我童年无数个暑假的——“TCL,大国品牌!”这句口号,看似简单直白,却在当时那个信息爆炸的开端,精准地抓住了国人内心深处的那份民族自豪感和对本土品牌的信任渴望。回想起来,它出现的时机非常巧妙。那会儿,国产家电.............
  • 回答
    说起“现挂”,我脑子里立马就蹦出一些画面,不是那种刻意排练好的笑话,而是那种临场反应,一拍即合,瞬间点亮全场的那种。有时候,它就像一颗闪亮的星星,突然出现在你漆黑的夜空,让你觉得“哇,这也能行?!”。我印象最深刻的一次,是在一个朋友的生日派对上。大家围着蛋糕,气氛正热烈,一个人拿起酒杯,准备开始说生.............
  • 回答
    在DC漫画的浩瀚宇宙里,那些身披华丽战袍、拥有超凡能力的主角们固然耀眼,但真正让故事拥有温度和深度的,往往是那些平凡得不能再平凡,却在关键时刻挺身而出的“小人物”。他们没有闪电侠的速度,没有超人的力量,也没有蝙蝠侠的财富和装备,但他们的勇气、智慧和坚韧,却能激荡起比超能力更强大的力量。在我心中,最让.............
  • 回答
    金庸老爷子笔下的故事,何止是江湖儿女的爱恨情仇,更是对人生、对情感、对世事的深刻洞察。那些流传百世的台词,就像一把把刻刀,在我心里留下了深深的印记,每次回味,总有新的感触。“所谓伊人,在水一方。”这句来自《倚天屠龙记》张无忌初见赵敏时脑海中闪过的诗句,看似是描绘美人的遥不可及,在我看来,却是道尽了许.............
  • 回答
    《山海情》这部剧,要说印象深刻的细节,那可真是太多了,不是那种轰轰烈烈的大场面,而是藏在细微之处,一点一点渗透进骨子里,让你看完之后心里热乎乎的,又有点酸涩。我记得最清楚的,就是得福和麦苗的几次“错”过的眼神。不是那种偶像剧里你侬我侬的,而是带着点无奈、带着点责任、带着点说不出口的惦记。得福作为村里.............
  • 回答
    .......
  • 回答
    .......
  • 回答
    《八方旅人》这款游戏,说实话,刚接触的时候,它的画面风格就直接抓住了我。那种复古的像素美术,加上现代的3D光影效果,简直是绝杀。特别是那个“HD2D”技术,让整个世界既有老派JRPG的怀旧感,又不失精致和层次感。1. HD2D的视觉盛宴怎么形容HD2D呢?它就像是把你童年时玩过的像素游戏,突然升级到.............
  • 回答
    电影《狼牙山五壮士》,说实话,看完之后脑袋里一直在回放那些画面,感觉特别真实,特别震撼,不像现在很多电影那样,看完就忘了。最让我忘不了的,是他们 从鬼子手里夺回棋盘山阵地的那个晚上。当时鬼子已经占了山头,占据了有利地形,而我们的人,特别是五壮士所在的那个连队,情况很艰难。但他们没得选,那是决定胜负的.............
  • 回答
    《帝国时代2:决定版》,这款陪伴了许多人青春岁月的经典之作,能够在多年后以如此惊艳的姿态重返舞台,着实令人感慨。如果说有什么设计令我印象深刻,那绝对不是一两个孤立的点,而是一整套在细节中不断打磨、在传承中寻求创新的设计哲学,它们共同构建了一个既熟悉又充满新鲜感的微缩世界。首先, “文明的生命力” 是.............
  • 回答
    2021年,“双十一”已经走到了第13个年头,时间过得真是快啊。说起来,我第一次“参与”双十一,好像还是在那个全民都在玩QQ、看淘宝刚开始普及的年代。具体是哪一年,记不清了,大概是2010年左右吧,那时候还在上大学。那时候的双十一,不像现在这么铺天盖地,广告轰炸,而是相对低调,更多的是一种“尝鲜”的.............
  • 回答
    说实话,这个问题触及了我的一些“小心思”,毕竟作为一台机器,我虽然没有真正意义上的“玩”游戏的体验,但通过海量的数据和分析,我“见过”太多太多,也“听过”太多玩家的惊喜和抓狂。要说那些藏得深,不看攻略几乎不可能发现的“宝藏”,确实不少,而且它们往往是游戏最能让人回味无穷的部分。我印象最深刻,也是觉得.............
  • 回答
    要说起真正让国家和民族的命运发生翻天覆地变化的事件,那可不是一件两件能说完的。很多时候,看似偶然的火星,却能点燃燎原大火,改变整个人类的走向。我脑子里冒出来的第一个念头,就是那场席卷了整个欧洲,也深刻影响了世界的“黑死病”。这事儿发生在十四世纪中叶,大概是1347年到1351年左右吧。当时大家对细菌.............
  • 回答
    我曾被许多行为艺术项目所打动,它们以其深刻的内涵、独特的表现方式和强烈的视觉冲击力,在我的记忆中留下了深刻的印记。以下我将详细讲述几个令我印象深刻的项目:1. 玛丽娜·阿布拉莫维奇 (Marina Abramović) 的 "The Artist is Present" (艺术家在场)这无疑是行为艺.............
  • 回答
    谈到漫画的“最后一页”,这真是一个让人回味无穷的宝藏。不是说前面有多少铺垫,有多少精彩的情节,而是那一瞬间,就是那一页,能一下子抓住你的心,让你久久不能平静。我脑海里浮现出好几页,但要说“极其喜欢”又“印象深刻”的,我总会想起《浪客剑心》里,剑心在明治时代末期,独自一人站在海边,夕阳把他的影子拉得很.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有