torchtune.modules¶
模型组件和构建块¶
在 https://arxiv.org/abs/2305.13245v1 中介绍的多头分组查询自注意力 (GQA) 层。 |
|
此类实现源自 Llama2 的前馈网络。 |
|
独立的 |
|
创建一个学习率调度程序,该调度程序将学习率从 0.0 线性增加到 lr,持续 num_warmup_steps 步,然后在余弦调度程序上递减到 0.0,持续剩余的 num_training_steps-num_warmup_steps 步(假设 num_cycles = 0.5)。 |
|
此类实现了在 https://arxiv.org/abs/2104.09864 中提出的旋转位置嵌入 (RoPE)。 |
|
在 https://arxiv.org/abs/1910.07467 中介绍的根均方归一化的实现。 |
|
源自 Llama2 模型的 Transformer 层。 |
|
源自 Llama2 架构的 Transformer 解码器。 |
基础词元化器¶
基础词元化器是词元化模型,执行将文本直接编码为词元 ID 以及将词元 ID 解码为文本的操作。这些通常是 字节对编码,是模型特定词元化器的基础。
一个围绕 SentencePieceProcessor 的轻量级包装器,它还处理修剪前导空格。 |
|
一个围绕 tiktoken 编码的轻量级包装器。 |
词元化器实用程序¶
这些是任何词元化器都可以使用的辅助方法。
一次词元化一个消息列表,然后将它们连接起来,返回一个词元列表和一个掩码列表。 |
|
解析 Hugging Face 模型中的 |
PEFT 组件¶
在 LoRA:大型语言模型的低秩自适应 中介绍的 LoRA 线性层。 |
|
包含适配器权重的 nn.Module 的接口。 |
|
返回模型中对应于适配器的参数子集。 |
|
根据适配器参数的状态字典设置 nn.Module 的可训练参数。 |
|
一种更节省内存的方式来验证 LoRA 状态字典加载是否正确完成。 |
|
验证 LoRA 模型的状态字典键是否符合预期。 |
|
暂时禁用神经网络模型中的适配器。 |
模块实用程序¶
这些是所有模块都共有的,并且所有模块都可以使用的实用程序。
一个 state_dict 钩子,用其恢复的更高精度权重替换 NF4 张量,并可以选择将恢复的权重卸载到 CPU。 |
损失¶
直接偏好优化 (DPO) 损失模块:https://arxiv.org/abs/2305.18290. |