快捷方式

torchtune.modules

建模组件和构建块

MultiHeadAttention

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

FeedForward

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

KVCache

独立的 nn.Module,包含一个 kv-cache,用于在推理过程中缓存过去的键和值。

get_cosine_schedule_with_warmup

创建一种学习率调度,该调度将学习率从 0.0 线性增加到 lr,持续 num_warmup_steps 步,然后在余弦调度中线性减少到 0.0,持续剩下的 num_training_steps-num_warmup_steps 步(假设 num_cycles = 0.5)。

RotaryPositionalEmbeddings

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

RMSNorm

实现 https://arxiv.org/abs/1910.07467 中介绍的均方根归一化。

Fp32LayerNorm

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

TanhGate

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

TiedLinear

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

TransformerSelfAttentionLayer

从 Llama2 模型派生的 Transformer 层。

TransformerCrossAttentionLayer

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

TransformerDecoder

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

VisionTransformer

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

损失

loss.CEWithChunkedOutputLoss

带有分块输出的交叉熵,通过一次仅上采样一个分块来节省内存。

loss.ForwardKLLoss

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

loss.ForwardKLWithChunkedOutputLoss

带有分块输出的前向 KL,通过一次仅上采样一个分块来节省内存。

基本分词器

基本分词器是分词器模型,它们执行文本直接编码为分词 ID 和将分词 ID 解码为文本的操作。这些通常是 字节对编码,是特定模型分词器背后的基础。

tokenizers.SentencePieceBaseTokenizer

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

tokenizers.TikTokenBaseTokenizer

围绕 tiktoken 编码的轻量级包装器。

tokenizers.ModelTokenizer

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

tokenizers.BaseTokenizer

抽象标记编码模型,它实现了 encodedecode 方法。

分词器实用程序

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

tokenizers.tokenize_messages_no_special_tokens

一次一个地标记消息列表,然后连接它们,返回一个标记列表和一个掩码列表。

tokenizers.parse_hf_tokenizer_json

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

PEFT 组件

peft.LoRALinear

LoRA 线性层,如 LoRA:大型语言模型的低秩自适应 中介绍。

peft.AdapterModule

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

peft.get_adapter_params

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

peft.set_trainable_params

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

peft.validate_missing_and_unexpected_for_lora

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

peft.validate_state_dict_for_lora

验证 LoRA 模型的状态字典键是否按预期。

peft.disable_adapter

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

融合组件

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

model_fusion.DeepFusionModel

DeepFusion 是一种融合的模型架构类型,其中将预训练的编码器与预训练的解码器(LLM)相结合。

model_fusion.FusionLayer

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

model_fusion.FusionEmbedding

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

model_fusion.register_fusion_module

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

model_fusion.get_fusion_params

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

模块实用程序

这些是所有模块共有的,并且所有模块都可以使用的实用程序。

common_utils.reparametrize_as_dtype_state_dict_post_hook

一个状态字典钩子,它将 NF4 张量替换为其恢复的更高精度权重,并可选地将恢复的权重卸载到 CPU。

视觉转换

用于预处理图像的函数。

transforms.Transform

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

transforms.VisionCrossAttentionMask

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

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发者的深入教程

查看教程

资源

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

查看资源