目录

torchtune.modules

模型组件和构建块

CausalSelfAttention

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

FeedForward

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

KVCache

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

get_cosine_schedule_with_warmup

创建一个学习率调度器,该调度器在 num_warmup_steps 步骤内将学习率从 0.0 线性增加到 lr,然后在剩余的 num_training_steps-num_warmup_steps 步骤内按照余弦调度将学习率减少到 0.0(假设 num_cycles = 0.5)。

RotaryPositionalEmbeddings

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

RMSNorm

实现了在 https://arxiv.org/abs/1910.07467 中提出的均方根归一化。

TransformerDecoderLayer

源自 Llama2 模型的 Transformer 层。

TransformerDecoder

源自 Llama2 架构的 Transformer 解码器。

基础分词器

基本分词器是将文本直接编码为标记ID并解码为文本的分词器模型。这些通常是字节对编码,它们构成了特定于模型的分词器的基础。

tokenizers.SentencePieceBaseTokenizer

SentencePieceProcessor 的一个轻量级封装,额外处理了前导空格的修剪。

tokenizers.TikTokenBaseTokenizer

一个围绕 tiktoken 编码的轻量级封装。

Tokenizer Utilities

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

tokenizers.tokenize_messages_no_special_tokens

逐个对消息列表进行分词,然后将其拼接,返回一个令牌列表和一个掩码列表。

tokenizers.parse_hf_tokenizer_json

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

PEFT 组件

peft.LoRALinear

LoRA线性层,如《LoRA: Low-Rank Adaptation of Large Language Models》中所介绍。

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 模型的 state_dict 键是否符合预期。

peft.disable_adapter

暂时禁用神经网络模型中的适配器。

模块工具

这些是通用工具,所有模块均可使用。

common_utils.reparametrize_as_dtype_state_dict_post_hook

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

损失

loss.DPOLoss

直接偏好优化 (DPO) 损失模块: https://arxiv.org/abs/2305.18290.

文档

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

查看文档

教程

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

查看教程

资源

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

查看资源