Обучение со смешанной точностью

Эффективное обучение моделей ИИ с PyTorch

Dennis Lee

Data Engineer, Amazon

Смешанная точность ускоряет вычисления

 

 

Иконки, представляющие эффективность памяти, коммуникации и вычислений.

Эффективное обучение моделей ИИ с PyTorch

Более быстрые вычисления с меньшей точностью

Диаграмма представления чисел с плавающей точкой в форматах FP32 и FP16.

Эффективное обучение моделей ИИ с PyTorch

Более быстрые вычисления с меньшей точностью

Диаграмма представления чисел с плавающей точкой в форматах FP32 и FP16.

Эффективное обучение моделей ИИ с PyTorch

Более быстрые вычисления с меньшей точностью

Диаграмма представления чисел с плавающей точкой в форматах FP32 и FP16.

Эффективное обучение моделей ИИ с PyTorch

Что такое обучение со смешанной точностью?

Диаграмма, иллюстрирующая этапы обучения со смешанной точностью.

  • Смешанная точность: сочетание FP16 и FP32 для ускорения обучения
Эффективное обучение моделей ИИ с PyTorch

Что такое обучение со смешанной точностью?

Диаграмма, иллюстрирующая этапы обучения со смешанной точностью.

  • Смешанная точность: сочетание FP16 и FP32 для ускорения обучения
Эффективное обучение моделей ИИ с PyTorch

Что такое обучение со смешанной точностью?

Диаграмма, иллюстрирующая этапы обучения со смешанной точностью.

  • Смешанная точность: сочетание FP16 и FP32 для ускорения обучения
  • Потеря значимости: число обнуляется, выходя за предел точности
Эффективное обучение моделей ИИ с PyTorch

Что такое обучение со смешанной точностью?

Диаграмма, иллюстрирующая этапы обучения со смешанной точностью.

  • Смешанная точность: сочетание FP16 и FP32 для ускорения обучения
  • Потеря значимости: число обнуляется, выходя за предел точности
  • Масштабирование потерь для предотвращения потери значимости
Эффективное обучение моделей ИИ с PyTorch

Что такое обучение со смешанной точностью?

Диаграмма, иллюстрирующая этапы обучения со смешанной точностью.

  • Смешанная точность: сочетание FP16 и FP32 для ускорения обучения
  • Потеря значимости: число обнуляется, выходя за предел точности
  • Масштабирование потерь для предотвращения потери значимости
Эффективное обучение моделей ИИ с PyTorch

Что такое обучение со смешанной точностью?

Диаграмма, иллюстрирующая этапы обучения со смешанной точностью.

  • Смешанная точность: сочетание FP16 и FP32 для ускорения обучения
  • Потеря значимости: число обнуляется, выходя за предел точности
  • Масштабирование потерь для предотвращения потери значимости
Эффективное обучение моделей ИИ с PyTorch

Что такое обучение со смешанной точностью?

Диаграмма, иллюстрирующая этапы обучения со смешанной точностью.

  • Смешанная точность: сочетание FP16 и FP32 для ускорения обучения
  • Потеря значимости: число обнуляется, выходя за предел точности
  • Масштабирование потерь для предотвращения потери значимости
Эффективное обучение моделей ИИ с PyTorch

Что такое обучение со смешанной точностью?

Диаграмма, иллюстрирующая этапы обучения со смешанной точностью.

  • Смешанная точность: сочетание FP16 и FP32 для ускорения обучения
  • Потеря значимости: число обнуляется, выходя за предел точности
  • Масштабирование потерь для предотвращения потери значимости
Эффективное обучение моделей ИИ с PyTorch

Реализация на PyTorch

График сравнения удобства использования и возможностей настройки для PyTorch, Accelerator и Trainer.

Эффективное обучение моделей ИИ с PyTorch

Смешанная точность с 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()
Эффективное обучение моделей ИИ с PyTorch

От PyTorch к Accelerator

График сравнения удобства использования и возможностей настройки для PyTorch, Accelerator и Trainer.

Эффективное обучение моделей ИИ с PyTorch

От PyTorch к Accelerator

График сравнения удобства использования и возможностей настройки для PyTorch, Accelerator и Trainer.

Эффективное обучение моделей ИИ с PyTorch

Смешанная точность с 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()
Эффективное обучение моделей ИИ с PyTorch

От Accelerator к Trainer

График сравнения удобства использования и возможностей настройки для PyTorch, Accelerator и Trainer.

Эффективное обучение моделей ИИ с PyTorch

От Accelerator к Trainer

График сравнения удобства использования и возможностей настройки для PyTorch, Accelerator и Trainer.

Эффективное обучение моделей ИИ с PyTorch

Смешанная точность с 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()
Эффективное обучение моделей ИИ с PyTorch

Вперёд к практике!

Эффективное обучение моделей ИИ с PyTorch

Preparing Video For Download...