Çok modlu duygu analizi

Hugging Face ile Multi-Modal Modeller

James Chapman

Curriculum Manager, DataCamp

Görsel-Dil Modelleri (VLM)

Genel olarak görsel-dil model mimarilerinin diyagramı

  • Görsel ve metin ayrı ayrı kodlanır
  • Özellik füzyonu
  • Paylaşılan gösterimler oluştur
    • Tek modelden çoklu görev
Hugging Face ile Multi-Modal Modeller

Görsel akıl yürütme görevleri

  • VQA: Görsel + soru → Görsel içeriği hakkında doğrudan yanıtlar

Sıcak sosis içeren görsel soru yanıtlama

1 https://arxiv.org/pdf/1505.00468
Hugging Face ile Multi-Modal Modeller

Görsel akıl yürütme görevleri

  • VQA: Görsel + soru → Görsel içeriği hakkında doğrudan yanıtlar
  • Eşleştirme: Görsel + ifade → Doğru/Yanlış doğrulamaları

Sıcak sosis ve ilişkili ifadelerle eşleştirme örneği

Hugging Face ile Multi-Modal Modeller

Görsel akıl yürütme görevleri

  • VQA: Görsel + soru → Görsel içeriği hakkında doğrudan yanıtlar
  • Eşleştirmeler: Görsel + ifade → Doğru/Yanlış doğrulamaları
  • İçerme: Görsel + karşıt metinler → Anlamsal ilişki denetimi

İçerme örneği: sıcak sosis için içerme, nötr ve çelişen önermeler

Hugging Face ile Multi-Modal Modeller

Kullanım örneği: hisse fiyatı etkisi

from datasets import load_dataset
dset = "RealTimeData/bbc_news_alltime"
dataset = load_dataset(dset, '2017-01', 
                       split="train")


image = dataset[87]["top_image"] content = dataset[87]["content"] print(content)
'Ford\'un Meksika'da 1,6 milyar $'lık yatırımı iptal etme ve Michigan'a ek 700 milyon $ yatırım yapma kararı ...

haberden görsel: otomobil üretim yatırımları

Hugging Face ile Multi-Modal Modeller

Qwen 2 VLM'ler

from transformers import Qwen2VLForConditionalGeneration
from qwen_vl_utils import process_vision_info


vl_model = Qwen2VLForConditionalGeneration.from_pretrained( "Qwen/Qwen2-VL-2B-Instruct", device_map="auto", torch_dtype="auto" )
Hugging Face ile Multi-Modal Modeller

Önişlemci

from transformers import Qwen2VLProcessor

min_pixels = 224 * 224
max_pixels = 448 * 448
vl_model_processor = Qwen2VLProcessor.from_pretrained(
    "Qwen/Qwen2-VL-2B-Instruct", min_pixels=min_pixels, max_pixels=max_pixels
)
Hugging Face ile Multi-Modal Modeller

Çok modlu komutlar

text_query = f"Aşağıdaki içeriğin hissedar Ford fiyatı için hissedar için duygu iyi mi kötü mü:
{article_text}. Gerekçe veriniz."


chat_template = [ { "role": "user", "content": [ {"type": "image", "image": article_image}, {"type": "text", "text": text_query} ] } ]
Hugging Face ile Multi-Modal Modeller

VLM sınıflandırma

text = vl_model_processor.apply_chat_template(chat_template, tokenize=False,
                                              add_generation_prompt=True)

image_inputs, _ = process_vision_info(chat_template)
inputs = vl_model_processor(text=[text], images=image_inputs, padding=True, return_tensors="pt")
generated_ids = vl_model.generate(**inputs, max_new_tokens=500)
generated_ids_trimmed = [out_ids[len(in_ids) :] for in_ids, out_ids\ in zip(inputs.input_ids, generated_ids)]
Hugging Face ile Multi-Modal Modeller

VLM sınıflandırma

output_text = vl_model_processor.batch_decode(
    generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text[0])
Verilen metnin duygusu olumsuzdur. Yazar endişe ve
şüphecilik ifade ediyor ...
Hugging Face ile Multi-Modal Modeller

Hadi pratik yapalım!

Hugging Face ile Multi-Modal Modeller

Preparing Video For Download...