ComenzarEmpieza gratis

Adam de 8 bits con acelerador

Te gustaría personalizar tu bucle de entrenamiento con Adam de 8 bits para reducir los requisitos de memoria de tu modelo. Prepara el bucle con Adam de 8 bits para el entrenamiento.

Supongamos que se ha definido un optimizador Adam de 8 bits como adam_bnb_optim. Se han definido otros objetos de formación: model, train_dataloader, lr_scheduler, y accelerator.

Este ejercicio forma parte del curso

Entrenamiento eficiente de modelos de IA con PyTorch

Ver curso

Instrucciones del ejercicio

  • Prepara el optimizador Adam de 8 bits para el entrenamiento distribuido.
  • Actualiza los parámetros del modelo con el optimizador.
  • Pon a cero los gradientes con el optimizador.

Ejercicio interactivo práctico

Prueba este ejercicio completando el código de muestra.

# Prepare the 8-bit Adam optimizer for distributed training
model, ____, train_dataloader, lr_scheduler = accelerator.prepare(model, ____, train_dataloader, lr_scheduler)

for batch in train_dataloader:
    inputs, targets = batch["input_ids"], batch["labels"]
    outputs = model(inputs, labels=targets)
    loss = outputs.loss
    accelerator.backward(loss)
    # Update the model parameters
    ____.____()
    lr_scheduler.step()
    # Zero the gradients
    ____.____()
    print(f"Loss = {loss}")
Editar y ejecutar código