🚀 DePlotのモデルカード
DePlotは、視覚的な言語推論のための革新的なモデルです。このモデルは、グラフやチャートなどの視覚的言語をテキストに変換し、大規模言語モデル(LLM)と組み合わせて使用することで、高度な推論能力を実現します。
🚀 クイックスタート
モデルの使用
入力画像と質問をクエリすることで予測を実行できます。以下はサンプルコードです。
from transformers import Pix2StructProcessor, Pix2StructForConditionalGeneration
import requests
from PIL import Image
processor = Pix2StructProcessor.from_pretrained('google/deplot')
model = Pix2StructForConditionalGeneration.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")
predictions = model.generate(**inputs, max_new_tokens=512)
print(processor.decode(predictions[0], skip_special_tokens=True))
T5xからHugging Faceへの変換
以下のコマンドを使用して、T5xのチェックポイントをHugging Face形式に変換できます。
python convert_pix2struct_checkpoint_to_pytorch.py --t5x_checkpoint_path PATH_TO_T5X_CHECKPOINTS --pytorch_dump_path PATH_TO_SAVE --is_vqa
大規模モデルを変換する場合は、以下のコマンドを使用します。
python convert_pix2struct_checkpoint_to_pytorch.py --t5x_checkpoint_path PATH_TO_T5X_CHECKPOINTS --pytorch_dump_path PATH_TO_SAVE --use-large --is_vqa
変換後、以下のコードでモデルをHugging Face Hubにプッシュできます。
from transformers import Pix2StructForConditionalGeneration, Pix2StructProcessor
model = Pix2StructForConditionalGeneration.from_pretrained(PATH_TO_SAVE)
processor = Pix2StructProcessor.from_pretrained(PATH_TO_SAVE)
model.push_to_hub("USERNAME/MODEL_NAME")
processor.push_to_hub("USERNAME/MODEL_NAME")
✨ 主な機能
論文の概要によると、視覚的言語(グラフやチャートなど)は人間の世界で広く使われており、これらを理解するには強力な推論能力が必要です。以前の最先端(SOTA)モデルは少なくとも数万の学習例を必要とし、その推論能力も依然として限られています。この論文では、視覚的言語推論のための最初のワンショット解決策を提案しています。視覚的言語推論の課題を2つのステップに分解します:(1)プロットからテキストへの変換、(2)変換されたテキストに対する推論。この方法のキーは、DePlotと呼ばれるモダリティ変換モジュールで、グラフやチャートの画像を線形化されたテーブルに変換します。DePlotの出力は、事前学習された大規模言語モデル(LLM)をプロンプトするために直接使用でき、LLMのフェデレーション学習能力を活用します。DePlotは、プロットからテーブルへのタスクを標準化し、このタスクでエンドツーエンドで学習されます。DePlotは、LLMと組み合わせて即座に使用できます。28k以上のデータポイントで微調整されたSOTAモデルと比較して、ワンショットプロンプトを使用したDePlot+LLMは、チャートQAタスクの人間が作成したクエリで、微調整されたSOTAモデルに対して24.0%の改善を達成しています。
🔧 技術詳細
DePlotは、視覚的言語推論の課題を解決するために、プロットからテキストへの変換と、変換されたテキストに対する推論の2つのステップに分解します。モダリティ変換モジュールであるDePlotは、グラフやチャートの画像を線形化されたテーブルに変換し、この出力を事前学習された大規模言語モデル(LLM)に入力として与えます。これにより、LLMのフェデレーション学習能力を活用して、高度な推論を行うことができます。
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。
🤝 貢献者
このモデルは、Fangyu Liu、Julian Martin Eisenschlosらによって最初に貢献され、Younes BelkadaによってHugging Faceエコシステムに追加されました。
📖 引用
この研究を引用する場合は、以下の論文を引用してください。
@misc{liu2022deplot,
title={DePlot: One-shot visual language reasoning by plot-to-table translation},
author={Liu, Fangyu and Eisenschlos, Julian Martin and Piccinno, Francesco and Krichene, Syrine and Pang, Chenxi and Lee, Kenton and Joshi, Mandar and Chen, Wenhu and Collier, Nigel and Altun, Yasemin},
year={2022},
eprint={2212.10505},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
