目录

样品包装

样本打包涉及将数据集中的多个样本连接到一个序列中,最大值 序列长度。这需要对数据集进行一些预处理,这可能会 减慢第一批的时间,但可以显著加快训练速度 取决于数据集。在 torchtune 中,示例打包是通过遍历数据集并执行 数据集初始化时的贪婪打包。您可以通过传入 .packed=True

要设置要打包的最大序列长度,请确保在 tokenizer 上定义。max_seq_len

from torchtune.datasets import alpaca_dataset, PackedDataset
from torchtune.models.llama3 import llama3_tokenizer

# Load in tokenizer
tokenizer = llama3_tokenizer(
    path="/tmp/Llama-3.2-1B-Instruct/original/tokenizer.model",
    max_seq_len=8192,
)
dataset = alpaca_dataset(
    tokenizer=tokenizer,
    packed=True,
)
print(isinstance(dataset, PackedDataset))  # True
# YAML config
tokenizer:
  _component_: torchtune.models.llama3.llama3_tokenizer
  path: /tmp/Llama-3.2-1B-Instruct/original/tokenizer.model
  max_seq_len: 8192

dataset:
  _component_: torchtune.datasets.alpaca_dataset
  packed: True
# Command line
tune run full_finetune_single_device --config llama3_2/1B_full_single_device \
dataset.packed=True tokenizer.max_seq_len=8192

启用样品打包后,Torchtune 将自动处理文档掩码和相对位置 ID 以防止不同的不相关样本交叉参与。这是通过 PyTorch 的 Flex Attention 完成的。 这允许使用带有非因果掩码的 Flash Attention。如果您的硬件不支持 Flex 注意 (对于 CUDA 设备,必须是 Turing 或更高版本),具有内存高效关注的标准 SDPA 将用作后备, 同时保留文档遮罩和相对位置 ID。

文档

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

查看文档

教程

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

查看教程

资源

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

查看资源