Transformers documentation

torch.compile para treinamento

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

torch.compile para treinamento

torch.compile compila código do PyTorch em kernels fundidos para acelerar a execução. No treinamento, ele rastreia o passo de ida e o passo de volta juntos e os compila em kernels otimizados, reduzindo o overhead de lançamentos individuais de operações e fundindo operações para diminuir o uso de largura de banda de memória.

Defina torch_compile=True em TrainingArguments para ativá-lo. O treinamento compila tanto o passo de ida (forward) quanto o passo de volta (backward), ao contrário da inferência, que compila apenas o passo de ida. A compilação ocorre no primeiro passo de treinamento, portanto, espere que ele seja significativamente mais lento do que os passos subsequentes.

from transformers import TrainingArguments

args = TrainingArguments(
    ...,
    torch_compile=True,
    torch_compile_backend="inductor",
    torch_compile_mode="reduce-overhead",
)

Backend

Quando nenhum backend é especificado, o TrainingArguments seleciona um com base no seu hardware. Na maioria dos CPUs e GPUs, o padrão é inductor, que compila para kernels Triton com AOTAutograd e atende à maioria das cargas de trabalho de treinamento. No Intel Gaudi (HPU), o padrão é hpu_backend. No AWS Trainium e Inferentia (Neuron), o padrão é neuron.

Use cudagraphs para entradas com forma fixa.

Modo de compilação

Use a tabela abaixo para ajudar a selecionar um modo de torch.compile.

mododescrição
defaultcompilação equilibrada entre tempo de compilação e tempo de execução
reduce-overheadreduz a sobrecarga de Python/CPU usando CUDA graphs, ao custo de um pouco mais de memória
max-autotunefaz o benchmark de várias implementações de kernel em tempo de compilação e escolhe a mais rápida (compilação mais longa)
max-autotune-no-cudagraphsigual a max-autotune, mas sem CUDA graphs

Próximas etapas

Update on GitHub