---
title: "FineVision:<br/> Open Data Is All You Need"
subtitle: "A new open dataset for data-centric training of Vision Language Models"
description: "A new open dataset for data-centric training of Vision Language Models"
authors:
  - name: "Luis Wiedmann"
    url: "https://huggingface.co/lusxvr"
    affiliations: [1]
  - name: "Orr Zohar"
    url: "https://huggingface.co/orrzohar"
    affiliations: [1]
  - name: "Andi Marafioti"
    url: "https://huggingface.co/andito" 
    affiliations: [1]
  - name: "Amir Mahla"
    url: "https://huggingface.co/A-Mahla"
    affiliations: [1]
  - name: "Thibaud Frere"
    url: "https://huggingface.co/tfrere"
    affiliations: [1]
  - name: "Leandro von Werra"
    url: "https://huggingface.co/lvwerra"
    affiliations: [1]
affiliations:
  - name: "Hugging Face"
    url: "https://huggingface.co"
published: "Sep 4, 2025"
tags:
  - research
  - vision-language models
  - dataset
seoThumbImage: "/thumb.png"
tableOfContentsAutoCollapse: true
---

import HtmlEmbed from "../components/HtmlEmbed.astro";
import Wide from "../components/Wide.astro";
import FullWidth from "../components/FullWidth.astro";
import { Image } from 'astro:assets';
import placeholder from "./assets/images/placeholder.png";
import Sidenote from "../components/Sidenote.astro";
import visualPoster from "./assets/images/visual-vocabulary-poster.png";

import Accordion from '../components/Accordion.astro'

<p style="text-align: center;">
<a style=" margin: 0 auto; font-weight: bold;" href="https://huggingface.co/datasets/HuggingFaceM4/FineVision"> huggingface.co/datasets/HuggingFaceM4/FineVision</a>
</p>
<br/>

<div style="text-align:justify!important;">
  Today, we release **FineVision**, a new multimodal dataset with **24 million samples**. We created FineVision by collecting over **200 datasets** containing **17M images**, **89M question-answer turns**, and **10B answer tokens**, totaling **5TB of high-quality data**. Additionally, we extensively processed all datasets to unify their format, clean them of duplicates and poor data, and rated all turns using 32B VLMs across 4 qualitative metrics with a score from 1-5 to enable the construction and study of individual training mixtures.
  
  To enable everyone to construct state-of-the-art open Vision-Language Models (VLMs), we ran extensive ablations on FineVision, and compared it to publicly available alternatives. Models trained on FineVision lead in performance over 11 common benchmarks compared against every baseline, thanks to FineVision’s scale and diversity of data.
</div>

To use the dataset, simply load it with:

<small class="muted">python</small>
```python
from datasets import load_dataset, get_dataset_config_names

# Get all subset names and load the first one
available_subsets = get_dataset_config_names('HuggingFaceM4/FineVision')
ds = load_dataset(
  'HuggingFaceM4/FineVision',
  name=available_subsets[0],
  split='train', streaming=True,
)

# Inspect the first sample
ds[0]
```

## Why this dataset?
Even though open-weight Vision-Language Models are becoming ever more powerful, the accessibility of the training data used for these models is lagging behind. This data is often proprietary and inaccessible to the broader community. Projects like The Cauldron, LLaVa, and Cambrian aim to provide such datasets, but get quickly outpaced by the speed of the field and the emergence of novel applications for VLMs, like agentic tasks.
For FineVision we set out to combine and unify existing available data sources to create a large and high-quality dataset. As a first step we need to collect and standardize the datasets.

## How did we build FineVision?
FineVision was a giant act of data curation. We started by collecting publicly available datasets, and augmenting underrepresented categories. We then evaluated all datasets for duplicated data internally and benchmark contamination. This data is then cleaned and rated, before being added to the final mixture.

### Data Collection
We manually collected over **200 image-text datasets** from various publicly available sources and processed them to unify their formatting. On top of that, some datasets are not presented in chat form, so we converted them into question-answer pairs. In some cases, this goes as far as synthetically creating questions for all samples. Finally, we adressed underrepresented domains, such as GUI-oriented data. To fill this gap, we create and add a new dataset that was compiled from existing GUI datasets, after applying chat normalization and unifying the action space to convert their specific formats into a more general GUI action space.

