Prétraiter différentes modalités

Modèles multimodaux avec Hugging Face

James Chapman

Curriculum Manager, DataCamp

Prétraitement du texte

Exemple de chaîne de texte.

  • Tokenizer : convertit le texte → entrée du modèle
Modèles multimodaux avec Hugging Face

Prétraitement du texte

Schéma du flux de prétraitement du texte jusqu'à la normalisation

  • Tokenizer : convertit le texte → entrée du modèle
    • Normalisation : mise en minuscules, retrait des caractères spéciaux, retrait des espaces superflus
Modèles multimodaux avec Hugging Face

Prétraitement du texte

Suite du schéma vers la tokénisation

  • Tokenizer : convertit le texte → entrée du modèle
    • Normalisation : mise en minuscules, retrait des caractères spéciaux, retrait des espaces superflus
    • (Pré)tokénisation : découpe du texte en mots/sous-mots
Modèles multimodaux avec Hugging Face

Prétraitement du texte

Suite du schéma vers la conversion d'ID et le bourrage

  • Tokenizer : convertit le texte → entrée du modèle
    • Normalisation : mise en minuscules, retrait des caractères spéciaux, espaces
    • (Pré)tokénisation : découpe du texte en mots/sous-mots
    • Conversion d'ID : associer les jetons à des entiers via un vocabulaire
Modèles multimodaux avec Hugging Face

Prétraitement du texte

preprocessing_text5.jpg

  • Tokenizer : convertit le texte → entrée du modèle
    • Normalisation : mise en minuscules, retrait des caractères spéciaux, espaces
    • (Pré)tokénisation : découpe du texte en mots/sous-mots
    • Conversion d'ID : associer les jetons à des entiers via un vocabulaire
    • Bourrage (padding) : ajouter des jetons pour une longueur uniforme
Modèles multimodaux avec Hugging Face

Prétraitement du texte

from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('distilbert/distilbert-base-uncased')

text = "Do you need more éclairs?"
print(tokenizer.backend_tokenizer.normalizer.normalize_str(text))
do you need more eclairs
tokenizer(text, return_tensors='pt', padding=True)
{'input_ids': tensor([[  101,  ..., 102]]), ...}
Modèles multimodaux avec Hugging Face

Prétraitement des images

  • Normalisation : ajuster l'intensité des pixels
  • Redimensionnement : adapter à la couche d'entrée du modèle
  • Règle générale → utiliser le prétraitement du modèle d'origine

Images d'un groupe qui saute avant/après le prétraitement

1 https://huggingface.co/datasets/nlphuji/flickr30k
Modèles multimodaux avec Hugging Face

Prétraitement des images

Les tâches multimodales exigent un prétraitement cohérent :

from transformers import BlipProcessor, BlipForConditionalGeneration

checkpoint = "Salesforce/blip-image-captioning-base"
model = BlipForConditionalGeneration.from_pretrained(checkpoint) processor = BlipProcessor.from_pretrained(checkpoint)

Encoder l'image → transformer en encodage texte → décoder le texte

image = load_dataset("nlphuji/flickr30k")['test'][11]["image"]
inputs = processor(images=image, return_tensors="pt")

output = model.generate(**inputs)
print(processor.decode(output[0]))
[{'generated_text': 'a group of people jumping'}]
Modèles multimodaux avec Hugging Face

Prétraitement audio

Spectre audio

  • Prétraitement audio :
    • Tableau séquentiel → filtrage/bourrage
    • Taux d'échantillonnage → rééchantillonnage

Extraction de caractéristiques comme entrée du modèle (spectrogramme)

spectro

Modèles multimodaux avec Hugging Face

Prétraitement audio

from datasets import load_dataset, Audio

dataset = load_dataset("CSTR-Edinburgh/vctk")["train"] dataset = dataset.cast_column("audio", Audio(sampling_rate=16_000))
  • Des préprocesseurs complets propres au modèle devraient être offerts :
from transformers import AutoProcessor
processor = AutoProcessor.from_pretrained("openai/whisper-small")
audio_pp = processor(dataset[0]["audio"]["array"], 
                     sampling_rate=16_000, return_tensors="pt")
  • Le taux d'échantillonnage doit correspondre aux exigences d'entrée du modèle
1 https://huggingface.co/datasets/CSTR-Edinburgh/vctk
Modèles multimodaux avec Hugging Face

Passons à la pratique !

Modèles multimodaux avec Hugging Face

Preparing Video For Download...