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

Entraînement efficace de 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

 

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 permettant à des personnes ayant une déficience visuelle d’utiliser des commandes vocales sur leur téléphone.

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

Manipuler un jeu de données d’images d’exemple

print(dataset)
Dataset({
    features: ['img', 'label'],
    num_rows: 1000
})
print(dataset[0]["img"])
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=720x480>
Entraînement efficace de 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înement efficace de 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înement efficace de modèles d’IA avec PyTorch

Manipuler un jeu de données audio d’exemple

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

features: ['file', 'audio',
'label'], num_rows: 1000 }), ... })
Entraînement efficace de 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 second
max_length = sampling_rate * max_duration
print(f"max_length = {max_length:,} samples")
max_length = 16,000 samples
Entraînement efficace de 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înement efficace de modèles d’IA avec PyTorch

Appliquer la fonction de prétraitement

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

remove_columns=["audio", "file"],
batched=True)
Entraînement efficace de 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înement efficace de 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 la disponibilité
  • Partitionnement des données : chaque GPU traite un sous-ensemble, comme partager des pointes de pizza
  • accelerator.prepare() fonctionne avec les DataLoader 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î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...