Prétraiter le texte pour l’entraînement

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

Dennis Lee

Data Engineer, Amazon

Transformation de texte : préparer les données pour maîtriser le modèle

  • Résumer des textes dans des documents
  • Identification de paraphrases
  • Jeu de données MRPC : paires de phrases avec étiquettes

Grande pile de documents à revoir.

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

Structure du jeu de données

from datasets import load_dataset
dataset = load_dataset("glue", "mrpc")
print(dataset)
DatasetDict({
    train: Dataset({
        features: ['sentence1', 'sentence2', 'label', 'idx'],
    })
    validation: Dataset({
        features: ['sentence1', 'sentence2', 'label', 'idx'],
    })
    test: Dataset({
        features: ['sentence1', 'sentence2', 'label', 'idx'],
    })
})
Entraînement efficace de modèles d’IA avec PyTorch

Manipuler le jeu de données texte

  • Dictionnaire imbriqué de splits train/validation/test
  • Exemple d’accès au split train :
dataset["train"]
  • Accéder aux features propres au dataset dans un split
  • Features MRPC : sentence1, sentence2, label
dataset["train"]["sentence1"]
  • Charger un tokenizer pré-entraîné
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-cased")
Entraînement efficace de modèles d’IA avec PyTorch

Définir une fonction d’encodage

  • Définir une fonction pour encoder les exemples du dataset
  • Appeler le tokenizer; extraire sentence1 et sentence2 de l’exemple d’entraînement
  • truncation : tronquer si plus long que la longueur max (512 tokens)
  • padding : compléter avec des zéros pour avoir une longueur uniforme
def encode(example):

return tokenizer( example["sentence1"], example["sentence2"],
truncation=True,
padding="max_length", )
Entraînement efficace de modèles d’IA avec PyTorch

Formater les noms de colonnes

  • Appliquer encode à chaque exemple du split train avec map
train_dataset = dataset["train"].map(encode, batched=True)
  • Renommer label en labels
train_dataset = train_dataset.map(
    lambda examples: {"labels": examples["label"]}, batched=True
)
  • Vérifier dans la doc Hugging Face les colonnes requises par le modèle
Entraînement efficace de modèles d’IA avec PyTorch

Enregistrer et charger des checkpoints

  • Placer le jeu de données sur les GPU disponibles
dataloader = DataLoader(train_dataset, batch_size=32, shuffle=True)
dataloader = accelerator.prepare(dataloader)
  • Fonctionne avec tout dataset PyTorch (torch.utils.data.Dataset) dans un DataLoader
  • Enregistrer l’état du texte prétraité, appelé un checkpoint
checkpoint_dir = Path("preprocess_checkpoint")
accelerator.save_state(checkpoint_dir)
  • Charger le checkpoint pour reprendre l’entraînement
accelerator.load_state(checkpoint_dir)
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...