Pré-processamento de diferentes modalidades

Modelos multimodais com Hugging Face

James Chapman

Curriculum Manager, DataCamp

Pré-processamento de texto

Um exemplo de string de texto.

  • Tokenizer: mapeia texto → entrada do modelo
Modelos multimodais com Hugging Face

Pré-processamento de texto

Diagrama de fluxo do pré-processamento de texto até a normalização

  • Tokenizer: mapeia texto → entrada do modelo
    • Normalização: letras minúsculas, remover caracteres especiais, remover espaços extras
Modelos multimodais com Hugging Face

Pré-processamento de texto

Continuação do diagrama até a tokenização

  • Tokenizer: mapeia texto → entrada do modelo
    • Normalização: letras minúsculas, remover caracteres especiais, remover espaços extras
    • (Pré-)tokenização: dividir texto em palavras/subpalavras
Modelos multimodais com Hugging Face

Pré-processamento de texto

Continuação do diagrama até conversão para IDs e padding

  • Tokenizer: mapeia texto → entrada do modelo
    • Normalização: letras minúsculas, remover caracteres especiais, espaços
    • (Pré-)tokenização: dividir texto em palavras/subpalavras
    • Conversão para ID: mapear tokens para inteiros usando um vocabulário
Modelos multimodais com Hugging Face

Pré-processamento de texto

preprocessing_text5.jpg

  • Tokenizer: mapeia texto → entrada do modelo
    • Normalização: letras minúsculas, remover caracteres especiais, espaços
    • (Pré-)tokenização: dividir texto em palavras/subpalavras
    • Conversão para ID: mapear tokens para inteiros usando um vocabulário
    • Padding: adicionar tokens para comprimento consistente
Modelos multimodais com Hugging Face

Pré-processamento de texto

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]]), ...}
Modelos multimodais com Hugging Face

Pré-processamento de imagens

  • Normalização: ajustar intensidades de pixels
  • Redimensionar: combinar com a camada de entrada do modelo
  • Regra geral → use o pré-processamento do modelo original

imagens de um grupo de pessoas pulando antes e depois do pré-processamento

1 https://huggingface.co/datasets/nlphuji/flickr30k
Modelos multimodais com Hugging Face

Pré-processamento de imagens

Tarefas multimodais exigem pré-processamento consistente:

from transformers import BlipProcessor, BlipForConditionalGeneration

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

Codificar imagem → transformar para codificação de texto → decodificar texto

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'}]
Modelos multimodais com Hugging Face

Pré-processamento de áudio

Espectro de áudio

  • Pré-processamento de áudio:
    • Array sequencial → filtro/padding
    • Taxa de amostragem → reamostragem

Extração de features como entrada do modelo (espectrograma)

spectro

Modelos multimodais com Hugging Face

Pré-processamento de áudio

from datasets import load_dataset, Audio

dataset = load_dataset("CSTR-Edinburgh/vctk")["train"] dataset = dataset.cast_column("audio", Audio(sampling_rate=16_000))
  • Pré-processadores completos específicos do modelo devem estar disponíveis:
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")
  • A taxa de amostragem deve corresponder aos requisitos de entrada do modelo
1 https://huggingface.co/datasets/CSTR-Edinburgh/vctk
Modelos multimodais com Hugging Face

Vamos praticar!

Modelos multimodais com Hugging Face

Preparing Video For Download...