Farklı modalitelerin ön işlenmesi

Hugging Face ile Multi-Modal Modeller

James Chapman

Curriculum Manager, DataCamp

Metin ön işleme

Bir örnek metin dizesi.

  • Tokenizer: metni → model girdisine eşler
Hugging Face ile Multi-Modal Modeller

Metin ön işleme

Normalize etmeye kadar metin ön işlemenin akış diyagramı

  • Tokenizer: metni → model girdisine eşler
    • Normalize etme: küçültme, özel karakterleri kaldırma, fazla boşlukları kaldırma
Hugging Face ile Multi-Modal Modeller

Metin ön işleme

Tokenizasyona devam eden akış diyagramı

  • Tokenizer: metni → model girdisine eşler
    • Normalize etme: küçültme, özel karakterleri kaldırma, fazla boşlukları kaldırma
    • (Ön) tokenizasyon: metni sözcük/alt sözcüklere bölme
Hugging Face ile Multi-Modal Modeller

Metin ön işleme

ID dönüştürme ve dolguya devam eden akış diyagramı

  • Tokenizer: metni → model girdisine eşler
    • Normalize etme: küçültme, özel karakterleri ve boşlukları kaldırma
    • (Ön) tokenizasyon: metni sözcük/alt sözcüklere bölme
    • ID dönüşümü: tokenları sözlükle tamsayılara eşleme
Hugging Face ile Multi-Modal Modeller

Metin ön işleme

preprocessing_text5.jpg

  • Tokenizer: metni → model girdisine eşler
    • Normalize etme: küçültme, özel karakterleri ve boşlukları kaldırma
    • (Ön) tokenizasyon: metni sözcük/alt sözcüklere bölme
    • ID dönüşümü: tokenları sözlükle tamsayılara eşleme
    • Dolgu (padding): sabit uzunluk için ek token ekleme
Hugging Face ile Multi-Modal Modeller

Metin ön işleme

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]]), ...}
Hugging Face ile Multi-Modal Modeller

Görüntü ön işleme

  • Normalize etme: piksel yoğunluklarını ayarlama
  • Yeniden boyutlandırma: modele giriş katmanına uydurma
  • Genel kural → özgün modelin ön işlemesini kullanın

Görüntü ön işleme öncesi/sonrası zıplayan bir grup insanın görüntüleri

1 https://huggingface.co/datasets/nlphuji/flickr30k
Hugging Face ile Multi-Modal Modeller

Görüntü ön işleme

Multimodal görevler için tutarlı ön işleme gerekir:

from transformers import BlipProcessor, BlipForConditionalGeneration

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

Görüntüyü kodlayın → metin kodlamasına dönüştürün → metni çözün

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'}]
Hugging Face ile Multi-Modal Modeller

Ses ön işleme

Ses spektrumu

  • Ses ön işleme:
    • Sıralı dizi → filtre/dolgu
    • Örnekleme hızı → yeniden örnekleme

Model girdisi olarak öznitelik çıkarımı (spektrogram)

spektro

Hugging Face ile Multi-Modal Modeller

Ses ön işleme

from datasets import load_dataset, Audio

dataset = load_dataset("CSTR-Edinburgh/vctk")["train"] dataset = dataset.cast_column("audio", Audio(sampling_rate=16_000))
  • Modele özgü tam ön işleyiciler mevcuttur:
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")
  • Örnekleme hızı modelin giriş gereksinimleriyle eşleşmelidir
1 https://huggingface.co/datasets/CSTR-Edinburgh/vctk
Hugging Face ile Multi-Modal Modeller

Haydi pratik yapalım!

Hugging Face ile Multi-Modal Modeller

Preparing Video For Download...