Transformers documentation

DePlot

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

Эта модель была опубликована в HF papers 20.12.2022 и добавлена в Hugging Face Transformers 20.06.2023.

DePlot

Обзор

DePlot был предложен в статье DePlot: One-shot visual language reasoning by plot-to-table translation авторов Fangyu Liu, Julian Martin Eisenschlos, Francesco Piccinno, Syrine Krichene, Chenxi Pang, Kenton Lee, Mandar Joshi, Wenhu Chen, Nigel Collier, Yasemin Altun.

В аннотации к статье сказано следующее:

Визуальный язык, такой как диаграммы и графики, повсеместно присутствует в человеческом мире. Понимание графиков и диаграмм требует развитых навыков рассуждения. Предыдущие модели, демонстрирующие наилучшие результаты (SOTA), требуют как минимум десятков тысяч примеров для обучения, при этом их способности к рассуждению по-прежнему сильно ограничены, особенно в случае сложных запросов, написанных человеком. В данной статье представлена первое решение задачи рассуждения на визуальном языке в режиме one-shot. Мы разбиваем задачу рассуждения на визуальном языке на два этапа: (1) перевод графика в текст и (2) рассуждение на основе переведённого текста. Ключевым элементом данного метода является модуль преобразования модальности, названный DePlot, который переводит изображение графика или диаграммы в линейную таблицу. Выходные данные DePlot можно затем напрямую использовать для формирования промпта для предобученной большой языковой модели (LLM), используя возможности few-shot рассуждения LLM. Для получения DePlot мы стандартизируем задачу перевода графика в таблицу, установив единые форматы задач и метрики, и обучаем DePlot end-to-end на этой задаче. DePlot можно использовать «из коробки» вместе с LLM в режиме plug-and-play. По сравнению с SOTA-моделью, дообученной на более чем >28k точках данных, DePlot+LLM с one-shot промптингом обеспечивает улучшение на 24,0% по сравнению с дообученной SOTA-моделью на запросах, написанных человеком, в задаче chart QA.

DePlot — это модель, обученная на архитектуре Pix2Struct. Дополнительную информацию об архитектуре Pix2Struct можно найти в документации Pix2Struct. DePlot представляет собой подмножество задачи визуального ответа на вопросы (Visual Question Answering) в рамках архитектуры Pix2Struct. Модель отображает входной вопрос на изображении и предсказывает ответ.

Пример использования

В настоящее время для DePlot доступен один контрольный пункт:

  • google/deplot: DePlot, дообученный на наборе данных 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))

Доработка

Для дообучения DePlot обратитесь к ноутбуку по дообучению pix2struct. Для моделей Pix2Struct мы выяснили, что дообучение модели с использованием Adafactor и косинусного планировщика скорости обучения приводит к более быстрому сходимости:

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)

DePlot — это модель, обученная с использованием архитектуры Pix2Struct. Справочник по API см. в документации Pix2Struct.

Update on GitHub