Given the ubiquity of charts as a data analysis, visualization, and decision-making tool across industries and sciences, there has been a growing interest in developing pre-trained foundation models as well as general purpose instruction-tuned models for chart understanding and reasoning. However, existing methods suffer crucial drawbacks across two critical axes affecting the performance of chart representation models: they are trained on data generated from underlying data tables of the charts, ignoring the visual trends and patterns in chart images, \emph{and} use weakly aligned vision-language backbone models for domain-specific training, limiting their generalizability when encountering charts in the wild. We address these important drawbacks and introduce ChartGemma, a novel chart understanding and reasoning model developed over PaliGemma. Rather than relying on underlying data tables, ChartGemma is trained on instruction-tuning data generated directly from chart images, thus capturing both high-level trends and low-level visual information from a diverse set of charts. Our simple approach achieves state-of-the-art results across $5$ benchmarks spanning chart summarization, question answering, and fact-checking, and our elaborate qualitative studies on real-world charts show that ChartGemma generates more realistic and factually correct summaries compared to its contemporaries.
Web Demo
If you wish to quickly try our model, you can access our public web demo hosted on the Hugging Face Spaces platform with a friendly interface!
You can easily use our models for inference with the huggingface library!
You just need to do the following:
Chage the
image_path
to your chart example image path on your system
Write the
input_text
We recommend using beam search with a beam size of 4, but if your machine has low memory, you can remove the num_beams from the generate method.
from PIL import Image
import requests
from transformers import AutoProcessor, PaliGemmaForConditionalGeneration
import torch
torch.hub.download_url_to_file('https://raw.githubusercontent.com/vis-nlp/ChartQA/main/ChartQA%20Dataset/val/png/multi_col_1229.png', 'chart_example_1.png')
image_path = "/content/chart_example_1.png"
input_text ="program of thought: what is the sum of Faceboob Messnger and Whatsapp values in the 18-29 age group?"
# Load Model
model = PaliGemmaForConditionalGeneration.from_pretrained("ahmed-masry/chartgemma", torch_dtype=torch.float16)
processor = AutoProcessor.from_pretrained("ahmed-masry/chartgemma")
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device)
# Process Inputs
image = Image.open(image_path).convert('RGB')
inputs = processor(text=input_text, images=image, return_tensors="pt")
prompt_length = inputs['input_ids'].shape[1]
inputs = {k: v.to(device) for k, v in inputs.items()}
# Generate
generate_ids = model.generate(**inputs, num_beams=4, max_new_tokens=512)
output_text = processor.batch_decode(generate_ids[:, prompt_length:], skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
print(output_text)
Please cite our paper if you use our model in your research.
@misc{masry2024chartgemmavisualinstructiontuningchart,
title={ChartGemma: Visual Instruction-tuning for Chart Reasoning in the Wild},
author={Ahmed Masry and Megh Thakkar and Aayush Bajaj and Aaryaman Kartha and Enamul Hoque and Shafiq Joty},
year={2024},
eprint={2407.04172},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2407.04172},
}
Runs of ahmed-masry chartgemma on huggingface.co
291
Total runs
4
24-hour runs
32
3-day runs
44
7-day runs
125
30-day runs
More Information About chartgemma huggingface.co Model
chartgemma huggingface.co is an AI model on huggingface.co that provides chartgemma's model effect (), which can be used instantly with this ahmed-masry chartgemma model. huggingface.co supports a free trial of the chartgemma model, and also provides paid use of the chartgemma. Support call chartgemma model through api, including Node.js, Python, http.
chartgemma huggingface.co is an online trial and call api platform, which integrates chartgemma's modeling effects, including api services, and provides a free online trial of chartgemma, you can try chartgemma online for free by clicking the link below.
ahmed-masry chartgemma online free url in huggingface.co:
chartgemma is an open source model from GitHub that offers a free installation service, and any user can find chartgemma on GitHub to install. At the same time, huggingface.co provides the effect of chartgemma install, users can directly use chartgemma installed effect in huggingface.co for debugging and trial. It also supports api for free installation.