Prétraiter images et audio pour l’entraînement

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

Dennis Lee

Data Engineer, Amazon

Préparer images et audio

Application image

  • Classification d’images pour identifier des objets
  • Partitionnement des données (sharding)

 

Image d’une application de détection d’objets montrant des voitures dans une rue. L’application tourne sur un téléphone tenu devant la scène.

Application audio

  • Donner des commandes vocales
  • Exemple : "Baisser le volume"

 

Image d’une technologie d’assistance audio pour personnes malvoyantes utilisant des commandes vocales sur leur téléphone.

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

Manipuler un jeu de données image exemple

print(dataset)
Dataset({
    features: ['img', 'label'],
    num_rows: 1000
})
print(dataset[0]["img"])
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=720x480>
Entraîner efficacement des modèles d’IA avec PyTorch

Standardiser le format d’image

  • Formater les images : largeur, hauteur
  • Standardiser les pixels : moyenne, écart-type
  • AutoImageProcessor charge toutes les étapes de prétraitement
from transformers import AutoImageProcessor
model = "microsoft/swin-tiny-patch4-window7-224"

image_processor = AutoImageProcessor.from_pretrained(model)
Entraîner efficacement des modèles d’IA avec PyTorch

Standardiser le format d’image

dataset = dataset.map(
    lambda examples: {

"pixel_values": [
image_processor(image, return_tensors="pt").pixel_values for image in examples["img"] ]}, batched=True)
print(dataset)
Dataset({
    features: ['img', 'label', 'pixel_values'],
    num_rows: 1000
})
Entraîner efficacement des modèles d’IA avec PyTorch

Manipuler un jeu de données audio exemple

print(dataset)
DatasetDict({
    train: Dataset({

features: ['file', 'audio',
'label'], num_rows: 1000 }), ... })
Entraîner efficacement des modèles d’IA avec PyTorch

Standardiser le format audio

  • Standardiser le nombre d’échantillons
  • Taux d’échantillonnage : échantillons par seconde
  • Durée max : secondes d’audio
sampling_rate = 16000  # 16 kHz

max_duration = 1 # 1 seconde
max_length = sampling_rate * max_duration
print(f"max_length = {max_length:,} samples")
max_length = 16,000 samples
Entraîner efficacement des modèles d’IA avec PyTorch

Standardiser le format audio

from transformers import AutoFeatureExtractor

model = "facebook/wav2vec2-base"
feature_extractor = AutoFeatureExtractor.from_pretrained(model)


def preprocess_function(split_data):
audio_arrays = [x["array"] for x in split_data["audio"]]
inputs = feature_extractor(audio_arrays,
sampling_rate=feature_extractor.sampling_rate, max_length=int(feature_extractor.sampling_rate * max_duration),
truncation=True) return inputs
Entraîner efficacement des modèles d’IA avec PyTorch

Appliquer la fonction de prétraitement

  • Appliquer preprocess_function au dataset
  • remove_columns : supprimer les colonnes audio et file
  • batched : traiter les exemples du dataset par lots
dataset = dataset["train"].map(preprocess_function,

remove_columns=["audio", "file"],
batched=True)
Entraîner efficacement des modèles d’IA avec PyTorch

Appliquer la fonction de prétraitement

print(dataset)
DatasetDict({
    train: Dataset({
        features: ['label', 'input_values'],
        num_rows: 1000
    })
Entraîner efficacement des modèles d’IA avec PyTorch

Préparer les données pour l’entraînement distribué

  • DataLoader : prépare les données pour le chargement et l’itération pendant l’entraînement
  • accelerator.prepare() : place les données sur CPU ou GPU selon disponibilité
  • Partitionnement des données : chaque GPU traite un sous-ensemble (comme partager des parts de pizza)
  • accelerator.prepare() fonctionne avec les DataLoaders PyTorch (torch.utils.data.DataLoader)
from accelerate import Accelerator
from torch.utils.data import DataLoader

dataloader = DataLoader(dataset, batch_size=32, shuffle=True)


accelerator = Accelerator() dataloader = accelerator.prepare(dataloader)
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...