目录

torchtune.modules

组件和构建块建模

多头注意力

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

前馈

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

KVCache

Standalone 包含 kv-cache,用于在推理期间缓存过去的 key 和值。nn.Module

RotaryPositionalEmbeddings (旋转位置嵌入)

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

RMS数字

fp32 中的均方根归一化。

FP32LayerNorm

包装器以支持混合精度训练。

TanhGate 餐厅

实现一个基本的可学习门来扩展层输出

TiedLinear (Tied线性)

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

TransformerSelfAttentionLayer

从 Llama2 模型派生的变压器层。

TransformerCrossAttentionLayer

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

TransformerDecoder (变压器解码器)

源自 Llama2 架构的 Transformer Decoder。

视觉转换器

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

层辍学

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

prepare_layer_dropout

通过使用 ModuleLayerDropoutWrapper 包装每个层来准备模型的层以进行层丢弃。

损失

损失。CEWithChunkedOutputLoss

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

损失。转发 KLLoss

有效索引的 Kullback-Leibler 背离损失。

损失。ForwardKLWithChunkedOutputLoss

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

基础分词器

Base 分词器是执行文本直接编码的分词器模型 转换为令牌 ID 并将令牌 ID 解码为文本。这些通常是字节对 编码,这些编码是 特定于模型的分词器。

分词器。SentencePieceBaseTokenizer

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

分词器。TikTokenBaseTokenizer

tiktoken Encoding 的轻量级包装器。

分词器。ModelTokenizer 模型

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

分词器。BaseTokenizer

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

Tokenizer 实用程序

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

tokenizers.tokenize_messages_no_special_tokens

一次对消息列表进行标记化,然后将它们连接起来,返回标记列表和掩码列表。

tokenizers.parse_hf_tokenizer_json

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

PEFT 组件

佩夫特。LoRALinear

LoRA 线性层,如 LoRA:大型语言模型的低秩适应

佩夫特。DoRALinear 公司

DoRA 线性层,如 DoRA:大型语言模型的权重分解低秩适应

佩夫特。适配器模块

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

peft.get_adapter_params

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

peft.set_trainable_params

为 nn.基于适配器参数的状态字典的模块。

peft.get_adapter_state_dict

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

peft.validate_missing_and_unexpected_for_lora

一种更节省内存的方法,用于验证 LoRA state dict 加载是否已正确完成。

peft.disable_adapter

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

Fusion 组件

用于构建融合了 2+ 个预训练模型的模型的组件。

model_fusion。DeepFusion模型

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

model_fusion。FusionLayer

Flamingo 中引入的融合层:用于 Few-Shot Learning 的视觉语言模型

model_fusion。FusionEmbedding

Fusion 嵌入支持训练额外的特殊标记,同时保持原始嵌入处于冻结状态。

model_fusion.register_fusion_module

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

model_fusion.get_fusion_params

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

模块实用程序

这些是所有模块通用的实用程序,可供所有模块使用。

common_utils.reparametrize_as_dtype_state_dict_post_hook

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

common_utils.local_kv_cache

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

common_utils.disable_kv_cache

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

common_utils.delete_kv_caches

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

视觉转变

用于预处理图像的函数。

变换。变换

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

变换。VisionCrossAttentionMask (视觉交叉注意力遮罩)

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

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

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

查看教程

资源

查找开发资源并解答您的问题

查看资源