Transformers documentation
DePlot
Bu model 2022-12-20 tarihinde HF papers'ta yayımlandı ve 2023-06-20 tarihinde Hugging Face Transformers'a katkıda bulunuldu.
DePlot
Genel Bakış
DePlot, Fangyu Liu, Julian Martin Eisenschlos, Francesco Piccinno, Syrine Krichene, Chenxi Pang, Kenton Lee, Mandar Joshi, Wenhu Chen, Nigel Collier ve Yasemin Altun tarafından kaleme alınan DePlot: One-shot visual language reasoning by plot-to-table translation adlı makalede önerilmiştir.
Makalenin özeti şunları belirtmektedir:
Grafikler ve çizelgeler gibi görsel dil, insan dünyasında her yerde karşımıza çıkar. Grafik ve çizelgeleri anlamak güçlü akıl yürütme becerileri gerektirir. Önceki en iyi (SOTA) modeller, en az on binlerce eğitim örneği gerektirir ve akıl yürütme yetenekleri hâlâ oldukça sınırlıdır, özellikle karmaşık insan yazımı sorgularda. Bu makale, görsel dil akıl yürütme için ilk tek örnek (one-shot) çözümü sunar. Görsel dil akıl yürütme sorununu iki adıma ayırıyoruz: (1) grafikten metne çeviri ve (2) çevrilen metin üzerinde akıl yürütme. Bu yöntemin anahtarı, DePlot adlı bir modül dönüşüm modülüdür; bu modül, bir grafik veya çizelgenin görselini doğrusallaştırılmış bir tabloya çevirir. DePlot'un çıktısı, LLM'lerin az örnek (few-shot) akıl yürütme yeteneklerinden yararlanarak, önceden eğitilmiş büyük bir dil modeline (LLM) doğrudan istem (prompt) olarak kullanılabilir. DePlot'u elde etmek için, grafikten tabloya çeviri görevini birleştirilmiş görev biçimleri ve metrikler belirleyerek standartlaştırıyor ve DePlot'u bu görev üzerinde uçtan uca eğitiyoruz. DePlot, ardından LLM'lerle birlikte tak-çalıştır (plug-and-play) bir şekilde hazır olarak kullanılabilir. 28k'dan fazla veri noktasında ince ayar (finetune) edilmiş bir SOTA modelle karşılaştırıldığında, yalnızca tek örnek istem (one-shot prompting) kullanan DePlot+LLM, grafik QA görevindeki insan yazımı sorgularda ince ayarlı SOTA'ya göre %24,0'lık bir iyileşme elde eder.
DePlot, Pix2Struct mimarisi kullanılarak eğitilen bir modeldir. Pix2Struct hakkında daha fazla bilgiyi Pix2Struct belgelerinde bulabilirsiniz.
DePlot, Pix2Struct mimarisinin Görsel Soru Cevaplama alt kümesidir. Girdi sorusunu görüntü üzerinde işler ve cevabı tahmin eder.
Kullanım örneği
Şu anda DePlot için bir kontrol noktası mevcut:
google/deplot: ChartQA veri setinde DePlot ile ince ayar
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))İnce ayar
DePlot'ı ince ayarlamak için pix2struct ince ayar defterine bakın. Pix2Struct modelleri için, modelin Adafactor ve kosinüs öğrenme oranı zamanlayıcısıyla ince ayarlanmasının daha hızlı yakınsama sağladığını tespit ettik:
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,
Pix2Structmimarisi kullanılarak eğitilmiş bir modeldir. API referansı içinPix2Structbelgelerini inceleyin.