快捷方式

torchtune.modules

建模组件和构建块

MultiHeadAttention

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

FeedForward

此类实现了源自 Llama2 的前馈网络。

KVCache

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

RotaryPositionalEmbeddings

此类实现了 https://arxiv.org/abs/2104.09864 中提出的旋转位置嵌入 (RoPE)。

RMSNorm

fp32 中的均方根归一化。

Fp32LayerNorm

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

TanhGate

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

TiedLinear

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

TransformerSelfAttentionLayer

源自 Llama2 模型的 Transformer 层。

TransformerCrossAttentionLayer

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

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 解码为文本的分词器模型。这些通常是模型特定分词器底层的字节对编码

transforms.tokenizers.SentencePieceBaseTokenizer

SentencePieceProcessor 的轻量级包装器,额外处理去除前导空格。

transforms.tokenizers.TikTokenBaseTokenizer

tiktoken Encoding 的轻量级包装器。

transforms.tokenizers.HuggingFaceBaseTokenizer

Hugging Face 分词器的包装器。

transforms.tokenizers.ModelTokenizer

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

transforms.tokenizers.BaseTokenizer

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

分词器实用工具

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

transforms.tokenizers.tokenize_messages_no_special_tokens

一次对消息列表进行分词,然后连接它们,返回 token 列表和 mask 列表。

transforms.tokenizers.parse_hf_tokenizer_json

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

PEFT 组件

peft.LoRALinear

LoRA 线性层,在 LoRA: 大语言模型的低秩适应 中引入。

peft.DoRALinear

DoRA 线性层,在 DoRA: 大语言模型的权重分解低秩适应 中引入。

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 state dict 加载是否正确完成。

peft.disable_adapter

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

融合组件

用于构建融合了两个以上预训练模型的组件。

model_fusion.DeepFusionModel

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

model_fusion.FusionLayer

融合层,如在 Flamingo: 一个用于小样本学习的视觉语言模型 中引入的。

model_fusion.FusionEmbedding

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

model_fusion.register_fusion_module

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

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 的完整开发者文档

查看文档

教程

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

查看教程

资源

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

查看资源