Transformers documentation

MatCha

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Bu model 2022-12-19 tarihinde HF papers'ta yayımlanmış ve 2023-06-20 tarihinde Hugging Face Transformers'a katkıda bulunmuştur.

MatCha

Genel Bakış

MatCha, Fangyu Liu, Francesco Piccinno, Syrine Krichene, Chenxi Pang, Kenton Lee, Mandar Joshi, Yasemin Altun, Nigel Collier ve Julian Martin Eisenschlos tarafından kaleme alınan MatCha: Enhancing Visual Language Pretraining with Math Reasoning and Chart Derendering makalesinde önerilmiştir.

Makalenin özeti şunları belirtmektedir:

Grafikler, şemalar ve bilgi grafikleri gibi görsel dil verileri insan dünyasında her yerde mevcuttur. Ancak, en son nesil görme-dil modelleri bu verilerde iyi performans göstermez. Görsel dil modellerinin grafik/şema ve dil verilerini birlikte modelleme yeteneklerini geliştirmek için MatCha'yı (Math reasoning and Chart derendering pretraining) öneriyoruz. Özellikle, görsel dil modellemedeki temel yetenekler olan şema çözümlemesini ve sayısal akıl yürütmeyi kapsayan çeşitli ön eğitim görevleri öneriyoruz. MatCha ön eğitimini, son zamanlarda önerilen görüntüden metne görsel dil modeli olan Pix2Struct'ten başlatarak gerçekleştiriyoruz. PlotQA ve ChartQA gibi standart ölçüm kriterlerinde, MatCha modeli en son yöntemlere kıyasla neredeyse %20'ye varan oranlarda daha iyi performans göstermektedir. Ayrıca, MatCha ön eğitiminin ekran görüntüleri, ders kitabı şemaları ve belge şekilleri gibi alanlara ne kadar iyi aktarıldığını inceleyerek genel bir iyileşme gözlemliyoruz ve bu da MatCha ön eğitiminin daha geniş görsel dil görevlerindeki faydasını doğruluyor.

Model açıklaması

MatCha, Pix2Struct mimarisi kullanılarak eğitilen bir modeldir. Pix2Struct hakkında daha fazla bilgiyi Pix2Struct belgelerinde bulabilirsiniz. MatCha, Pix2Struct mimarisinin Görsel Soru Cevaplama alt kümesidir. Girdi sorusunu görsel üzerinde işler ve cevabı tahmin eder.

Kullanım

Şu anda MatCha için 6 checkpoint mevcut:

  • google/matcha: temel MatCha modeli, MatCha'nın aşağı akış görevlerinde ince ayar yapılması için kullanılır
  • google/matcha-chartqa: ChartQA veri setinde ince ayarlanmış MatCha modeli. Grafiklerle ilgili soruları yanıtlamak için kullanılabilir.
  • google/matcha-plotqa-v1: PlotQA veri setinde ince ayarlanmış MatCha modeli. Grafiklerle ilgili soruları yanıtlamak için kullanılabilir.
  • google/matcha-plotqa-v2: PlotQA veri setinde ince ayarlanmış MatCha modeli. Grafiklerle ilgili soruları yanıtlamak için kullanılabilir.
  • google/matcha-chart2text-statista: Statista veri setinde ince ayarlanmış MatCha modeli.
  • google/matcha-chart2text-pew: Pew veri setinde ince ayarlanmış MatCha modeli.

chart2text-pew ve chart2text-statista üzerinde ince ayar yapılan modeller özetleme için daha uygundur; plotqa ve chartqa üzerinde ince ayar yapılan modeller ise soru-cevap için daha uygundur.

Bu modelleri aşağıdaki gibi kullanabilirsiniz (ChartQA veri setinde örnek):

import requests
from PIL import Image

from transformers import AutoProcessor, Pix2StructForConditionalGeneration


model = Pix2StructForConditionalGeneration.from_pretrained("google/matcha-chartqa").to(0, device_map="auto")
processor = AutoProcessor.from_pretrained("google/matcha-chartqa")
url = "https://raw.githubusercontent.com/vis-nlp/ChartQA/main/ChartQA%20Dataset/val/png/20294671002019.png"
image = Image.open(requests.get(url, stream=True).raw)

inputs = processor(images=image, text="Is the sum of all 4 places greater than Laos?", return_tensors="pt").to(0)
predictions = model.generate(**inputs, max_new_tokens=512)
print(processor.decode(predictions[0], skip_special_tokens=True))

İnce ayar

MatCha'yı ince ayarlamak için pix2struct ince ayar defterine bakın. Pix2Struct modelleri için, modeli Adafactor ve kosinüs öğrenme oranı zamanlayıcısıyla ince ayarlamaya tabi tutmanın daha hızlı yakınsama sağladığını gözlemledik:

from transformers.optimization import Adafactor, get_cosine_schedule_with_warmup


optimizer = Adafactor(self.parameters(), scale_parameter=False, relative_step=False, lr=0.01, weight_decay=1e-05)
scheduler = get_cosine_schedule_with_warmup(optimizer, num_warmup_steps=1000, num_training_steps=40000)

MatCha, Pix2Struct mimarisi kullanılarak eğitilen bir modeldir. Pix2Struct hakkında daha fazla bilgiyi Pix2Struct belgelerinde bulabilirsiniz.

Update on GitHub