Mixed-Precision-Training

Effizientes KI-Modelltraining mit PyTorch

Dennis Lee

Data Engineer, Amazon

Mixed Precision beschleunigt Berechnungen

 

 

Symbole für Speicher-, Kommunikations- und Recheneffizienz.

Effizientes KI-Modelltraining mit PyTorch

Schnellere Berechnungen mit weniger Präzision

Diagramm zur Darstellung von Gleitkommazahlen in FP32 und FP16.

Effizientes KI-Modelltraining mit PyTorch

Schnellere Berechnungen mit weniger Präzision

Diagramm zur Darstellung von Gleitkommazahlen in FP32 und FP16.

Effizientes KI-Modelltraining mit PyTorch

Schnellere Berechnungen mit weniger Präzision

Diagramm zur Darstellung von Gleitkommazahlen in FP32 und FP16.

Effizientes KI-Modelltraining mit PyTorch

Was ist Mixed-Precision-Training?

Diagramm der Schritte beim Mixed-Precision-Training.

  • Mixed-Precision-Training: FP16 und FP32 kombinieren, um Training zu beschleunigen
Effizientes KI-Modelltraining mit PyTorch

Was ist Mixed-Precision-Training?

Diagramm der Schritte beim Mixed-Precision-Training.

  • Mixed-Precision-Training: FP16 und FP32 kombinieren, um Training zu beschleunigen
Effizientes KI-Modelltraining mit PyTorch

Was ist Mixed-Precision-Training?

Diagramm der Schritte beim Mixed-Precision-Training.

  • Mixed-Precision-Training: FP16 und FP32 kombinieren, um Training zu beschleunigen
  • Underflow: Zahl wird zu 0, weil sie unter die Präzision fällt
Effizientes KI-Modelltraining mit PyTorch

Was ist Mixed-Precision-Training?

Diagramm der Schritte beim Mixed-Precision-Training.

  • Mixed-Precision-Training: FP16 und FP32 kombinieren, um Training zu beschleunigen
  • Underflow: Zahl wird zu 0, weil sie unter die Präzision fällt
  • Loss skalieren, um Underflow zu vermeiden
Effizientes KI-Modelltraining mit PyTorch

Was ist Mixed-Precision-Training?

Diagramm der Schritte beim Mixed-Precision-Training.

  • Mixed-Precision-Training: FP16 und FP32 kombinieren, um Training zu beschleunigen
  • Underflow: Zahl wird zu 0, weil sie unter die Präzision fällt
  • Loss skalieren, um Underflow zu vermeiden
Effizientes KI-Modelltraining mit PyTorch

Was ist Mixed-Precision-Training?

Diagramm der Schritte beim Mixed-Precision-Training.

  • Mixed-Precision-Training: FP16 und FP32 kombinieren, um Training zu beschleunigen
  • Underflow: Zahl wird zu 0, weil sie unter die Präzision fällt
  • Loss skalieren, um Underflow zu vermeiden
Effizientes KI-Modelltraining mit PyTorch

Was ist Mixed-Precision-Training?

Diagramm der Schritte beim Mixed-Precision-Training.

  • Mixed-Precision-Training: FP16 und FP32 kombinieren, um Training zu beschleunigen
  • Underflow: Zahl wird zu 0, weil sie unter die Präzision fällt
  • Loss skalieren, um Underflow zu vermeiden
Effizientes KI-Modelltraining mit PyTorch

Was ist Mixed-Precision-Training?

Diagramm der Schritte beim Mixed-Precision-Training.

  • Mixed-Precision-Training: FP16 und FP32 kombinieren, um Training zu beschleunigen
  • Underflow: Zahl wird zu 0, weil sie unter die Präzision fällt
  • Loss skalieren, um Underflow zu vermeiden
Effizientes KI-Modelltraining mit PyTorch

PyTorch-Implementierung

Diagramm: Bedienkomfort vs. Anpassbarkeit für PyTorch, Accelerator und Trainer.

Effizientes KI-Modelltraining mit PyTorch

Mixed-Precision-Training mit 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()
Effizientes KI-Modelltraining mit PyTorch

Von PyTorch zu Accelerator

Diagramm: Bedienkomfort vs. Anpassbarkeit für PyTorch, Accelerator und Trainer.

Effizientes KI-Modelltraining mit PyTorch

Von PyTorch zu Accelerator

Diagramm: Bedienkomfort vs. Anpassbarkeit für PyTorch, Accelerator und Trainer.

Effizientes KI-Modelltraining mit PyTorch

Mixed-Precision-Training mit 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()
Effizientes KI-Modelltraining mit PyTorch

Von Accelerator zu Trainer

Diagramm: Bedienkomfort vs. Anpassbarkeit für PyTorch, Accelerator und Trainer.

Effizientes KI-Modelltraining mit PyTorch

Von Accelerator zu Trainer

Diagramm: Bedienkomfort vs. Anpassbarkeit für PyTorch, Accelerator und Trainer.

Effizientes KI-Modelltraining mit PyTorch

Mixed-Precision-Training mit 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()
Effizientes KI-Modelltraining mit PyTorch

Lass uns üben!

Effizientes KI-Modelltraining mit PyTorch

Preparing Video For Download...