Adafactor med Accelerator
Du har visat ett konceptbevis för Adafactor med Trainer för att träna din språköversättningsmodell med lägre minneskrav. Nu vill du anpassa din träningsloop med hjälp av Accelerator. Bygg träningsloopen så att den använder Adafactor!
Funktionen compute_optimizer_size() är fördefinierad. Några träningsobjekt är förinlästa: model, train_dataloader och accelerator. Adafactor har förimporerats från torch.optim.
Den här övningen är en del av kursen
Effektiv AI-modellträning med PyTorch
Övningsinstruktioner
- Skicka in modellens parametrar till
Adafactornär du definieraroptimizer. - Skicka in optimeringstillståndet för att skriva ut storleken.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Pass the model parameters to Adafactor
optimizer = Adafactor(params=____.____())
model, optimizer, train_dataloader = accelerator.prepare(model, optimizer, train_dataloader)
for batch in train_dataloader:
inputs, targets = batch["input_ids"], batch["labels"]
outputs = model(inputs, labels=targets)
loss = outputs.loss
accelerator.backward(loss)
optimizer.step()
optimizer.zero_grad()
# Pass in the optimizer state
total_size_megabytes, total_num_elements = compute_optimizer_size(optimizer.state.____())
print(f"Number of optimizer parameters: {total_num_elements:,}\nOptimizer size: {total_size_megabytes:.0f} MB")