Prepare modelos com AutoModel e Accelerator

Treinamento Eficiente de Modelos de IA com PyTorch

Dennis Lee

Data Engineer, Amazon

Conheça o instrutor!

$$

  • Engenheiro de dados

Fotografia do instrutor

Ícone de um servidor

Treinamento Eficiente de Modelos de IA com PyTorch

Conheça o instrutor!

$$

  • Engenheiro de dados
  • Cientista de dados

Fotografia do instrutor

Ícones de um servidor e uma lâmpada

Treinamento Eficiente de Modelos de IA com PyTorch

Conheça o instrutor!

$$

  • Engenheiro de dados
  • Cientista de dados
  • Ph.D. em Engenharia Elétrica

Fotografia do instrutor

Ícones de um servidor, uma lâmpada e um capelo de formatura

Treinamento Eficiente de Modelos de IA com PyTorch

Conheça o instrutor!

$$

  • Engenheiro de dados
  • Cientista de dados
  • Ph.D. em Engenharia Elétrica

Fotografia do instrutor

Ícones de um servidor, uma lâmpada e um capelo de formatura

$$

$$

$$

Animado para compartilhar boas práticas!

Treinamento Eficiente de Modelos de IA com PyTorch

Nosso roteiro para treinar IA com eficiência

  • Treinamento distribuído de modelos de IA

Laptop

Treinamento Eficiente de Modelos de IA com PyTorch

Nosso roteiro para treinar IA com eficiência

  • Treinamento distribuído de modelos de IA

Um laptop e uma pessoa esperando

Treinamento Eficiente de Modelos de IA com PyTorch

Nosso roteiro para treinar IA com eficiência

  • Treinamento distribuído de modelos de IA

Um laptop, uma pessoa esperando e um chip de memória

  • ↓ ↓ Tempos de treino para LLMs

Um calendário

Treinamento Eficiente de Modelos de IA com PyTorch

Nosso roteiro para treinar IA com eficiência

Fluxograma dos tópicos do curso: preparação de dados, treinamento distribuído, treinamento eficiente e otimizadores.

$$

  • Preparação de dados: colocar dados em vários dispositivos
Treinamento Eficiente de Modelos de IA com PyTorch

Nosso roteiro para treinar IA com eficiência

Fluxograma dos tópicos do curso: preparação de dados, treinamento distribuído, treinamento eficiente e otimizadores.

$$

  • Preparação de dados: colocar dados em vários dispositivos
  • Treinamento distribuído: escalar o treino para vários dispositivos
Treinamento Eficiente de Modelos de IA com PyTorch

Nosso roteiro para treinar IA com eficiência

Fluxograma dos tópicos do curso: preparação de dados, treinamento distribuído, treinamento eficiente e otimizadores.

$$

  • Preparação de dados: colocar dados em vários dispositivos
  • Treinamento distribuído: escalar o treino para vários dispositivos
  • Treinamento eficiente: otimizar os dispositivos disponíveis
Treinamento Eficiente de Modelos de IA com PyTorch

Nosso roteiro para treinar IA com eficiência

Fluxograma dos tópicos do curso: preparação de dados, treinamento distribuído, treinamento eficiente e otimizadores.

$$

  • Preparação de dados: colocar dados em vários dispositivos
  • Treinamento distribuído: escalar o treino para vários dispositivos
  • Treinamento eficiente: otimizar os dispositivos disponíveis
  • Otimizadores: acelerar o treino
Treinamento Eficiente de Modelos de IA com PyTorch

CPUs

  • A maioria dos laptops tem CPUs

         

Um laptop com CPU

GPUs

  • GPUs treinam modelos grandes

         

Um laptop com GPU

Treinamento Eficiente de Modelos de IA com PyTorch

CPUs vs GPUs

CPUs

  • A maioria dos laptops tem CPUs
  • Projetadas para computação geral
  • Melhor controle de fluxo

         

Um laptop usado em tarefas diárias

GPUs

  • GPUs treinam modelos grandes
  • Especializadas em computação altamente paralela
  • Excelentes em operações de matriz

         

Um laptop usado para computação paralela

Treinamento Eficiente de Modelos de IA com PyTorch

Treinamento distribuído

Diagrama de treinamento distribuído mostrando replicação do modelo e divisão de dados.

  • Data sharding: cada dispositivo processa um subconjunto de dados em paralelo
Treinamento Eficiente de Modelos de IA com PyTorch

Treinamento distribuído

Diagrama de treinamento distribuído mostrando replicação do modelo e divisão de dados.

  • Data sharding: cada dispositivo processa um subconjunto de dados em paralelo
  • Replicação do modelo: cada dispositivo faz forward/backward
  • Agregação de gradientes: um dispositivo agrega os gradientes
  • Sincronização de parâmetros: esse dispositivo compartilha os parâmetros atualizados
Treinamento Eficiente de Modelos de IA com PyTorch

Eficiência sem esforço: usando modelos pré-treinados

  • Aproveite modelos Transformer pré-treinados
  • Inicie parâmetros chamando AutoModelForSequenceClassification
  • Exiba a configuração
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(model_name)

print(model.config)
DistilBertConfig {
  "architectures": ["DistilBertForMaskedLM"],
  "dim": 768,
  "dropout": 0.1,
  "hidden_dim": 3072,
  ...
Treinamento Eficiente de Modelos de IA com PyTorch

Alocação de dispositivo com Accelerator

  • Uma classe da Hugging Face 🤗
  • Accelerator detecta quais dispositivos estão disponíveis no computador
  • Automatiza alocação e paralelismo de dados: accelerator.prepare()
  • Coloca o modelo (tipo torch.nn.Module) na primeira GPU disponível
  • Usa CPU se não houver GPU
from accelerate import Accelerator
accelerator = Accelerator()
model = accelerator.prepare(model)

print(accelerator.device)
cpu
Treinamento Eficiente de Modelos de IA com PyTorch

Vamos praticar!

Treinamento Eficiente de Modelos de IA com PyTorch

Preparing Video For Download...