Transformers

本节内容包含对论文《 Attention is All You Need 》中原始 Transformer 的解释与PyTorch 实现,以及对其衍生和增强版本的解释与实现。

Transformer XL

这是使用相对多头注意力的 Transformer XL 模型的实现。

旋转式位置编码

这是旋转式位置编码( ROPE )的实现。

线性偏差注意力

这是线性偏差注意力( ALIBI )的实现。

RETRO

这是对检索增强 Transformer ( RETRO )的实现。

压缩 Transformer

这是一个压缩transformer的实现,它在Transformer XL 的基础上,通过压缩最早期的记忆来延长注意力跨度。

GPT 架构

这是 GPT-2 结构的实现。

GLU 变体

这是论文 《 GLU Variants Improve Transformer 》的实现。

kNN-LM

这是论文《 Generalization through Memorization: Nearest Neighbor Language Models 》的实现。

自反馈 Transformer

这是论文《 Accessing Higher-level Representations in Sequential Transformers with Feedback Memory 》的实现。

Switch Transformer

这是论文《 Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity 》的一个简化实现。我们的实现仅包含几百万个参数,并且只在单 GPU 上进行训练,不涉及并行分布式训练,但我们仍然实现了论文中描述的 Switch 概念。

快速权重 Transformer

这是论文 《 Linear Transformers Are Secretly Fast Weight Memory Systems in PyTorch 》的实现。

Fnet:使用傅里叶变换混合 token

这是论文《 FNet: Mixing Tokens with Fourier Transforms 》的实现。

无注意力 Transformer

这是论文《 An Attention Free Transformer 》的实现。

掩码语言模型

这是论文《 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 》中用于预训练的掩码语言模型的实现

MLP-Mixer:一种用于视觉的全 MLP 架构

这是论文 《 MLP-Mixer: An all-MLP Architecture for Vision 》的实现。

门控多层感知器 (gMLP)

这是论文《 Pay Attention to MLPs 》的实现。

视觉 Transformer (ViT)

这是论文《 An Image Is Worth 16x16 Words: Transformers For Image Recognition At Scale 》的实现。

Primer

这是论文《 Primer: Searching for Efficient Transformers for Language Modeling 》的实现。

沙漏网络

这是论文《 Hierarchical Transformers Are More Efficient Language Models 》的实现

112from .configs import TransformerConfigs
113from .models import TransformerLayer, Encoder, Decoder, Generator, EncoderDecoder
114from .mha import MultiHeadAttention
115from labml_nn.transformers.xl.relative_mha import RelativeMultiHeadAttention