快捷方式

torchtune.modules

建模组件和构建块

MultiHeadAttention

多头注意力层,支持分组查询注意力 (GQA),在 https://arxiv.org/abs/2305.13245v1 中引入。

FeedForward

此类实现了从 Llama2 派生的前馈网络。

KVCache

独立的 nn.Module,包含 kv 缓存,用于在推理期间缓存过去的键和值。

RotaryPositionalEmbeddings

此类实现了 https://arxiv.org/abs/2104.09864 中提出的 Rotary Positional Embeddings (RoPE)。

RMSNorm

fp32 中的均方根归一化。

Fp32LayerNorm

围绕 LayerNorm 的包装器,以支持混合精度训练。

TanhGate

实现一个基本的、可学习的门控,用于缩放层输出

TiedLinear

一个绑定的线性层,没有偏置,与另一个线性层共享相同的权重。

TransformerSelfAttentionLayer

从 Llama2 模型派生的 Transformer 层。

TransformerCrossAttentionLayer

交叉注意力 Transformer 层,遵循与 TransformerSelfAttentionLayer 相同的约定。

TransformerDecoder

从 Llama2 架构派生的 Transformer 解码器。

VisionTransformer

ViT 架构的实现 (https://arxiv.org/abs/2010.11929),支持平铺裁剪图像、隐藏层输出和可选的 CLS 投影。

LayerDropout

一个模块,将层 dropout 应用于底层模块的输入张量。

prepare_layer_dropout

通过使用 ModuleLayerDropoutWrapper 包装每个层,为层 dropout 准备模型的层。

损失函数

loss.CEWithChunkedOutputLoss

具有分块输出的交叉熵,通过一次仅向上转换一个块来节省内存。

loss.ForwardKLLoss

有效索引的 Kullback-Leibler 散度损失。

loss.ForwardKLWithChunkedOutputLoss

具有分块输出的前向 KL,通过一次仅向上转换一个块来节省内存。

基础分词器

基础分词器是分词器模型,执行文本到 token ID 的直接编码以及 token ID 到文本的解码。这些通常是 字节对编码,是模型特定分词器的基础。

tokenizers.SentencePieceBaseTokenizer

SentencePieceProcessor 的轻量级包装器,还处理修剪前导空格。

tokenizers.TikTokenBaseTokenizer

tiktoken Encoding 的轻量级包装器。

tokenizers.ModelTokenizer

抽象分词器,在 tokenize_messages 方法中实现模型特定的特殊 token 逻辑。

tokenizers.BaseTokenizer

抽象 token 编码模型,实现 encodedecode 方法。

分词器实用工具

这些是任何分词器都可以使用的辅助方法。

tokenizers.tokenize_messages_no_special_tokens

一次对消息列表中的一条消息进行分词,然后将它们连接起来,返回 token 列表和掩码列表。

tokenizers.parse_hf_tokenizer_json

解析 Hugging Face 模型的 tokenizer.json 文件,以提取特殊 token 字符串到 ID 的映射。

PEFT 组件

peft.LoRALinear

LoRA 线性层,在 LoRA: Large Language Models 的低秩自适应 中介绍。

peft.DoRALinear

DoRA 线性层,在 DoRA: Large Language Models 的权重分解低秩自适应 中介绍。

peft.AdapterModule

nn.Module 的接口,包含适配器权重。

peft.get_adapter_params

从模型中返回与适配器对应的参数子集。

peft.set_trainable_params

根据适配器参数的状态字典,为 nn.Module 设置可训练参数。

peft.get_adapter_state_dict

从模型中返回与适配器对应的完整 state_dict 的子集。

peft.validate_missing_and_unexpected_for_lora

一种更节省内存的方式来验证 LoRA 状态字典加载是否正确完成。

peft.disable_adapter

暂时禁用模型中的适配器。

融合组件

用于构建融合两个或多个预训练模型的模型的组件。

model_fusion.DeepFusionModel

DeepFusion 是一种融合模型架构,其中预训练的编码器与预训练的解码器 (LLM) 组合在内部解码器层中。

model_fusion.FusionLayer

融合层,在 Flamingo: 用于少样本学习的视觉语言模型 中介绍。

model_fusion.FusionEmbedding

融合嵌入支持训练额外的特殊 token,同时保持原始嵌入冻结。

model_fusion.register_fusion_module

将方法 fusion_params 添加到 nn.Module,该方法将所有模块参数标记为融合参数。

model_fusion.get_fusion_params

从模型中返回与融合模块对应的参数子集。

模块实用工具

这些是所有模块通用且可使用的实用工具。

common_utils.reparametrize_as_dtype_state_dict_post_hook

一个 state_dict 钩子,用其恢复的更高精度权重替换 NF4 张量,并可以选择将恢复的权重卸载到 CPU。

common_utils.local_kv_cache

此上下文管理器临时在给定模型上启用 KV 缓存,该模型尚未设置 KV 缓存。

common_utils.disable_kv_cache

此上下文管理器临时禁用给定模型上的 KV 缓存,该模型必须已设置 KV 缓存。

common_utils.delete_kv_caches

从模型中所有注意力层删除 KV 缓存,并确保 cache_enabled 设置为 False。

视觉变换

用于预处理图像的函数。

transforms.Transform

所有数据和模型变换的松散接口。

transforms.VisionCrossAttentionMask

计算文本 + 图像输入的交叉注意力掩码。

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获得问题解答

查看资源