8-bit Adam s Acceleratorem
Chceš přizpůsobit trénovací smyčku pomocí 8-bit Adama, aby model měl nižší nároky na paměť. Připrav smyčku s 8-bit Adamem pro trénování.
Předpokládej, že 8-bit Adam optimizer je definovaný jako adam_bnb_optim. Ostatní objekty pro trénování jsou již definovány: model, train_dataloader, lr_scheduler a accelerator.
Toto cvičení je součástí kurzu
Efficient AI Model Training with PyTorch
Pokyny k cvičení
- Připrav 8-bit Adam optimizer pro distribuované trénování.
- Aktualizuj parametry modelu pomocí optimizeru.
- Vynuluj gradienty pomocí optimizeru.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Prepare the 8-bit Adam optimizer for distributed training
model, adam_bnb_optim, 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
adam_bnb_optim.____()
lr_scheduler.step()
# Zero the gradients
adam_bnb_optim.____()
print(f"Loss = {loss}")