菜单

NLP 模型

相关源文件

本文档全面概述了 TensorFlow Model Garden 中实现的自然语言处理 (NLP) 模型。它涵盖了 NLP 模型生态系统中的关键架构、组件和关系,重点关注 transformer 及其变体、注意力机制以及专门的 NLP 实现。

有关核心训练框架信息,请参阅 核心框架。有关特定计算机视觉模型的信息,请参阅 计算机视觉模型

NLP 模型概述

TensorFlow Model Garden 提供了一套丰富的 NLP 模型,通过模块化设计实现了最先进的架构。代码库以分层结构组织 NLP 模型,其中模型由网络组成,而网络又由层构建而成。

来源

Transformer 架构

代码库中的大多数 NLP 模型的核心都是基于 transformer 的架构。实现遵循原始的“Attention Is All You Need”论文,并进行了各种扩展和优化。

关键 Transformer 组件

Transformer 实现主要存在于以下关键文件中:

  • Transformer:最初实现在 official/nlp/modeling/layers/transformer.py
  • TransformerEncoderBlock:Transformer 编码器的基本实现
  • TransformerDecoderBlock:实现带自注意力、交叉注意力和前馈层的解码器

来源

注意力机制

代码库实现了各种注意力机制,以支持不同的模型架构和用例。

注意力实现包括:

  • 来自 Keras 的标准 MultiHeadAttention
  • CachedAttention,用于高效的自回归解码
  • KernelAttention,用于线性复杂度变体 (Performers, RFA)
  • TalkingHeadsAttentionMultiChannelAttention 等专用注意力机制

来源

位置嵌入

位置嵌入对于基于 transformer 的模型理解序列顺序至关重要。代码库实现了多种位置嵌入变体:

位置嵌入实现于:

  • PositionEmbedding:标准的可学习位置嵌入
  • RelativePositionEmbedding:正弦位置编码(类似于原始 transformer 论文)
  • RelativePositionBias:T5 风格的相对位置偏置

来源

NLP 模型实现

Seq2Seq Transformer

Seq2Seq Transformer 实现原始 Transformer 架构用于序列到序列任务,同时提供编码器和解码器组件。

实现提供:

  • 用于序列生成的编码器-解码器架构
  • 支持束搜索解码
  • 位置嵌入和可定制组件

来源

T5 Transformer

T5 Transformer 实现“Text-to-Text Transfer Transformer”架构,该架构将所有 NLP 任务都转化为文本到文本问题。

T5 实现包括:

  • T5 特定的 transformer 架构
  • 通过 T5TransformerParams 进行参数配置
  • 支持文本到文本任务
  • 作为 tf.Module 实现(非 Keras 层)

来源

BERT 及其变体

代码库实现了 BERT 及其多种变体,包括 ALBERT、ELECTRA 等。

基于 BERT 的模型提供:

  • 各种编码器架构(BERT、ALBERT)
  • 特定任务模型(分类、词元分类、跨度标注)
  • 预训练模型(掩码语言模型、替换词元检测)

来源

XLNet

XLNet 实现为置换语言模型提供了支持,该模型将自回归预训练进行了泛化。

XLNet 实现包括:

  • 具有 XLNetBase 的 XLNet 特定架构
  • 特定任务模型(分类、跨度标注)
  • 预训练能力
  • 双流注意力等专用组件

来源

模块化设计架构

TensorFlow Model Garden 中的 NLP 模型遵循模块化设计模式,具有三个关键的抽象级别

抽象级别描述示例
层数实现特定操作的基本构建块MultiHeadAttentionTransformerEncoderBlockPositionEmbedding
网络组成连贯组件的层组合BertEncoderAlbertEncoderXLNetBase
模型可训练的端到端实现BertClassifierSeq2SeqTransformerT5Transformer

这种设计促进了代码重用和可组合性,使研究人员和从业者能够为特定任务定制架构。

来源

专业注意力机制

该库实现了几种除了标准多头注意力之外的专业注意力机制

KernelAttention

KernelAttention 使用核方法提供高效的线性复杂度注意力计算

KernelAttention 提供

  • 线性复杂度注意力替代方案
  • 各种特征转换 (ELU, ReLU, exp)
  • 支持因果窗口注意力
  • 兼容长序列处理

来源

ReZero Transformer

The ReZeroTransformer implements a variation of the transformer with improved training dynamics

ReZeroTransformer features

  • ReZero 殘差连接(初始化为零)
  • 改进的训练稳定性和收敛性
  • 与现有 Transformer 架构兼容

来源

TransformerScaffold

The TransformerScaffold provides a flexible transformer implementation with customizable components

TransformerScaffold enables

  • 自定义注意力机制和前馈组件
  • 灵活的架构实验
  • 与标准的 Transformer 用法兼容

来源

实用组件

Several utility components support NLP model functionality

MaskedSoftmax

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

OnDeviceEmbedding provides efficient embedding operations designed for TPU-based models, keeping embeddings on device for faster computation.

来源

模型互操作性

NLP 模型被设计为在更广泛的 TensorFlow Model Garden 生态系统中运行,具有标准化的接口,用于

  • 通过 orbit controller 进行训练(参见 核心框架
  • 特定任务的配置
  • 常见数据处理管道
  • 与流行的预训练模型兼容的检查点

这使得研究人员和从业者能够轻松地试验不同的模型架构,同时重用常见的底层组件。