Träning med blandad precision

Effektiv AI-modellträning med PyTorch

Dennis Lee

Data Engineer, Amazon

Träning med blandad precision snabbar upp beräkningar

 

 

Ikoner som representerar minneseffektivitet, kommunikationseffektivitet och beräkningseffektivitet.

Effektiv AI-modellträning med PyTorch

Snabbare beräkningar med lägre precision

Diagram som visar hur flyttalsvärden representeras i FP32 och FP16.

Effektiv AI-modellträning med PyTorch

Snabbare beräkningar med lägre precision

Diagram som visar hur flyttalsvärden representeras i FP32 och FP16.

Effektiv AI-modellträning med PyTorch

Snabbare beräkningar med lägre precision

Diagram som visar hur flyttalsvärden representeras i FP32 och FP16.

Effektiv AI-modellträning med PyTorch

Vad är träning med blandad precision?

Diagram som illustrerar stegen i träning med blandad precision.

  • Träning med blandad precision: kombinerar FP16- och FP32-beräkningar för snabbare träning
Effektiv AI-modellträning med PyTorch

Vad är träning med blandad precision?

Diagram som illustrerar stegen i träning med blandad precision.

  • Träning med blandad precision: kombinerar FP16- och FP32-beräkningar för snabbare träning
Effektiv AI-modellträning med PyTorch

Vad är träning med blandad precision?

Diagram som illustrerar stegen i träning med blandad precision.

  • Träning med blandad precision: kombinerar FP16- och FP32-beräkningar för snabbare träning
  • Underflöde: ett tal sjunker till 0 eftersom det underskrider precisionsgränsen
Effektiv AI-modellträning med PyTorch

Vad är träning med blandad precision?

Diagram som illustrerar stegen i träning med blandad precision.

  • Träning med blandad precision: kombinerar FP16- och FP32-beräkningar för snabbare träning
  • Underflöde: ett tal sjunker till 0 eftersom det underskrider precisionsgränsen
  • Skala förlusten för att förhindra underflöde
Effektiv AI-modellträning med PyTorch

Vad är träning med blandad precision?

Diagram som illustrerar stegen i träning med blandad precision.

  • Träning med blandad precision: kombinerar FP16- och FP32-beräkningar för snabbare träning
  • Underflöde: ett tal sjunker till 0 eftersom det underskrider precisionsgränsen
  • Skala förlusten för att förhindra underflöde
Effektiv AI-modellträning med PyTorch

Vad är träning med blandad precision?

Diagram som illustrerar stegen i träning med blandad precision.

  • Träning med blandad precision: kombinerar FP16- och FP32-beräkningar för snabbare träning
  • Underflöde: ett tal sjunker till 0 eftersom det underskrider precisionsgränsen
  • Skala förlusten för att förhindra underflöde
Effektiv AI-modellträning med PyTorch

Vad är träning med blandad precision?

Diagram som illustrerar stegen i träning med blandad precision.

  • Träning med blandad precision: kombinerar FP16- och FP32-beräkningar för snabbare träning
  • Underflöde: ett tal sjunker till 0 eftersom det underskrider precisionsgränsen
  • Skala förlusten för att förhindra underflöde
Effektiv AI-modellträning med PyTorch

Vad är träning med blandad precision?

Diagram som illustrerar stegen i träning med blandad precision.

  • Träning med blandad precision: kombinerar FP16- och FP32-beräkningar för snabbare träning
  • Underflöde: ett tal sjunker till 0 eftersom det underskrider precisionsgränsen
  • Skala förlusten för att förhindra underflöde
Effektiv AI-modellträning med PyTorch

Implementering med PyTorch

Diagram som jämför användarvänlighet och anpassningsbarhet för PyTorch, Accelerator och Trainer.

Effektiv AI-modellträning med PyTorch

Träning med blandad precision med PyTorch

scaler = torch.amp.GradScaler()


for batch in train_dataloader: inputs, targets = batch["input_ids"], batch["labels"]
with torch.autocast(device_type="cpu", dtype=torch.float16):
outputs = model(inputs, labels=targets) loss = outputs.loss
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()
optimizer.zero_grad()
Effektiv AI-modellträning med PyTorch

Från PyTorch till Accelerator

Diagram som jämför användarvänlighet och anpassningsbarhet för PyTorch, Accelerator och Trainer.

Effektiv AI-modellträning med PyTorch

Från PyTorch till Accelerator

Diagram som jämför användarvänlighet och anpassningsbarhet för PyTorch, Accelerator och Trainer.

Effektiv AI-modellträning med PyTorch

Träning med blandad precision med Accelerator

accelerator = Accelerator(mixed_precision="fp16")


model, optimizer, train_dataloader, lr_scheduler = \ accelerator.prepare(model, optimizer, 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) optimizer.step() optimizer.zero_grad()
Effektiv AI-modellträning med PyTorch

Från Accelerator till Trainer

Diagram som jämför användarvänlighet och anpassningsbarhet för PyTorch, Accelerator och Trainer.

Effektiv AI-modellträning med PyTorch

Från Accelerator till Trainer

Diagram som jämför användarvänlighet och anpassningsbarhet för PyTorch, Accelerator och Trainer.

Effektiv AI-modellträning med PyTorch

Träning med blandad precision med Trainer

training_args = TrainingArguments(
    output_dir="./results",
    evaluation_strategy="epoch",
    fp16=True
)

trainer = Trainer( model=model, args=training_args, train_dataset=dataset["train"], eval_dataset=dataset["validation"], compute_metrics=compute_metrics, )
trainer.train()
Effektiv AI-modellträning med PyTorch

Låt oss öva!

Effektiv AI-modellträning med PyTorch

Preparing Video For Download...