Efficient AI Model Training with PyTorch
Dennis Lee
Data Engineer
for index, batch in enumerate(dataloader):
inputs, targets = (batch["input_ids"],
batch["labels"])
inputs, targets = (inputs.to(device),
targets.to(device))
for index, batch in enumerate(dataloader):
inputs, targets = (batch["input_ids"],
batch["labels"])
inputs, targets = (inputs.to(device),
targets.to(device))
outputs = model(inputs, labels=targets)
loss = outputs.loss
for index, batch in enumerate(dataloader):
inputs, targets = (batch["input_ids"],
batch["labels"])
inputs, targets = (inputs.to(device),
targets.to(device))
outputs = model(inputs, labels=targets)
loss = outputs.loss
loss = loss / gradient_accumulation_steps
for index, batch in enumerate(dataloader):
inputs, targets = (batch["input_ids"],
batch["labels"])
inputs, targets = (inputs.to(device),
targets.to(device))
outputs = model(inputs, labels=targets)
loss = outputs.loss
loss = loss / gradient_accumulation_steps
loss.backward()
for index, batch in enumerate(dataloader):
inputs, targets = (batch["input_ids"],
batch["labels"])
inputs, targets = (inputs.to(device),
targets.to(device))
outputs = model(inputs, labels=targets)
loss = outputs.loss
loss = loss / gradient_accumulation_steps
loss.backward()
if ((index + 1)
% gradient_accumulation_steps == 0):
for index, batch in enumerate(dataloader):
inputs, targets = (batch["input_ids"],
batch["labels"])
inputs, targets = (inputs.to(device),
targets.to(device))
outputs = model(inputs, labels=targets)
loss = outputs.loss
loss = loss / gradient_accumulation_steps
loss.backward()
if ((index + 1)
% gradient_accumulation_steps == 0):
optimizer.step()
lr_scheduler.step()
optimizer.zero_grad()
accelerator = \ Accelerator(gradient_accumulation_steps=2)
for index, batch in enumerate(dataloader): inputs, targets = (batch["input_ids"], batch["labels"])
accelerator = \
Accelerator(gradient_accumulation_steps=2)
for index, batch in enumerate(dataloader):
inputs, targets = (batch["input_ids"],
batch["labels"])
outputs = model(inputs,
labels=targets)
loss = outputs.loss
accelerator = \
Accelerator(gradient_accumulation_steps=2)
for index, batch in enumerate(dataloader):
with accelerator.accumulate(model):
inputs, targets = (batch["input_ids"],
batch["labels"])
outputs = model(inputs,
labels=targets)
loss = outputs.loss
accelerator = \
Accelerator(gradient_accumulation_steps=2)
for index, batch in enumerate(dataloader):
with accelerator.accumulate(model):
inputs, targets = (batch["input_ids"],
batch["labels"])
outputs = model(inputs,
labels=targets)
loss = outputs.loss
accelerator.backward(loss)
accelerator = \
Accelerator(gradient_accumulation_steps=2)
for index, batch in enumerate(dataloader):
with accelerator.accumulate(model):
inputs, targets = (batch["input_ids"],
batch["labels"])
outputs = model(inputs,
labels=targets)
loss = outputs.loss
accelerator.backward(loss)
accelerator = \
Accelerator(gradient_accumulation_steps=2)
for index, batch in enumerate(dataloader):
with accelerator.accumulate(model):
inputs, targets = (batch["input_ids"],
batch["labels"])
outputs = model(inputs,
labels=targets)
loss = outputs.loss
accelerator.backward(loss)
optimizer.step()
lr_scheduler.step()
optimizer.zero_grad()
training_args = TrainingArguments(output_dir="./results", evaluation_strategy="epoch", gradient_accumulation_steps=2)
trainer = Trainer(model=model, args=training_args, train_dataset=dataset["train"], eval_dataset=dataset["validation"], compute_metrics=compute_metrics)
trainer.train()
{'epoch': 1.0, 'eval_loss': 0.73, 'eval_accuracy': 0.03, 'eval_f1': 0.05}
{'epoch': 2.0, 'eval_loss': 0.68, 'eval_accuracy': 0.19, 'eval_f1': 0.25}
Efficient AI Model Training with PyTorch