Préparer des modèles avec AutoModel et Accelerator

Entraînement efficace de modèles d’IA avec PyTorch

Dennis Lee

Data Engineer, Amazon

Rencontrez votre instructeur·trice!

$$

  • Ingénieur·e de données

Photographie de l’instructeur

Icône d’un serveur

Entraînement efficace de modèles d’IA avec PyTorch

Rencontrez votre instructeur·trice!

$$

  • Ingénieur·e de données
  • Scientifique des données

Photographie de l’instructeur

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

Entraînement efficace de modèles d’IA avec PyTorch

Rencontrez votre instructeur·trice!

$$

  • Ingénieur·e de données
  • Scientifique des données
  • Ph. D. en génie électrique

Photographie de l’instructeur

Icônes d’un serveur, d’une ampoule et d’un mortier

Entraînement efficace de modèles d’IA avec PyTorch

Rencontrez votre instructeur·trice!

$$

  • Ingénieur·e de données
  • Scientifique des données
  • Ph. D. en génie électrique

Photographie de l’instructeur

Icônes d’un serveur, d’une ampoule et d’un mortier

$$

$$

$$

Heureux de partager les meilleures pratiques !

Entraînement efficace de modèles d’IA avec PyTorch

Notre feuille de route pour un entraînement IA efficace

  • Entraînement IA distribué

Ordinateur portable

Entraînement efficace de modèles d’IA avec PyTorch

Notre feuille de route pour un entraînement IA efficace

  • Entraînement IA distribué

Un ordinateur portable et une personne qui attend

Entraînement efficace de modèles d’IA avec PyTorch

Notre feuille de route pour un entraînement IA efficace

  • Entraînement IA distribué

Un portable, une personne qui attend et une puce mémoire

  • ↓ ↓ Temps d’entraînement des grands modèles de langue

Un calendrier

Entraînement efficace de 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 efficace de 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é : étendre l’entraînement à plusieurs appareils
Entraînement efficace de 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é : étendre l’entraînement à plusieurs appareils
  • Entraînement efficace : optimiser les appareils disponibles
Entraînement efficace de 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é : étendre l’entraînement à plusieurs appareils
  • Entraînement efficace : optimiser les appareils disponibles
  • Optimiseurs : accélérer l’entraînement
Entraînement efficace de modèles d’IA avec PyTorch

CPU

  • La plupart des portables ont des CPU

         

Un portable avec CPU

GPU

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

         

Un portable avec GPU

Entraînement efficace de modèles d’IA avec PyTorch

CPU vs GPU

CPU

  • La plupart des portables ont des CPU
  • Conçus pour l’usage général
  • Meilleur contrôle de flux

         

Un portable pour les tâches quotidiennes

GPU

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

         

Un portable pour le calcul parallèle

Entraînement efficace de modèles d’IA avec PyTorch

Entraînement distribué

Schéma de l’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înement efficace de modèles d’IA avec PyTorch

Entraînement distribué

Schéma de l’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 passes avant/arrière
  • Agrégation des gradients : un appareil désigné agrège les gradients
  • Synchronisation des paramètres : un appareil désigné partage les paramètres mis à jour
Entraînement efficace de modèles d’IA avec PyTorch

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

  • Tirer parti des modèles Transformer préentraînés
  • Initialiser les paramètres avec 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înement efficace de 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 de données : accelerator.prepare()
  • Place le modèle (type torch.nn.Module) sur le premier GPU disponible
  • Par défaut, utilise le CPU si aucun GPU n’est trouvé
from accelerate import Accelerator
accelerator = Accelerator()
model = accelerator.prepare(model)

print(accelerator.device)
cpu
Entraînement efficace de modèles d’IA avec PyTorch

Passons à la pratique !

Entraînement efficace de modèles d’IA avec PyTorch

Preparing Video For Download...