Transformers documentation
DePlot
Model ini dipublikasikan di HF papers pada 2022-12-20 dan disumbangkan ke Hugging Face Transformers pada 2023-06-20.
DePlot
Ikhtisar
DePlot diusulkan dalam makalah DePlot: One-shot visual language reasoning by plot-to-table translation dari Fangyu Liu, Julian Martin Eisenschlos, Francesco Piccinno, Syrine Krichene, Chenxi Pang, Kenton Lee, Mandar Joshi, Wenhu Chen, Nigel Collier, Yasemin Altun.
Abstrak dari makalah tersebut menyatakan hal berikut:
Bahasa visual seperti grafik dan plot sangat umum di dunia manusia. Memahami plot dan grafik membutuhkan keterampilan penalaran yang kuat. Model state-of-the-art (SOTA) sebelumnya membutuhkan setidaknya puluhan ribu contoh pelatihan dan kemampuan penalarannya masih sangat terbatas, terutama pada query yang ditulis manusia secara kompleks. Kertas ini menyajikan solusi one-shot pertama untuk penalaran bahasa visual. Kami mengurai tantangan penalaran bahasa visual menjadi dua langkah: (1) terjemahan plot-ke-teks, dan (2) penalaran atas teks yang diterjemahkan. Kunci dari metode ini adalah modul konversi modalitas, yang dinamakan DePlot, yang menerjemahkan gambar plot atau grafik menjadi tabel yang dilinierkan. Output dari DePlot kemudian dapat langsung digunakan untuk mem-prompt model bahasa besar (LLM) yang telah dilatih sebelumnya, memanfaatkan kemampuan penalaran few-shot dari LLM. Untuk mendapatkan DePlot, kami menstandarkan tugas plot-ke-tabel dengan menetapkan format tugas dan metrik yang terpadu, serta melatih DePlot end-to-end pada tugas ini. DePlot kemudian dapat digunakan off-the-shelf bersama LLM dengan cara plug-and-play. Dibandingkan dengan model SOTA yang di-finetune pada lebih dari >28k titik data, DePlot+LLM dengan hanya one-shot prompting mencapai peningkatan 24,0% di atas SOTA yang di-finetune pada query yang ditulis manusia dari tugas chart QA.
DePlot adalah model yang dilatih menggunakan arsitektur Pix2Struct. Anda dapat menemukan informasi lebih lanjut tentang Pix2Struct di dokumentasi Pix2Struct.
DePlot adalah subset Visual Question Answering dari arsitektur Pix2Struct. Model ini merender pertanyaan input pada gambar dan memprediksi jawabannya.
Contoh penggunaan
Saat ini satu checkpoint tersedia untuk DePlot:
google/deplot: DePlot yang dihaluskan pada dataset ChartQA
import requests
from PIL import Image
from transformers import AutoProcessor, Pix2StructForConditionalGeneration
model = Pix2StructForConditionalGeneration.from_pretrained("google/deplot", device_map="auto")
processor = AutoProcessor.from_pretrained("google/deplot")
url = "https://raw.githubusercontent.com/vis-nlp/ChartQA/main/ChartQA%20Dataset/val/png/5090.png"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(images=image, text="Generate underlying data table of the figure below:", return_tensors="pt").to(model.device)
predictions = model.generate(**inputs, max_new_tokens=512)
print(processor.decode(predictions[0], skip_special_tokens=True))Fine-tuning
Untuk melakukan fine-tuning DePlot, 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)Update on GitHubDePlot adalah model yang dilatih menggunakan arsitektur
Pix2Struct. Untuk referensi API, lihat dokumentasiPix2Struct.