Antrenament cu precizie mixtă

Antrenament eficient al modelelor AI cu PyTorch

Dennis Lee

Data Engineer, Amazon

Antrenamentul cu precizie mixtă accelerează calculul

 

 

Pictograme reprezentând eficiența memoriei, a comunicării și a calculului.

Antrenament eficient al modelelor AI cu PyTorch

Calcule mai rapide cu precizie redusă

Diagramă ilustrând reprezentarea numerelor în virgulă mobilă în FP32 și FP16.

Antrenament eficient al modelelor AI cu PyTorch

Calcule mai rapide cu precizie redusă

Diagramă ilustrând reprezentarea numerelor în virgulă mobilă în FP32 și FP16.

Antrenament eficient al modelelor AI cu PyTorch

Calcule mai rapide cu precizie redusă

Diagramă ilustrând reprezentarea numerelor în virgulă mobilă în FP32 și FP16.

Antrenament eficient al modelelor AI cu PyTorch

Ce este antrenamentul cu precizie mixtă?

Diagramă ilustrând pașii antrenamentului cu precizie mixtă.

  • Antrenament cu precizie mixtă: combină calcule FP16 și FP32 pentru accelerarea antrenamentului
Antrenament eficient al modelelor AI cu PyTorch

Ce este antrenamentul cu precizie mixtă?

Diagramă ilustrând pașii antrenamentului cu precizie mixtă.

  • Antrenament cu precizie mixtă: combină calcule FP16 și FP32 pentru accelerarea antrenamentului
Antrenament eficient al modelelor AI cu PyTorch

Ce este antrenamentul cu precizie mixtă?

Diagramă ilustrând pașii antrenamentului cu precizie mixtă.

  • Antrenament cu precizie mixtă: combină calcule FP16 și FP32 pentru accelerarea antrenamentului
  • Underflow: o valoare devine 0 deoarece depășește limita de precizie
Antrenament eficient al modelelor AI cu PyTorch

Ce este antrenamentul cu precizie mixtă?

Diagramă ilustrând pașii antrenamentului cu precizie mixtă.

  • Antrenament cu precizie mixtă: combină calcule FP16 și FP32 pentru accelerarea antrenamentului
  • Underflow: o valoare devine 0 deoarece depășește limita de precizie
  • Scalarea pierderii previne underflow-ul
Antrenament eficient al modelelor AI cu PyTorch

Ce este antrenamentul cu precizie mixtă?

Diagramă ilustrând pașii antrenamentului cu precizie mixtă.

  • Antrenament cu precizie mixtă: combină calcule FP16 și FP32 pentru accelerarea antrenamentului
  • Underflow: o valoare devine 0 deoarece depășește limita de precizie
  • Scalarea pierderii previne underflow-ul
Antrenament eficient al modelelor AI cu PyTorch

Ce este antrenamentul cu precizie mixtă?

Diagramă ilustrând pașii antrenamentului cu precizie mixtă.

  • Antrenament cu precizie mixtă: combină calcule FP16 și FP32 pentru accelerarea antrenamentului
  • Underflow: o valoare devine 0 deoarece depășește limita de precizie
  • Scalarea pierderii previne underflow-ul
Antrenament eficient al modelelor AI cu PyTorch

Ce este antrenamentul cu precizie mixtă?

Diagramă ilustrând pașii antrenamentului cu precizie mixtă.

  • Antrenament cu precizie mixtă: combină calcule FP16 și FP32 pentru accelerarea antrenamentului
  • Underflow: o valoare devine 0 deoarece depășește limita de precizie
  • Scalarea pierderii previne underflow-ul
Antrenament eficient al modelelor AI cu PyTorch

Ce este antrenamentul cu precizie mixtă?

Diagramă ilustrând pașii antrenamentului cu precizie mixtă.

  • Antrenament cu precizie mixtă: combină calcule FP16 și FP32 pentru accelerarea antrenamentului
  • Underflow: o valoare devine 0 deoarece depășește limita de precizie
  • Scalarea pierderii previne underflow-ul
Antrenament eficient al modelelor AI cu PyTorch

Implementare cu PyTorch

Grafic comparând ușurința de utilizare vs. capacitatea de personalizare pentru PyTorch, Accelerator și Trainer.

Antrenament eficient al modelelor AI cu PyTorch

Antrenament cu precizie mixtă folosind 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()
Antrenament eficient al modelelor AI cu PyTorch

De la PyTorch la Accelerator

Grafic comparând ușurința de utilizare vs. capacitatea de personalizare pentru PyTorch, Accelerator și Trainer.

Antrenament eficient al modelelor AI cu PyTorch

De la PyTorch la Accelerator

Grafic comparând ușurința de utilizare vs. capacitatea de personalizare pentru PyTorch, Accelerator și Trainer.

Antrenament eficient al modelelor AI cu PyTorch

Antrenament cu precizie mixtă folosind 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()
Antrenament eficient al modelelor AI cu PyTorch

De la Accelerator la Trainer

Grafic comparând ușurința de utilizare vs. capacitatea de personalizare pentru PyTorch, Accelerator și Trainer.

Antrenament eficient al modelelor AI cu PyTorch

De la Accelerator la Trainer

Grafic comparând ușurința de utilizare vs. capacitatea de personalizare pentru PyTorch, Accelerator și Trainer.

Antrenament eficient al modelelor AI cu PyTorch

Antrenament cu precizie mixtă folosind 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()
Antrenament eficient al modelelor AI cu PyTorch

Să exersăm!

Antrenament eficient al modelelor AI cu PyTorch

Preparing Video For Download...