---
<Wide>
<Accordion size="big" title="FineVision Subsets - click to see more">
|Subset Name                           |Total Images|Total Samples|Total Turns|Total Question Tokens|Total Answer Tokens|Category              |Source                                                             |
|--------------------------------------|------------|-------------|-----------|---------------------|-------------------|----------------------|-------                                                            |
|coco_colors                           |118,287     |118,287      |118,287    |1,301,157            |6,376,672          |Captioning & Knowledge|[@noauthor_hazal-karakusmscoco-controlnet]                         |
|densefusion_1m                        |1,058,751   |1,058,751    |1,058,751  |10,692,478           |263,718,217        |Captioning & Knowledge|[@li_densefusion-1m_2024] (Converted)                              |
|face_emotion                          |797         |797          |797        |8,767                |8,066              |Captioning & Knowledge|[@mollahosseini_affectnet_2017]                                    |
|google_landmarks                      |299,993     |299,993      |842,127    |6,194,978            |10,202,980         |Captioning & Knowledge|[@weyand2020googlelandmarksdatasetv2] (Converted)                  |
|image_textualization(filtered)        |99,573      |99,573       |99,573     |917,577              |19,374,090         |Captioning & Knowledge|[@pi_image_2024]                                                   |
|laion_gpt4v                           |9,301       |9,301        |9,301      |93,950               |1,875,283          |Captioning & Knowledge|[@noauthor_laiongpt4v-dataset_2023]                                |
|localized_narratives                  |199,998     |199,998      |199,998    |2,167,179            |8,021,473          |Captioning & Knowledge|[@vedaldi_connecting_2020]                                         |
|sharegpt4o                            |57,284      |57,284       |57,284     |558,647              |36,555,323         |Captioning & Knowledge|[@noauthor_sharegpt-4o_nodate]                                     |
|sharegpt4v(coco)                      |50,017      |50,017       |50,017     |460,893              |9,825,387          |Captioning & Knowledge|[@leonardis_sharegpt4v_2025]                                       |
|sharegpt4v(knowledge)                 |1,988       |1,988        |1,988      |18,250               |293,850            |Captioning & Knowledge|[@leonardis_sharegpt4v_2025]                                       |
|sharegpt4v(llava)                     |29,986      |29,986       |29,986     |275,783              |6,175,899          |Captioning & Knowledge|[@leonardis_sharegpt4v_2025]                                       |
|sharegpt4v(sam)                       |8,990       |8,990        |8,990      |82,874               |1,668,797          |Captioning & Knowledge|[@leonardis_sharegpt4v_2025]                                       |
|textcaps                              |21,906      |21,906       |21,906     |240,966              |355,991            |Captioning & Knowledge|[@vedaldi_textcaps_2020]                                           |
|chart2text                            |26,961      |26,961       |30,215     |342,215              |2,670,580          |Chart & Table         |[@kantharaj_chart-text_2022]                                       |
|chartqa                               |18,265      |18,265       |28,287     |625,569              |134,793            |Chart & Table         |[@masry_chartqa_2022]                                              |
|CoSyn_400k_chart                      |116,814     |116,814      |1,085,882  |17,617,591           |57,641,030         |Chart & Table         |[@yang_scaling_2025]                                               |
|CoSyn_400k_table                      |46,518      |46,518       |416,519    |6,280,455            |23,335,054         |Chart & Table         |[@yang_scaling_2025]                                               |
|dvqa                                  |200,000     |200,000      |2,325,316  |44,603,372           |5,477,966          |Chart & Table         |[@kafle_dvqa_2018]                                                 |
|figureqa                              |100,000     |100,000      |1,327,368  |18,515,153           |2,654,736          |Chart & Table         |[@kahou_figureqa_2018]                                             |
|figureqa(mathv360k)                   |17,587      |17,587       |17,587     |722,959              |97,404             |Chart & Table         |[@shi_math-llava_2024]                                             |
|finqa                                 |5,276       |5,276        |6,251      |5,552,943            |224,015            |Chart & Table         |[@chen_finqa_2022]                                                 |
|hitab                                 |2,500       |2,500        |7,782      |177,999              |335,013            |Chart & Table         |[@cheng_hitab_2022]                                                |
|lrv_chart                             |1,776       |1,776        |5,372      |76,477               |158,711            |Chart & Table         |[@noauthor_lmms-labllava-onevision-data_2025]                      |
|mmc_instruct                          |168,178     |168,178      |168,178    |50,008,824           |74,581,055         |Chart & Table         |[@liu_mmc_2024]                                                    |
|multihiertt                           |30,875      |7,619        |7,830      |218,840              |244,744            |Chart & Table         |[@zhao_multihiertt_2022]                                           |
|plotqa                                |157,070     |157,070      |20,249,479 |738,371,054          |118,122,387        |Chart & Table         |[@methani_plotqa_2020]                                             |
|robut_sqa                             |8,514       |8,514        |34,141     |368,957              |1,794,570          |Chart & Table         |[@zhao_robut_2023]                                                 |
|robut_wikisql                         |74,989      |74,989       |86,202     |1,454,920            |9,276,100          |Chart & Table         |[@zhao_robut_2023]                                                 |
|robut_wtq                             |38,246      |38,246       |44,096     |587,040              |6,415,830          |Chart & Table         |[@zhao_robut_2023]                                                 |
|SynthChartNet                         |500,000     |500,000      |500,000    |2,169,240            |67,392,223         |Chart & Table         |[@nassar_smoldocling_2025]                                         |
|tabmwp                                |22,722      |22,722       |23,021     |639,639              |1,883,243          |Chart & Table         |[@lu_dynamic_2023]                                                 |
|tabmwp(mathv360k)                     |22,452      |22,452       |22,452     |963,498              |158,042            |Chart & Table         |[@shi_math-llava_2024]                                             |
|tat_dqa                               |2,448       |2,207        |13,251     |320,356              |1,177,852          |Chart & Table         |[@zhu_towards_2022]                                                |
|tat_qa                                |2,199       |2,199        |13,215     |989,419              |254,790            |Chart & Table         |[@zhu_tat-qa_2021]                                                 |
|Unichart                              |611,925     |611,925      |6,898,324  |96,702,288           |211,989,247        |Chart & Table         |[@masry_unichart_2023] (Converted)                                 |
|vistext                               |9,969       |9,969        |9,969      |88,770               |1,191,127          |Chart & Table         |[@tang_vistext_2023]                                               |
|vqaonbd                               |39,986      |39,986       |1,254,165  |36,066,807           |5,620,523          |Chart & Table         |[@noauthor_jp1924vqaonbd_nodate]                                   |
|alfworldgpt                           |45,073      |45,073       |45,073     |17,864,033           |6,276,573          |General VQA           |[@shridhar_alfworld_2021]                                          |
|allava_laion                          |468,664     |468,664      |937,328    |18,654,303           |145,799,426        |General VQA           |[@chen_allava_2024]                                                |
|allava_vflan                          |177,078     |177,078      |387,872    |12,444,711           |55,305,642         |General VQA           |[@chen_allava_2024]                                                |
|cambrian(filtered)_processed          |83,123      |83,124       |98,534     |1,410,321            |5,503,211          |General VQA           |[@tong_cambrian-1_2024]                                            |
|chinesememe                           |54,212      |54,212       |54,212     |538,938              |21,122,723         |General VQA           |[@noauthor_reilxchinese-meme-description-dataset_2024]             |
|cocoqa                                |46,287      |46,287       |78,736     |1,136,238            |212,480            |General VQA           |[@ren_exploring_2015]                                              |
|CoSyn_400k_graphic                    |26,968      |26,968       |26,968     |1,678,862            |8,235,679          |General VQA           |[@yang_scaling_2025]                                               |
|datik                                 |220,537     |222,385      |222,385    |2,234,054            |187,757,952        |General VQA           |[@belouadi_automatikz_2024]                                        |
|datikz                                |47,441      |47,974       |48,296     |441,040              |59,116,193         |General VQA           |[@belouadi_automatikz_2024]                                        |
|drivelm                               |90,049      |4,072        |161,030    |2,399,362            |1,431,417          |General VQA           |[@leonardis_drivelm_2025]                                          |
|hateful_memes                         |8,500       |8,500        |8,500      |128,375              |17,000             |General VQA           |[@kiela_hateful_2020]                                              |
|iconqa                                |27,307      |27,307       |29,841     |906,877              |72,492             |General VQA           |[@lu_iconqa_2022]                                                  |
|iconqa(mathv360k)                     |22,589      |22,589       |22,589     |952,183              |134,029            |General VQA           |[@shi_math-llava_2024]                                             |
|idk                                   |11,123      |11,123       |27,614     |235,262              |665,247            |General VQA           |[@cha_visually_2024]                                               |
|indoor_qa                             |3,350       |3,350        |3,350      |36,832               |19,700             |General VQA           |                                                                   |
|LLaVA_Instruct_150K                   |157,710     |157,710      |361,405    |4,412,600            |28,719,278         |General VQA           |[@liu_visual_2023]                                                 |
|llavar_gpt4_20k                       |19,790      |19,790       |43,167     |546,703              |1,516,730          |General VQA           |[@zhang_llavar_2024]                                               |
|lnqa                                  |302,780     |302,780      |1,520,942  |16,530,323           |19,027,663         |General VQA           |[@noauthor_viks_nodate]                                            |
|lrv_normal(filtered)                  |10,489      |10,489       |155,269    |2,108,321            |3,134,247          |General VQA           |[@liu_mitigating_2024]                                             |
|lvis_instruct4v                       |222,711     |222,711      |1,050,622  |12,556,173           |43,726,782         |General VQA           |[@wang_see_2023]                                                   |
|mimic_cgd                             |141,878     |70,939       |141,869    |1,789,740            |4,304,380          |General VQA           |[@li_mimic-it_2023]                                                |
|mmevol                                |160,215     |160,215      |630,441    |16,203,127           |50,445,237         |General VQA           |[@luo_mmevol_2024]                                                 |
|mmra                                  |2,048       |1,024        |1,024      |72,523               |25,764             |General VQA           |[@wu_mmra_2024]                                                    |
|nlvr2                                 |100,852     |50,426       |86,373     |4,629,641            |172,746            |General VQA           |[@suhr_corpus_2019]                                                |
|sketchyvqa                            |8,000       |8,000        |8,000      |182,192              |8,000              |General VQA           |[@tu_how_2023]                                                     |
|spark                                 |3,904       |3,904        |6,248      |65,982               |73,973             |General VQA           |[@yu_spark_2024]                                                   |
|spatialsense                          |10,440      |10,440       |17,498     |200,963              |418,883            |General VQA           |[@yang_spatialsense_2019]                                          |
|spot_the_diff                         |17,132      |8,566        |9,524      |82,670               |209,630            |General VQA           |[@jhamtani_learning_2018]                                          |
|vision_flan(filtered)                 |175,964     |175,964      |175,964    |9,983,758            |3,009,891          |General VQA           |[@xu_vision-flan_2024]                                             |
|visual7w                              |14,366      |14,366       |69,817     |3,054,334            |209,451            |General VQA           |[@zhu_visual7w_2016]                                               |
|vizwiz(mathv360k)                     |6,604       |6,604        |6,604      |197,143              |44,876             |General VQA           |[@gurari_vizwiz_2018]                                              |
|vqav2                                 |82,772      |82,772       |443,757    |5,722,488            |1,100,837          |General VQA           |[@goyal_making_2017]                                               |
|vsr                                   |2,157       |2,157        |3,354      |79,596               |6,708              |General VQA           |[@liu_visual_2023-1]                                               |
|websight                              |10,000      |10,000       |10,000     |113,114              |5,237,381          |General VQA           |[@laurencon_unlocking_2024]                                        |
|wildvision                            |333         |333          |405        |50,161               |72,820             |General VQA           |[@lu_wildvision_2024]                                              |
|yesbut                                |4,318       |4,318        |4,318      |38,365               |157,229            |General VQA           |[@nandy_yesbut_2024]                                               |
|aguvis-stage-1                        |458,957     |458,957      |3,831,666  |36,151,272           |93,546,182         |Grounding & Counting  |[@xu_aguvis_2025] (Converted)                                      |
|groundui                              |13,531      |13,531       |18,016     |200,094              |883,274            |Grounding & Counting  |[@zheng_agentstudio_2025]                                          |
|objects365_qa                         |1,742,287   |1,742,287    |12,329,259 |135,681,680          |2,146,619,635      |Grounding & Counting  |[@shao_objects365_2019] (Converted)                                |
|oodvqa                                |8,488       |8,488        |8,488      |227,028              |8,488              |Grounding & Counting  |[@tu_how_2023]                                                     |
|tallyqa                               |98,680      |98,680       |183,986    |2,674,306            |370,282            |Grounding & Counting  |[@acharya_tallyqa_2019]                                            |
|clevr                                 |70,000      |70,000       |699,989    |19,277,813           |1,570,525          |Mathematics           |[@lindstrom_clevr-math_2022-1]                                     |
|clevr_math                            |70,000      |70,000       |556,082    |7,888,064            |580,324            |Mathematics           |[@shi_math-llava_2024]                                             |
|clevr_math(mathv360k)                 |5,280       |5,280        |5,280      |174,879              |27,536             |Mathematics           |[@shi_math-llava_2024]                                             |
|CoSyn_400k_math                       |66,714      |66,714       |66,714     |500,554              |28,631,388         |Mathematics           |[@yang_scaling_2025]                                               |
|geo170k(align)                        |35,297      |35,297       |35,297     |336,151              |1,866,019          |Mathematics           |[@gao_g-llava_2025]                                                |
|geo170k(qa)                           |12,101      |12,101       |12,101     |1,254,831            |1,115,242          |Mathematics           |[@gao_g-llava_2025]                                                |
|geo3k                                 |2,091       |2,091        |2,091      |130,287              |2,091              |Mathematics           |[@lu_inter-gps_2021]                                               |
|geometry3k(mathv360k)                 |9,724       |9,724        |9,724      |541,908              |69,075             |Mathematics           |[@shi_math-llava_2024]                                             |
|geomverse                             |9,303       |9,303        |9,339      |662,756              |2,454,014          |Mathematics           |[@kazemi_geomverse_2023]                                           |
|geoqa+(mathv360k)                     |17,162      |17,162       |17,162     |1,449,094            |117,740            |Mathematics           |[@cao_augmented_2022]                                              |
|geos(mathv360k)                       |498         |498          |498        |32,394               |3,509              |Mathematics           |[@seo_solving_2015]                                                |
|intergps                              |1,280       |1,280        |1,760      |97,799               |5,280              |Mathematics           |[@lu_inter-gps_2021-1]                                             |
|mavis_math_metagen                    |87,348      |87,348       |87,348     |6,668,920            |5,486,485          |Mathematics           |[@zhang_mavis_2024]                                                |
|mavis_math_rule_geo                   |99,986      |99,986       |99,986     |8,211,079            |12,535,251         |Mathematics           |[@zhang_mavis_2024]                                                |
|raven                                 |63,081      |42,000       |42,000     |584,843              |63,081             |Mathematics           |[@zhang_raven_2019]                                                |
|super_clevr(mathv360k)                |8,642       |8,642        |8,642      |307,438              |44,129             |Mathematics           |[@shi_math-llava_2024]                                             |
|unigeo(mathv360k)                     |11,949      |11,949       |11,949     |1,011,069            |81,781             |Mathematics           |[@shi_math-llava_2024]                                             |
|art                                   |5,603       |5,603        |5,603      |56,573               |283,138            |Naive OCR             |[@chng_icdar2019_2019]                                             |
|captcha                               |113,062     |113,062      |113,062    |1,469,548            |466,856            |Naive OCR             |                                                                   |
|chrome_writting                       |8,825       |8,825        |8,825      |150,025              |172,940            |Naive OCR             |[@mouchere_icdar_2013]                                             |
|cocotext                              |16,169      |16,169       |16,169     |143,818              |177,111            |Naive OCR             |[@veit_coco-text_2016]                                             |
|ctw                                   |24,290      |24,290       |180,621    |9,787,485            |1,653,254          |Naive OCR             |[@yuan_large_2019]                                                 |
|funsd                                 |194         |194          |3,879      |16,856               |29,996             |Naive OCR             |[@jaume_funsd_2019]                                                |
|hme100k                               |74,492      |74,492       |74,492     |1,117,380            |1,757,743          |Naive OCR             |[@yuan_syntax-aware_2022]                                          |
|hw_squad                              |20,457      |20,457       |83,682     |1,071,534            |388,518            |Naive OCR             |[@mathew_asking_2021]                                              |
|iam                                   |5,663       |5,663        |5,663      |45,582               |130,794            |Naive OCR             |[@marti_iam-database_2002]                                         |
|iiit5k                                |1,990       |1,990        |1,990      |35,820               |4,259              |Naive OCR             |[@mishra_scene_2012]                                               |
|imgur5k                               |5,934       |5,934        |5,934      |89,010               |288,054            |Naive OCR             |[@krishnan_textstylebrush_2023]                                    |
|k12_printing                          |256,636     |256,636      |256,636    |14,114,980           |7,465,001          |Naive OCR             |[@noauthor_lmms-labllava-onevision-data_2025]                      |
|latex_handwritten                     |39,583      |39,583       |39,583     |390,343              |1,874,733          |Naive OCR             |[@noauthor_im2latex_nodate]                                        |
|latexformulas                         |552,340     |552,340      |552,340    |5,138,603            |43,094,747         |Naive OCR             |[@noauthor_oleehyolatex-formulas_2024]                             |
|maptext                               |200         |200          |799        |9,434                |70,813             |Naive OCR             |[@barney_smith_icdar_2024]                                         |
|mathwriting-google                    |300,000     |300,000      |300,000    |2,461,270            |5,954,806          |Naive OCR             |[@gervais_mathwriting_2025] (Converted)                            |
|memotion                              |6,991       |6,991        |6,991      |194,718              |177,429            |Naive OCR             |[@sharma_semeval-2020_2020]                                        |
|orand_car_a                           |1,999       |1,999        |1,999      |43,978               |9,035              |Naive OCR             |[@diem_icfhr_2014]                                                 |
|rendered_text                         |10,000      |10,000       |10,000     |85,879               |244,183            |Naive OCR             |[@noauthor_wendlercrenderedtext_2024]                              |
|sroie                                 |33,616      |33,616       |33,616     |605,088              |243,240            |Naive OCR             |[@huang_icdar2019_2019]                                            |
|svrd                                  |4,396       |4,396        |4,396      |65,400               |834,514            |Naive OCR             |[@fink_icdar_2023]                                                 |
|SynthCodeNet                          |499,983     |499,983      |499,983    |2,000,683            |253,422,136        |Naive OCR             |[@nassar_smoldocling_2025]                                         |
|synthdog                              |500,000     |500,000      |500,000    |8,849,848            |48,010,145         |Naive OCR             |[@avidan_ocr-free_2022]                                            |
|SynthFormulaNet                       |499,997     |499,997      |499,997    |1,999,631            |51,215,097         |Naive OCR             |[@nassar_smoldocling_2025]                                         |
|tal_ocr_eng                           |256,646     |256,646      |256,646    |3,385,012            |7,465,207          |Naive OCR             |[@noauthor_httpsai100talcomdataset_nodate]                         |
|wordart                               |19,066      |4,804        |4,804      |78,032               |54,263             |Naive OCR             |[@avidan_toward_2022]                                              |
|olmOCR-mix-0225-documents             |228,864     |228,864      |228,858    |2,197,147            |163,194,337        |Naive OCR             |[@poznanski_olmocr_2025] (Converted)                               |
|olmOCR-mix-0225-books                 |15,194      |15,194       |15,194     |145,750              |7,962,779          |Naive OCR             |[@poznanski_olmocr_2025] (Converted)                               |
|a_okvqa                               |54,602      |54,602       |54,602     |1,065,188            |360,990            |OCR QA                |[@avidan_-okvqa_2022]                                              |
|aokvqa                                |16,539      |16,539       |17,056     |743,458              |218,917            |OCR QA                |[@avidan_-okvqa_2022]                                              |
|arxivqa                               |100,000     |100,000      |100,000    |7,022,001            |6,422,269          |OCR QA                |[@li_multimodal_2024]                                              |
|bentham                               |10,843      |10,843       |10,843     |103,042              |124,459            |OCR QA                |[@mathew_asking_2021]                                              |
|blockdiagramcomputerized              |502         |502          |502        |5,067                |34,453             |OCR QA                |[@bhushan_block_2022]                                              |
|blockdiagramhandwritten               |1,029       |1,029        |1,029      |11,444               |75,598             |OCR QA                |[@bhushan_block_2022]                                              |
|CoSyn_400k_diagram                    |34,963      |34,963       |300,357    |3,356,844            |11,943,321         |OCR QA                |[@yang_scaling_2025]                                               |
|CoSyn_400k_document                   |71,282      |71,282       |605,173    |6,216,517            |16,095,526         |OCR QA                |[@yang_scaling_2025]                                               |
|CoSyn_400k_music                      |11,969      |11,969       |81,786     |792,129              |3,175,586          |OCR QA                |[@yang_scaling_2025]                                               |
|CoSyn_400k_nutrition                  |6,931       |6,931        |112,097    |1,642,936            |3,687,254          |OCR QA                |[@yang_scaling_2025]                                               |
|diagram_image_to_text                 |300         |300          |300        |3,631                |20,723             |OCR QA                |[@noauthor_kamizuru00diagram_image_to_text_2024]                   |
|DoclingMatix                          |2,465,202   |1,270,911    |10,626,898 |162,581,660          |2,996,338,775      |OCR QA                |[@nassar_smoldocling_2025]                                         |
|docvqa                                |10,189      |10,189       |39,463     |724,814              |275,510            |OCR QA                |[@mathew_docvqa_2021]                                              |
|est_vqa                               |19,358      |19,358       |19,358     |286,343              |143,270            |OCR QA                |[@wang_general_2020]                                               |
|handwriting_forms                     |1,400       |1,400        |1,400      |81,200               |41,490             |OCR QA                |[@noauthor_ifthandwriting_forms_nodate]                            |
|infographic_vqa                       |1,982       |4,394        |23,717     |392,456              |86,951             |OCR QA                |[@mathew_infographicvqa_2022]                                      |
|infographic_vqa_llava_format          |4,394       |2,113        |10,054     |174,352              |43,912             |OCR QA                |[@mathew_infographicvqa_2022]                                      |
|infographic(gpt4v)                    |2,113       |1,982        |1,982      |275,498              |1,044,183          |OCR QA                |[@mathew_infographicvqa_2022]                                      |
|invoices_receipts                     |3,013       |3,013        |3,013      |36,745               |771,948            |OCR QA                |[@noauthor_mychen76invoices-and-receipts_ocr_v1_2025]              |
|mapqa                                 |37,417      |37,417       |483,416    |8,454,722            |5,657,339          |OCR QA                |[@chang_mapqa_2022]                                                |
|mapqa(mathv360k)                      |5,225       |5,225        |5,225      |168,390              |44,560             |OCR QA                |[@shi_math-llava_2024]                                             |
|mmsoc_memotion                        |6,991       |6,991        |6,991      |188,505              |421,250            |OCR QA                |[@sharma_task_2020]                                                |
|ocrvqa                                |165,746     |165,746      |801,579    |12,217,564           |4,801,833          |OCR QA                |[@mishra_ocr-vqa_2019]                                             |
|pdfvqa                                |8,593       |8,593        |95,000     |1,272,618            |939,948            |OCR QA                |[@de_francisci_morales_pdf-vqa_2023]                               |
|screen2words                          |15,730      |15,730       |15,743     |133,014              |120,781            |OCR QA                |[@wang_screen2words_2021]                                          |
|screenqa                              |80,761      |80,761       |80,761     |940,729              |826,795            |OCR QA                |[@hsiao_screenqa_2025]                                             |
|slidevqa                              |11,868      |1,919        |10,617     |333,065              |156,036            |OCR QA                |[@tanaka_slidevqa_2023]                                            |
|st_vqa                                |17,247      |17,247       |23,121     |338,837              |98,892             |OCR QA                |[@biten_scene_2019]                                                |
|sujet_finance                         |9,801       |9,801        |107,050    |1,395,624            |1,925,361          |OCR QA                |[@noauthor_sujet-aisujet-finance-qa-vision-100k_2024]              |
|textocr(gpt4v)                        |25,060      |25,060       |25,060     |150,360              |2,436,974          |OCR QA                |[@noauthor_jimmycartertextocr-gpt4v_2024]                          |
|textvqa                               |21,953      |21,953       |34,602     |553,990              |141,882            |OCR QA                |[@singh_towards_2019]                                              |
|ureader_cap                           |91,215      |91,215       |91,215     |1,086,484            |1,435,964          |OCR QA                |[@ye_ureader_2023]                                                 |
|ureader_ie                            |17,320      |17,320       |17,320     |406,237              |128,229            |OCR QA                |[@ye_ureader_2023]                                                 |
|ureader_kg_processed                  |37,550      |37,550       |37,550     |352,907              |2,013,731          |OCR QA                |[@ye_ureader_2023]                                                 |
|ureader_qa_processed                  |252,953     |252,953      |252,953    |7,100,750            |930,617            |OCR QA                |[@ye_ureader_2023]                                                 |
|visualmrc                             |3,027       |3,027        |11,988     |139,751              |147,385            |OCR QA                |[@tanaka_visualmrc_2021]                                           |
|ai2d_merged                           |4,858       |4,858        |12,325     |755,455              |1,319,140          |Science               |[@noauthor_anditoai2d-merged_nodate]                               |
|CoSyn_400k_chemical                   |8,942       |8,942        |55,391     |634,881              |2,450,290          |Science               |[@yang_scaling_2025]                                               |
|CoSyn_400k_circuit                    |10,470      |10,470       |67,939     |713,575              |2,637,618          |Science               |[@yang_scaling_2025]                                               |
|pathvqa                               |32,632      |32,632       |32,632     |639,385              |85,168             |Science               |[@he_pathvqa_2020]                                                 |
|pmc_vqa(mathv360k)                    |35,948      |35,948       |35,948     |1,889,167            |255,109            |Science               |[@shi_math-llava_2024]                                             |
|scienceqa                             |4,976       |4,976        |6,149      |1,081,220            |18,447             |Science               |[@lu_learn_2022]                                                   |
|scienceqa(nona_context)               |19,208      |19,208       |19,208     |1,624,583            |25,311             |Science               |[@noauthor_lmms-labllava-onevision-data_2025]                      |
|tqa                                   |2,749       |2,749        |12,567     |395,956              |149,776            |Science               |[@kembhavi_are_2017]                                               |
|visualwebinstruct(filtered)           |263,581     |263,581      |263,581    |8,341,540            |31,802,459         |Science               |[@jia_visualwebinstruct_2025]                                      |
|vqarad                                |313         |313          |1,793      |25,181               |6,003              |Science               |[@lau_dataset_2018]                                                |
|text_code_feedback                    |0           |66,383       |221,096    |19,349,056           |79,752,351         |Text-only             |[@zheng_opencodeinterpreter_2025]                                  |
|text_codefeedback_filtered_instruction|0           |156,525      |156,525    |27,684,170           |62,764,414         |Text-only             |[@zheng_opencodeinterpreter_2025]                                  |
|text_infinitymath                     |0           |101,380      |101,380    |9,158,132            |212,543            |Text-only             |[@zhang_infinity_2024]                                             |
|text_mathinstruct                     |0           |262,039      |262,039    |20,405,295           |44,145,362         |Text-only             |[@yue_mammoth_2023]                                                |
|text_mathqa                           |0           |394,996      |394,996    |23,552,035           |72,451,061         |Text-only             |[@amini_mathqa_2019]                                               |
|text_mathstepdpo10k                   |0           |10,795       |10,795     |557,233              |989,312            |Text-only             |[@lai_step-dpo_2024]                                               |
|text_numinamath_cot                   |0           |859,494      |859,494    |75,818,870           |387,758,581        |Text-only             |[@noauthor_ai-monuminamath-cot_2025]                               |
|text_openhermes_2_5                   |0           |1,001,551    |1,008,268  |142,376,960          |233,561,291        |Text-only             |[@noauthor_tekniumopenhermes-25_2024]                              |
|text_openorca                         |0           |4,233,853    |4,233,853  |1,049,478,873        |468,042,176        |Text-only             |[@noauthor_open-orcaopenorca_2024]                                 |
|text_orcamath                         |0           |200,035      |200,035    |12,691,014           |61,860,987         |Text-only             |[@mitra_orca-math_2024]                                            |
|text_pythoncode25k                    |0           |49,626       |49,626     |1,629,286            |4,945,892          |Text-only             |[@noauthor_flytechpython-codes-25k_2024]                           |
|text_pythoncodealpaca                 |0           |18,612       |18,612     |655,127              |2,683,469          |Text-only             |[@noauthor_sahil2801codealpaca-20k_2023]                           |
|text_ruozhiba                         |0           |1,496        |1,496      |69,795               |234,822            |Text-only             |[@noauthor_qywuruozhiba_en_nodate]                                 |
|text_theoremqa                        |0           |800          |800        |50,065               |3,468              |Text-only             |[@chen_theoremqa_2023]                                             |
|text_wizardlm_evol                    |0           |69,999       |69,999     |7,753,963            |21,955,856         |Text-only             |[@noauthor_wizardlmteamwizardlm_evol_instruct_70k_2024]            |
|text_OpenMathInstruct-2               |0           |1,000,000    |1,000,000  |74,905,850           |413,132,418        |Text-only             |[@toshniwal_openmathinstruct-2_2024]                               |
|**Totals**                            |**17,372,293**  |**24,322,193**   |**88,928,343** |**3,168,958,417**        |**9,459,677,828**      |                      |                                                                   | 

