本文档全面概述了 TensorFlow Model Garden 中实现的自然语言处理 (NLP) 模型。它涵盖了 NLP 模型生态系统中的关键架构、组件和关系,重点关注 transformer 及其变体、注意力机制以及专门的 NLP 实现。
有关核心训练框架信息,请参阅 核心框架。有关特定计算机视觉模型的信息,请参阅 计算机视觉模型。
TensorFlow Model Garden 提供了一套丰富的 NLP 模型,通过模块化设计实现了最先进的架构。代码库以分层结构组织 NLP 模型,其中模型由网络组成,而网络又由层构建而成。
来源
代码库中的大多数 NLP 模型的核心都是基于 transformer 的架构。实现遵循原始的“Attention Is All You Need”论文,并进行了各种扩展和优化。
Transformer 实现主要存在于以下关键文件中:
Transformer:最初实现在 official/nlp/modeling/layers/transformer.pyTransformerEncoderBlock:Transformer 编码器的基本实现TransformerDecoderBlock:实现带自注意力、交叉注意力和前馈层的解码器来源
代码库实现了各种注意力机制,以支持不同的模型架构和用例。
注意力实现包括:
MultiHeadAttentionCachedAttention,用于高效的自回归解码KernelAttention,用于线性复杂度变体 (Performers, RFA)TalkingHeadsAttention 和 MultiChannelAttention 等专用注意力机制来源
位置嵌入对于基于 transformer 的模型理解序列顺序至关重要。代码库实现了多种位置嵌入变体:
位置嵌入实现于:
PositionEmbedding:标准的可学习位置嵌入RelativePositionEmbedding:正弦位置编码(类似于原始 transformer 论文)RelativePositionBias:T5 风格的相对位置偏置来源
Seq2Seq Transformer 实现原始 Transformer 架构用于序列到序列任务,同时提供编码器和解码器组件。
实现提供:
来源
T5 Transformer 实现“Text-to-Text Transfer Transformer”架构,该架构将所有 NLP 任务都转化为文本到文本问题。
T5 实现包括:
T5TransformerParams 进行参数配置tf.Module 实现(非 Keras 层)来源
代码库实现了 BERT 及其多种变体,包括 ALBERT、ELECTRA 等。
基于 BERT 的模型提供:
来源
XLNet 实现为置换语言模型提供了支持,该模型将自回归预训练进行了泛化。
XLNet 实现包括:
XLNetBase 的 XLNet 特定架构来源
TensorFlow Model Garden 中的 NLP 模型遵循模块化设计模式,具有三个关键的抽象级别
| 抽象级别 | 描述 | 示例 |
|---|---|---|
| 层数 | 实现特定操作的基本构建块 | MultiHeadAttention、TransformerEncoderBlock、PositionEmbedding |
| 网络 | 组成连贯组件的层组合 | BertEncoder、AlbertEncoder、XLNetBase |
| 模型 | 可训练的端到端实现 | BertClassifier、Seq2SeqTransformer、T5Transformer |
这种设计促进了代码重用和可组合性,使研究人员和从业者能够为特定任务定制架构。
来源
该库实现了几种除了标准多头注意力之外的专业注意力机制
KernelAttention 使用核方法提供高效的线性复杂度注意力计算
KernelAttention 提供
来源
The ReZeroTransformer implements a variation of the transformer with improved training dynamics
ReZeroTransformer features
来源
The TransformerScaffold provides a flexible transformer implementation with customizable components
TransformerScaffold enables
来源
Several utility components support NLP model functionality
MaskedSoftmax provides a softmax operation that respects attention masks
MaskedSoftmax(scores, mask)
┌─ Convert mask to large negative values (-1e9)
├─ Add to scores (effectively masking those positions)
└─ Apply standard softmax
来源
OnDeviceEmbedding provides efficient embedding operations designed for TPU-based models, keeping embeddings on device for faster computation.
来源
NLP 模型被设计为在更广泛的 TensorFlow Model Garden 生态系统中运行,具有标准化的接口,用于
这使得研究人员和从业者能够轻松地试验不同的模型架构,同时重用常见的底层组件。