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

Model ini dipublikasikan di HF papers pada 2022-12-19 dan disumbangkan ke Hugging Face Transformers pada 2023-06-20.

MatCha

Ikhtisar

MatCha diusulkan dalam makalah MatCha: Enhancing Visual Language Pretraining with Math Reasoning and Chart Derendering, dari Fangyu Liu, Francesco Piccinno, Syrine Krichene, Chenxi Pang, Kenton Lee, Mandar Joshi, Yasemin Altun, Nigel Collier, Julian Martin Eisenschlos.

Abstrak dari makalah tersebut menyatakan hal berikut:

Data bahasa visual seperti plot, grafik, dan infografis sangat umum di dunia manusia. Namun, model bahasa-visual terkini tidak berkinerja baik pada data tersebut. Kami mengusulkan MatCha (Math reasoning and Chart derendering pretraining) untuk meningkatkan kemampuan model bahasa visual dalam pemodelan gabungan data grafik/plot dan bahasa. Secara spesifik, kami mengusulkan beberapa tugas pra-pelatihan yang mencakup dekonstruksi plot dan penalaran numerik, yang merupakan kemampuan kunci dalam pemodelan bahasa visual. Kami melakukan pra-pelatihan MatCha dimulai dari Pix2Struct, model bahasa visual gambar-ke-teks yang baru-baru ini diusulkan. Pada benchmark standar seperti PlotQA dan ChartQA, model MatCha melampaui metode terkini hingga hampir 20%. Kami juga memeriksa seberapa baik pra-pelatihan MatCha bertransfer ke domain seperti tangkapan layar, diagram buku teks, dan gambar dokumen, serta mengamati peningkatan secara keseluruhan, yang memverifikasi kegunaan pra-pelatihan MatCha pada tugas bahasa visual yang lebih luas.

Deskripsi model

MatCha adalah model yang dilatih menggunakan arsitektur Pix2Struct. Anda dapat menemukan informasi lebih lanjut tentang Pix2Struct di dokumentasi Pix2Struct. MatCha adalah subset Visual Question Answering dari arsitektur Pix2Struct. Model ini merender pertanyaan input pada gambar dan memprediksi jawabannya.

Penggunaan

Saat ini 6 checkpoint tersedia untuk MatCha:

  • google/matcha: model MatCha dasar, digunakan untuk fine-tune MatCha pada tugas turunan
  • google/matcha-chartqa: Model MatCha yang telah dihaluskan (fine-tuned) pada dataset ChartQA. Model ini dapat digunakan untuk menjawab pertanyaan tentang grafik.
  • google/matcha-plotqa-v1: Model MatCha yang telah di-fine-tune pada dataset PlotQA. Model ini dapat digunakan untuk menjawab pertanyaan tentang plot.
  • google/matcha-plotqa-v2: Model MatCha yang telah di-fine-tune pada dataset PlotQA. Model ini dapat digunakan untuk menjawab pertanyaan tentang plot.
  • google/matcha-chart2text-statista: Model MatCha yang telah dihaluskan (fine-tuned) pada dataset Statista.
  • google/matcha-chart2text-pew: Model MatCha yang telah dihaluskan (fine-tuned) pada dataset Pew.

Model yang ditala halus pada chart2text-pew dan chart2text-statista lebih cocok untuk ringkasan, sedangkan model yang ditala halus pada plotqa dan chartqa lebih cocok untuk menjawab pertanyaan.

Anda dapat menggunakan model-model ini sebagai berikut (contoh pada dataset ChartQA):

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))

Fine-tuning

Untuk melakukan fine-tuning MatCha, lihat notebook fine-tuning pix2struct. Untuk model Pix2Struct, kami menemukan bahwa fine-tuning model dengan Adafactor dan cosine learning rate scheduler menghasilkan konvergensi yang lebih cepat:

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 adalah model yang dilatih menggunakan arsitektur Pix2Struct. Anda dapat menemukan informasi lebih lanjut tentang Pix2Struct di dokumentasi Pix2Struct.

Update on GitHub