</Accordion>
</Wide>
---

### Cleaning
After gathering all the sub-datasets, every turn is cleaned. We removed all individual turns whose combined question and answer length exceeds 8192 tokens. We resize big images to have a longest side of 2048 pixels while keeping the aspect ratio, and discard samples with corrupted images.

### Rating
Finally, we rate every single turn in our dataset across 4 axes.
For this, we used a LLM and VLM-as-a-judge pipeline (using [Qwen3-32B](https://huggingface.co/Qwen/Qwen3-32B) and [Qwen2.5VL-32B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-32B-Instruct)), to rate every turn on a scale from 1-5 in these 4 categories:
- **Text Formatting Quality**: How is the quality of the answer both linguistically and structurally? (Question and Answer)
- **Question-Answer Relevance**: Does the answer properly respond to the question? (Question and Answer)
- **Visual Dependency**: How much does the question depend on visual information to be answered? (Question only)
- **Image-Question Correspondence**: How well does the image support answering the question? (Image and Question)

This is the distribution of scores across the different filters for FineVision:
| **Filter**               	| **1**   	| **2**   	| **3**   	| **4**    	| **5**    	|
|-----------------------|-----	|-----	|-----	|-----	|-----	|
| Formatting        		| 0.5	  | 0.7 	| 1.1 	| 77.5 	| 20.3 	|
| Relevance         		| 2.9 	| 0.5 	| 14.7	| 16.5 	| 65.4 	|
| Visual Dependency	 	  | 11.0 	| 20.4	| 2.6 	| 24.2 	| 41.8 	|
| Image Correspondence 	| 8.1 	| 3.6 	| 17.3	| 26.8 	| 44.1 	|

### FineVision Base Dataset
We classify FineVision’s subsets into 9 categories: Captioning & Knowledge, Chart & Table, General VQA, Grounding & Counting, Mathematics, Naive OCR, OCR QA, Science and Text-only <a href="#pie">(Fig. 1)</a>.

There are multiple ways to count the data in a multimodal dataset. The most common are the number of samples and the number of images. Additionally, a single sample can consist of multiple question/answer pairs in the form of a multi-turn conversation. Similarly to text-only datasets, the number of answer tokens is also interesting, since these are the tokens the model is actually trained on. We count all these characteristics for FineVision and arrive at **17.3M images**, **24.3M samples**, **88.9M turns**, and **9.5B answer tokens**. Based on these 4 distributions, multiple different mixtures are possible. In conjunction with the provided ratings, we encourage the community to create their own mixtures and experiment with the data. For example, large categories could be downsamples, while high-quality data could be upsampled.
After collecting and processing the data, we run multiple experiments and ablations to provide practical recommendations on how to train small, data-centric VLMs.

---
<br/>
<Wide>
  <HtmlEmbed src="d3-pie.html" id="pie" desc="Figure 1: Distribution of Categories in FineVision by Answer Tokens, Number of Samples, Turns, and Images. While the distributions differ a bit with the different metrics, FineVision provides a good baseline mixture, especially when judging by the number of images in the individual categories. Samples from Chart & Table usually lend themselves well to multi-turn conversations, since multiple similar questions can be asked for a single Chart. Samples from OCR QA often have a lot of answer tokens, since they aim at detailed document understanding, which are rarely answered with a short sentence." align="center" />
</Wide>
---

## Experimental Setup
To ensure a fair comparison between different configurations, we use the same setup and evaluations for all of our ablations. This enables us to compare FineVision to other publicly available datasets as well as experiment with different intra-dataset configurations.

### Model Architecture: [nanoVLM](https://github.com/huggingface/nanoVLM)
For all ablations and experiments, we train a 460M parameter VLM, since it provides a good trade-off between training time and model performance. We utilize the lightweight nanoVLM training framework with [SmolLM2-360M-Instruct](https://huggingface.co/HuggingFaceTB/SmolLM2-360M-Instruct) as the text backbone, and [SigLIP2-Base-512](https://huggingface.co/google/siglip-base-patch16-512) as the vision encoder. We experimented with a classic 2-stage training schedule where the first stage is used to train mainly the Modality Projection to align the Language and Image Embeddings, and the second stage is used to train the whole model. Interestingly, we did not observe any significant benefits from this additional first stage compared to training the whole model directly at our size and training duration, so we settled on a single-stage training for most ablations.

### Baseline Datasets
We use three similar open source alternatives as baselines to compare our dataset to: **[The Cauldron](https://huggingface.co/datasets/HuggingFaceM4/the_cauldron)**, **[LLaVA-OneVision](https://huggingface.co/datasets/lmms-lab/LLaVA-OneVision-Data)** and **[Cambrian-7M](https://huggingface.co/datasets/nyu-visionx/Cambrian-10M)**.

| Name          | Images  | Samples	| Turns |	Answer Tokens  
|---------------|---------|---------|-------|----------------|
| Cauldron      | 2.0M    | 1.8M		| 27.8M | 0.3B           | 
| LLaVa-Vision  | 2.5M    | 3.9M		| 9.1M  | 1.0B           |
| Cambrian-7M   | 5.4M	  | 7M		  | 12.2M | 0.8B           |
| FineVision		| 17.3M   | 24.3M	  | 88.9M | 9.5B	         |

### Evaluations
We utilize [lmms-eval](https://github.com/EvolvingLMMs-Lab/lmms-eval) during training to evaluate our ablations in a reproducible manner. We evaluate on a diverse set of 11 benchmarks: AI2D, ChartQA, DocVQA, InfoVQA, MME, MMMU, MMStar, OCRBench, ScienceQA, TextVQA and SEED-Bench. Since these benchmarks cover different topics and produce results on different scales, e.g. AI2D returns the accuracy of the exact matches (0-1), but MME returns a continuous score (0-2800), aggregating them is not trivial. In our ablations the relative performance between the different configurations matters, so to provide a robuts summary metric we determine the rank of each model compared to the others in every benchmark at every training step and average it over all the benchmarks. This way, we can judge where different configurations rank among each other over the course of training. To keep a sense of how big the absolute difference between models is, we also provide an average over all metrics and incorporate MME by normalizing it between 0 and 1.

### Training Configuration
Each of our ablations trains the 460M model with a maximal image size of 1536x1536 pixel (without resizing smaller images) and a maximal input token length of 4096. This results in a maximum batch size of 2 for a single H100, which we adapt with 8 steps of gradient accumulation on each of the 32 GPUs for an effective batch size of 512. In all single stage configurations we train for 20k Steps on 32 H100s for approximately 20h while evaluating all 11 benchmarks every 1k Steps. If not specified otherwise, the “Baseline” in our intra dataset ablations refers to a training run on the full unfiltered and unchanged dataset. In this configuration, a full epoch of the unfiltered FineVision dataset takes 12k steps.

## Experiments
While many interesting questions could be investigated, we mainly focus on the aspects of the training that are influenced by the data. Before we dive into the internal details of FineVision, let’s have a look at our performance against the baselines.

### How does FineVision compare to other open datasets?
Here we see the first interesting trend: VLMs still benefit from training on a larger, more diverse dataset than what was available until today. FineVision doesn't lead the race in the first few thousand training steps, after all, it does include new tasks such as pointing and agentic browsing, so it shouldn't be better at first. But after seeing enough varied data, FineVision clearly shows the best performance across a wide set of benchmarks, which can be seen in its average ranking <a href="#against-baselines">(Fig. 2)</a>. One epoch of FineVision in our setup takes 12k training steps, so we train for close to 2 epochs in these ablations. Looking at the average benchmark, we can see how the models saturate around different points: 18k steps for Cambrian, 12k for LLaVa and 7k for the Cauldron.
In particular, over 11 different benchmarks, FineVision achieves an average improvement of 40.7% over the Cauldron, 12.1% over Cambrian, and 46.3% over LLaVa, which increases to 51.3%, 18.6% and 58.0% when comparing the deduplicated versions of the datasets. Additionally, FineVision includes data for tasks such as agentic browsing, and counting and pointing, which are not part of the other baselines.

<HtmlEmbed id="against-baselines" src="against-baselines.html" desc="Figure 2: Average Rank of Models trained on different open source datasets. FineVision shows both the highest average rank as well as the highest average over benchmarks." />

### How much test data is in publicly available datasets?
We investigate data leakage by finding images from test sets that appear in the dataset. For this, we constructed an image deduplication pipeline. We used this pipeline to compare all images in FineVision to all images of 66 image-text benchmarks from the lmms-eval framework.

For the comparison, we embed the images using the [SSCD descriptor](https://github.com/facebookresearch/sscd-copy-detection), and compute the cosine similarity between a given image in FineVision and all images from the test-set embeddings. Whenever a sample has a similarity higher than a threshold of **0.95** it is assumed to be a duplicate.

While our tests with various thresholds show that this is still flagging more false-positives than false-negatives, given the scale of data we have, we preferred to err on the side of caution.

Below is an example of a correctly identified Duplicate (“Photo”), a false-positive with a similarity score above 0.95 (“Chart”) and a false-negative with a similarity score below 0.95 (“Drawing”) <a href="#comparison">(Fig. 3)</a>.

We open-source the deduplication pipeline [here](https://github.com/huggingface/large-scale-image-deduplication) as well as the precomputed test-set embedding’s [here](https://huggingface.co/datasets/HuggingFaceM4/lmms-eval-embeddings).

---
<br/>
<Wide>
<HtmlEmbed id="comparison" src="comparison.html" align="center" desc="Figure 3: Examples of the Deduplication Results."/>
</Wide>
---

We repeated this deduplication procedure on all the baselines to analyse how contaminated they are. We found that all baselines contain between 2-3% images from test benchmarks, and removing them results in a performance drop of 2.4-2.8%. Interestingly, we find that for some benchmarks the difference is negligible, while other benchmarks suffer significantly. For example, after deduplicating, ScienceQA falls by 14.49% on average while OCRBench only drops by 1.08%.
This deduplications also shows that FineVision contains the smallest relative amount of duplicated data at 1%, and also suffers the smallest performance drop over all benchmarks after deduplication at just 1.45%.

| Name          | Samples	| Contamination Rate | Performance Drop |
|---------------|---------|--------------------|------------------|
| Cauldron      | 1.8M		| 3.05%		           | 2.39%            |
| Llava-Vision 	| 3.9M		| 2.15%		           | 2.72%            |
| Cambrian-7M  	| 7.0M	  | 2.29%		           | 2.78%            |
| FineVision		| 24.3M 	| 1.02%	      	     | 1.45%            |

Additionally, we experimented with removing all found samples from all datasets to see if the outcome is different from <a href="#against-baselines">Fig. 2</a>, but we observe the same distribution <a href="#against-baselines-deduplicated">(Fig. 4)</a>.

---
<HtmlEmbed id="against-baselines-deduplicated" src="against-baselines-deduplicated.html" desc="Figure 4: Average Rank of Models trained on different deduplicated open source datasets. Even after deduplicating all dataset, FineVision shows the best performance." />
---

### How diverse are the datasets?
Similarly to the size comparison, we also wanted to evaluate the datasets for diversity. Evaluating the diversity of a dataset is a field of study for itself, which we will not dive into here, rather we borrow techniques from computer vision and use the already computed SSCD embeddings as a proxy of visual diversity. To not rely on a subsample of the dataset in estimating the diversity, we analyse the covariance metric of the full embeddings. From this covariance matrix, we can calculate the eigenvalues for analysis. We get the effective rank of the covariance matrix, which measures how uniformly the variance is distributed across dimensions, as well as the participation ratio, which measures how many dimensions actively contribute to the overall variance. To obtain a single **diversity score** for the datasets, we normalize the effective rank and participation ratio with the embedding dimension and compute their geometric mean. We observe that **FineVision is not only the biggest, but also the most diverse dataset**. Additionally, you can also clearly see that more images do not necessarily result in more diversity, since LLaVa is substantially less diverse than the Cauldron, even with more images.

| Name          | Images | Effective Rank	| Participation Ratio 	| Diversity	|
|---------------|--------|------------		|----------		          |---------- |
| Cauldron      | 2.0M   | 324.05		      | 129.22		            | 0.400     |
| LLaVa-Vision  | 2.5M   | 267.89		      |  87.05		            | 0.298     |
| Cambrian-7M   | 5.4M   | 359.73		      | 152.70		            | 0.458     |
| FineVision    | 17.3M  | 359.22		      | 182.52		            | 0.500     |

### Should you merge multiple questions for the same image into a single multi turn conversation?
Since the training of a VLM already builds upon pretrained vision and language backbones, datasets are usually not completely unstructured, but follow an image+question and answer structure. Some works have shown that consolidating multiple questions for the same image into a multi-turn conversation where the image is shown only once improves model performance, reduces training budget, and reduces the datasets’ memory footprint. We therefore experiment with deduplicating every image in our dataset internally using the same SSCD descriptors, manually inspect the resulting clusters, and merge fitting samples into a multi-turn conversation.

When training with the same training budget, we find that both models perform very similarly <a href="#internal-deduplication">(Fig. 5)</a>. Some benchmarks favor one image/several turns, while others favor one image/one turn. Given this, we decide to release the dataset without merging multiple questions for the same image, and open-source the pipeline in case users want to explore this further.

---
<HtmlEmbed id="internal-deduplication" src="internal-deduplication.html" desc="Figure 5: Average Ranking of Models trained with internally deduplicated / merged samples. No clear benefit in merging can be seen with respect to model performance." />
---

### Should you train on multilingual data if your language backbone was not?
There are some multilingual datasets in our mixture, but since our Language Backbone is only trained on English data, we experimented with removing all the multilingual, mainly Chinese, subsets. Our results show that there is a slight advantage in leaving the multilingual data, even if it was not part of the Language Backbone's initial training. We believe this reinforces our hypothesis that more diversity in the dataset is generally preferable for VLM training. In our training setup with this configuration, one epoch over the whole non-deduplicated dataset equals ~12k steps, so the benefit of unseen languages only materializes after the first full epoch <a href="#remove-ch">(Fig. 5)</a>.

---
<HtmlEmbed id="remove-ch" src="remove-ch.html" desc="Figure 6: Average Rank of Models trained with and without multilingual samples. Keeping samples in unseen langauges improves performance after the first epoch." />
---

### How can you assess the quality of the dataset?
The usual goal for every dataset, to collect samples with the highest quality possible, is quite an abstract endeavour in practice, especially for multimodal datasets. Additionally, different training stages usually have different qualitative and quantitative requirements. Finally, tuning the mixtures of different categories is also reliant on how much data with what quality is available. For image-text datasets, there are 3 different combinatorial ways to evaluate a sample: text-only, image-only, and image-text correspondence. The question persists, how do you actually measure the quality of a sample, especially if you have to do so in 3 different ways. We propose doing so by leveraging both a LLM and a VLM as a judge.

To try to quantify the quality of the training data and the effect it has on the model’s performance, we run extensive ablations on our generated ratings.

---
<HtmlEmbed id="all-ratings" src="all-ratings.html" desc="Figure 6: Average Rank of Models trained with samples that have all 4 ratings above a certain threshold. Keeping all samples results in the best performance." />
---

Interestingly, both when only training on turns that have any of the 4 ratings  under a certain threshold, as well as when training on turns where only a single rating at a time is used, we observe the same behaviour. Simply training on the most diverse data, that one containing all samples, outperforms in benchmarks <a href="#all-ratings">(Fig. 6)</a> <a href="#all-filters">(Fig. 7)</a>. This could mean multiple things. 
Firstly, we can see almost the same distribution in the ranks across all filters: from best to worst with an increase in the rating threshold. For example the visual dependency and the image correspondence rating both result in exactly the same distribution of rankings, corresponding to the natural order of options, 1 through 5. This could indicate that with a sufficiently large dataset that you train on long enough, it hurts more to remove samples, even if they were judged to be of low quality, than to train on them. 

Additionally, the notion of quality in VLM datasets is inherently nuanced. Unlike LLMs, where pre-training often relies on massive web crawls, training a VLM is closer to the supervised fine-tuning (SFT) stage. We do not train on crawls of internet data, instead we train on individual samples of Image-Question and Answer pairs, and these datapoints are usually ‘curated rather than collected’. We also do not train on trillions of tokens, but on billions. This built-in curation provides a baseline level of quality from the start. FineVision follows this pattern: it brings together widely used VLM datasets along with a few new ones in low-resource domains. We could therefore be trying to measure and quantify noisy nuances in the quality of Image-Question-Answer Pairs, instead of using the fact that they are already curated SFT datasets as the measure for quality.

Alternatively, while we used state-of-the-art open source models to judge our datapoints, we still had to find a compromise between model quality and cost due to the raw required effort to rate every single turn of FineVision. The chosen models could simply not be powerful enough to recognize and judge the quality of samples.
Even though our first proposal to judge the quality of multimodal data on a per-turn basis did not yield any improvement in model performance, we believe that this is still an exciting and important direction of research and hope the release of FineVision encourages the community to develop techniques for this at large scale.

---
<Wide>
<HtmlEmbed id="all-filters" src="filters-quad.html" title="Model Performance After Applying Individual Filters" desc="Figure 7: Comparison across thresholds for all four filters individually: Formatting, Relevance, Visual Dependency, and Image-Question Correspondence. Keeping all samples results in the best average performance." align="center" />
</Wide>
---

### Should you train in multiple stages?
The standard training procedure of a VLM usually follows at least two stages. First, you train only the connecting module, potentially in addition the image encoder, and then you train the whole model in a second stage. Some work has even introduced an additional Stage 2.5 [@li2025eagle2buildingposttraining], where you train the full model on a smaller subset of higher quality data. To investigate this on small models, we experiment both with single, dual and triple stage training.

---
#### 1 Stage vs 2 Stages
To evaluate if pre-training the Modality Projection and the Vision Encoder provides any benefits to the final model performance, we conduct this experiment at a higher image resolution of 2048px and train substantially longer. We can see that even for training longer, the general difference in model performance is quite small. Individual benchmarks, do show differences (ScienceQA drops by 5% but OCRBench improves by 5% in the two-stage setup) <a href="#ss-vs-s1">(Fig. 8)</a>, so the better setup is individual to the desired model capabilities. This also shows that evaluation (and through this also correctly training) a VLM is not straightforward tasks, since availible benchmarks are limited proxies for the underlying model performance.

<HtmlEmbed id="ss-vs-s1" src="ss-vs-s1.html" desc="Figure 8: Average Rank of a model trained for 60K steps in a single stage, and a model trained for the same 60k steps on top of pretraining the Modality Projection and Vision Encoder for 15k steps. The pre-training procedure is not depicted in this graph." />

---
#### 2 Stages vs 2.5 Stages
We also experiment if splitting the second stage results in any performance improvements.

We take the baseline, and continue training for another 20k steps, both with the unfiltered (>= 1) as well as filtered subsets of **FineVision** according to our ratings.

<HtmlEmbed id="s25-ratings" src="s25-ratings.html" desc="Figure 9: Average Rank if a model trained for an additional 20K steps on top of unfiltered training for 20K steps. Subselecting data for the final training steps does not yield a performance improvement with our quality measure. Only the 20k steps for the final stage are depicted here, the first 20k steps are the same for all variations." />

As in the previous results, we observe that the best outcome is simply achieved by training on as much and as diverse data as possible <a href="#s25-ratings">(Fig. 9)</a>. Like before, this could also be due to the way we filter the data, and a different quality measure might yield different results.

## Conclusion
We introduce **FineVision**, a new state of the art open dataset to train VLMs, that is both **bigger and more diverse** than previous open source datasets. We provide extensive analysis regarding size, diversity, contamination and data-centric model training, and hope we can empower both further research and the community with this.