Préparer des modèles avec AutoModel et Accelerator

Entraîner efficacement des modèles d’IA avec PyTorch

Dennis Lee

Data Engineer, Amazon

Faites connaissance avec votre instructeur

$$

  • Ingénieur data

Photographie de l'instructeur

Icône d'un serveur

Entraîner efficacement des modèles d’IA avec PyTorch

Faites connaissance avec votre instructeur

$$

  • Ingénieur data
  • Data scientist

Photographie de l'instructeur

Icônes d'un serveur et d'une ampoule

Entraîner efficacement des modèles d’IA avec PyTorch

Faites connaissance avec votre instructeur

$$

  • Ingénieur data
  • Data scientist
  • Doctorat en génie électrique

Photographie de l'instructeur

Icônes d'un serveur, d'une ampoule et d'un chapeau de diplômé

Entraîner efficacement des modèles d’IA avec PyTorch

Faites connaissance avec votre instructeur

$$

  • Ingénieur data
  • Data scientist
  • Doctorat en génie électrique

Photographie de l'instructeur

Icônes d'un serveur, d'une ampoule et d'un chapeau de diplômé

$$

$$

$$

Heureux de partager les meilleures pratiques !

Entraîner efficacement des modèles d’IA avec PyTorch

Notre feuille de route pour un entraînement IA efficace

  • Entraînement distribué de modèles d'IA

Ordinateur portable

Entraîner efficacement des modèles d’IA avec PyTorch

Notre feuille de route pour un entraînement IA efficace

  • Entraînement distribué de modèles d'IA

Un ordinateur portable et une personne qui attend

Entraîner efficacement des modèles d’IA avec PyTorch

Notre feuille de route pour un entraînement IA efficace

  • Entraînement distribué de modèles d'IA

Un ordinateur portable, une personne qui attend et une barrette mémoire

  • ↓ ↓ Durées d'entraînement pour les grands modèles de langage

Un calendrier

Entraîner efficacement des modèles d’IA avec PyTorch

Notre feuille de route pour un entraînement IA efficace

Organigramme des thèmes du cours : préparation des données, entraînement distribué, entraînement efficace et optimiseurs.

$$

  • Préparation des données : placer les données sur plusieurs appareils
Entraîner efficacement des modèles d’IA avec PyTorch

Notre feuille de route pour un entraînement IA efficace

Organigramme des thèmes du cours : préparation des données, entraînement distribué, entraînement efficace et optimiseurs.

$$

  • Préparation des données : placer les données sur plusieurs appareils
  • Entraînement distribué : mettre à l'échelle sur plusieurs appareils
Entraîner efficacement des modèles d’IA avec PyTorch

Notre feuille de route pour un entraînement IA efficace

Organigramme des thèmes du cours : préparation des données, entraînement distribué, entraînement efficace et optimiseurs.

$$

  • Préparation des données : placer les données sur plusieurs appareils
  • Entraînement distribué : mettre à l'échelle sur plusieurs appareils
  • Entraînement efficace : optimiser les appareils disponibles
Entraîner efficacement des modèles d’IA avec PyTorch

Notre feuille de route pour un entraînement IA efficace

Organigramme des thèmes du cours : préparation des données, entraînement distribué, entraînement efficace et optimiseurs.

$$

  • Préparation des données : placer les données sur plusieurs appareils
  • Entraînement distribué : mettre à l'échelle sur plusieurs appareils
  • Entraînement efficace : optimiser les appareils disponibles
  • Optimiseurs : accélérer l'entraînement
Entraîner efficacement des modèles d’IA avec PyTorch

CPU

  • La plupart des ordinateurs portables ont des CPU

         

Un ordinateur portable avec CPU

GPU

  • Les GPU peuvent entraîner de grands modèles

         

Un ordinateur portable avec GPU

Entraîner efficacement des modèles d’IA avec PyTorch

CPU vs GPU

CPU

  • La plupart des ordinateurs portables ont des CPU
  • Conçus pour l'informatique générale
  • Meilleur contrôle du flux

         

Un ordinateur portable pour les tâches quotidiennes

GPU

  • Les GPU peuvent entraîner de grands modèles
  • Spécialisés dans le calcul massivement parallèle
  • Excellents pour les opérations matricielles

         

Un ordinateur portable pour le calcul parallèle

Entraîner efficacement des modèles d’IA avec PyTorch

Entraînement distribué

Schéma d'entraînement distribué montrant la réplication du modèle et le partitionnement des données.

  • Partitionnement des données : chaque appareil traite un sous-ensemble en parallèle
Entraîner efficacement des modèles d’IA avec PyTorch

Entraînement distribué

Schéma d'entraînement distribué montrant la réplication du modèle et le partitionnement des données.

  • Partitionnement des données : chaque appareil traite un sous-ensemble en parallèle
  • Réplication du modèle : chaque appareil effectue les passes avant/arrière
  • Agrégation des gradients : un appareil agrège les gradients
  • Synchronisation des paramètres : un appareil partage les paramètres mis à jour
Entraîner efficacement des modèles d’IA avec PyTorch

Efficacité sans effort : tirer parti des modèles préentraînés

  • Exploiter des modèles Transformer préentraînés
  • Initialiser les paramètres via AutoModelForSequenceClassification
  • Afficher la configuration
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(model_name)

print(model.config)
DistilBertConfig {
  "architectures": ["DistilBertForMaskedLM"],
  "dim": 768,
  "dropout": 0.1,
  "hidden_dim": 3072,
  ...
Entraîner efficacement des modèles d’IA avec PyTorch

Placement des appareils avec Accelerator

  • Une classe Hugging Face 🤗
  • Accelerator détecte les appareils disponibles sur l’ordinateur
  • Automatise le placement et le parallélisme des données : accelerator.prepare()
  • Place le modèle (type torch.nn.Module) sur le premier GPU disponible
  • Bascule sur le CPU si aucun GPU n’est trouvé
from accelerate import Accelerator
accelerator = Accelerator()
model = accelerator.prepare(model)

print(accelerator.device)
cpu
Entraîner efficacement des modèles d’IA avec PyTorch

Passons à la pratique !

Entraîner efficacement des modèles d’IA avec PyTorch

Preparing Video For Download...