[π Homepage] [π arXiv (conference version)] [π€ Bee models & datasets] [π― Honey-Data-15M] [π» Code]
Honey-Data-V2 is the corpus of the journal version of Bee, Bee: A High-Quality Corpus and Full-Stack Suite for End-to-End Training of Fully Open MLLMs, accepted to Computational Visual Media. The conference version (ICLR 2026) released Honey-Data-15M and the Bee-8B models trained on it. The journal version scales the corpus up by reapplying the same curation pipeline, HoneyPipe, at a substantially larger scale.
Honey-Data-V2 is a multimodal supervised fine-tuning corpus of 44.3M samples comprising 100.3M QA pairs. It is stored as 19,707,852 image groups carrying 44,295,078 conversations, spread over 8 task categories and 420 subsets (5.81 TB). Long chain-of-thought covers 17.9% of the samples (7.9M, against 2.9M in Honey-Data-15M).
The released Bee-8B checkpoints, and all results reported in the paper, were trained on Honey-Data-15M. Evaluating models trained on Honey-Data-V2 is left for future work.
Honey-Data-V2 is not built from scratch. It extends Honey-Data-15M in three ways, all executed with the existing operators of DataStudio:
| lineage | samples | long CoT |
|---|---|---|
| re-curated Honey-Data-15M pool (rollout passes 1 / 2 / 3: 9.6M / 12.8M / 7.0M) | 29.4M | 15.5% |
| newly incorporated sources | 14.9M | 22.6% |
| Honey-Data-V2 total | 44.3M | 17.9% |
| role | Honey-Data-15M | Honey-Data-V2 |
|---|---|---|
| short CoT | Qwen2.5-VL-72B/32B | Qwen3-VL-235B-A22B-Instruct, Kimi-K2.5 |
| long CoT | proprietary MLLMs | Qwen3-VL-235B-A22B-Thinking, Doubao-Thinking, Kimi-K2.5 |
| verification | Qwen2.5-VL-72B | Qwen3-235B-A22B-Instruct |
| GUI grounding | β | MAI-UI-8B |
Unlike the usual one-row-per-conversation layout, a record here collects every conversation that refers to the same image. The image bytes are therefore stored once, no matter how many dialogues discuss it. Across the corpus this is the difference between 19,708,047 stored images and the 44,295,078 conversations that use them.
from datasets import load_dataset, get_dataset_config_names
subsets = get_dataset_config_names("HoneyDataV2/Honey-Data-V2")
ds = load_dataset("HoneyDataV2/Honey-Data-V2", subsets[0], split="train")
rec = ds[0]
rec["images"][0] # a PIL image
len(rec["data"]) # how many dialogues share it
rec["data"][0]["messages"] # [{'from': 'human', 'value': ...}, {'from': 'gpt', 'value': ...}]
rec["data"][0]["provenance"] # which model wrote and which verified this answer
Images are stored as lossless WebP. Where the source was already JPEG, or
where WebP came out larger than the original, the original bytes are kept
untouched. WebP holds the same pixels as the PNGs it replaces in roughly 60% of
the bytes. Decoding is transparent: datasets returns PIL images either way.
For RGBA images the alpha channel is preserved exactly and RGB is preserved wherever alpha > 0. PNG stores arbitrary colour under fully transparent pixels and WebP does not carry it over; no reader can observe those values.
| column | type | meaning |
|---|---|---|
id | string | identifier of the image group |
images | list of image | the images, decoded to PIL by datasets |
n_images | int32 | how many images the group holds |
image_sizes | list of [width, height] | pixel dimensions, one pair per image |
image_phashes | list of string | perceptual hash, one per image |
category | string | task category; matches the directory |
source_subset | string | subset; matches the directory |
categories | list of string | every category label the upstream corpora gave this group |
sources | list of string | every upstream corpus that contributed a dialogue |
source_subsets | list of string | every upstream subset name |
data | list of struct | the dialogues, below |
Each element of data:
| field | meaning |
|---|---|
id, ori_id | identifiers of this dialogue and of the record it came from |
messages | the dialogue as from / value pairs, human and gpt |
n_turns | number of turns |
cot_level | short or long chain-of-thought |
original_answers | the answers before rewriting |
provenance | which model performed each step |
source, subset, source_subset, category | where this dialogue came from |
provenance names the model used at each stage, so a subset of the corpus can be selected by
annotator: question_image_consist (the image-question consistency check), answer_rewrite,
reasoning_rewrite, and answer_consist (verification of the rewritten answer). A value of null
means that stage did not apply β determinate tasks such as OCR transcription and box-level grounding
are filtered but never rewritten.
| category | subsets | image groups | conversations | size |
|---|---|---|---|---|
| Caption | 13 | 1,413,122 | 2,011,253 | 1.21 TB |
| Chart | 77 | 4,665,363 | 11,036,064 | 0.87 TB |
| Document | 49 | 2,271,245 | 4,766,060 | 0.67 TB |
| GUI-Grounding | 4 | 500,916 | 2,803,848 | 0.12 TB |
| General | 122 | 4,298,102 | 12,952,088 | 1.75 TB |
| Grounding | 27 | 1,979,196 | 3,435,355 | 0.75 TB |
| OCR | 45 | 2,564,793 | 3,625,483 | 0.37 TB |
| STEM | 83 | 2,015,115 | 3,664,927 | 0.07 TB |
| total | 420 | 19,707,852 | 44,295,078 | 5.81 TB |
A subset name that appears in more than one category is qualified with its category, for example
Chart-CoSyn and Document-CoSyn.
| stage | models |
|---|---|
| answer rewriting | Qwen3-VL-235B-A22B-Instruct, Kimi-K2.5, MAI-UI-8B |
| reasoning rewriting | Qwen3-VL-235B-A22B-Thinking, Kimi-K2.5, Doubao-Thinking |
| image-question consistency | Qwen3-VL-30B-A3B-Instruct |
| answer verification | Qwen3-235B-A22B-Instruct |
sources records which annotation pass a dialogue belongs to: Honey-Data-15M-Rollout1 is the
re-curated original pool, Rollout2 and Rollout3 are the two further independent passes over the
same instructions. Dialogues taken from newly incorporated community corpora carry that corpus's
name instead.
Honey-Data-V2 aggregates many publicly available datasets, each governed by its own licence. Anyone using this corpus must observe the licence attached to each constituent dataset. To the extent we hold any rights in the curation and the generated answers, those are released under CC-BY-4.0.
If you use Honey-Data-V2, please cite the journal version:
@article{zhang2026beecvm,
title = {Bee: A High-Quality Corpus and Full-Stack Suite for End-to-End Training of Fully Open MLLMs},
author = {Yi Zhang and Bolin Ni and Xin-Sheng Chen and Heng-Rui Zhang and Yongming Rao and
Houwen Peng and Qinglin Lu and Han Hu and Meng-Hao Guo and Shi-Min Hu},
journal = {Computational Visual Media},
year = {2026},
note = {to appear},
}
The conference version, which introduced Honey-Data-15M and Bee-8B:
@inproceedings{zhang2026bee,
title = {Bee: A High-Quality Corpus and Full-Stack Suite to Unlock Advanced Fully Open MLLMs},
author = {Yi Zhang and Bolin Ni and Xin-Sheng Chen and Heng-Rui Zhang and Yongming Rao and
Houwen Peng and Qinglin Lu and Han Hu and Meng-Hao Guo and Shi-Min Hu},
booktitle = {The Fourteenth International Conference on Learning Representations},
year = {2026},
}
[π Homepage] [π arXiv (conference version)] [π€ Bee models & datasets] [π― Honey-Data-15M] [π» Code]
Honey-Data-V2 is the corpus of the journal version of Bee, Bee: A High-Quality Corpus and Full-Stack Suite for End-to-End Training of Fully Open MLLMs, accepted to Computational Visual Media. The conference version (ICLR 2026) released Honey-Data-15M and the Bee-8B models trained on it. The journal version scales the corpus up by reapplying the same curation pipeline, HoneyPipe, at a substantially larger scale.
Honey-Data-V2 is a multimodal supervised fine-tuning corpus of 44.3M samples comprising 100.3M QA pairs. It is stored as 19,707,852 image groups carrying 44,295,078 conversations, spread over 8 task categories and 420 subsets (5.81 TB). Long chain-of-thought covers 17.9% of the samples (7.9M, against 2.9M in Honey-Data-15M).
The released Bee-8B checkpoints, and all results reported in the paper, were trained on Honey-Data-15M. Evaluating models trained on Honey-Data-V2 is left for future work.
Honey-Data-V2 is not built from scratch. It extends Honey-Data-15M in three ways, all executed with the existing operators of DataStudio:
| lineage | samples | long CoT |
|---|---|---|
| re-curated Honey-Data-15M pool (rollout passes 1 / 2 / 3: 9.6M / 12.8M / 7.0M) | 29.4M | 15.5% |
| newly incorporated sources | 14.9M | 22.6% |
| Honey-Data-V2 total | 44.3M | 17.9% |
| role | Honey-Data-15M | Honey-Data-V2 |
|---|---|---|
| short CoT | Qwen2.5-VL-72B/32B | Qwen3-VL-235B-A22B-Instruct, Kimi-K2.5 |
| long CoT | proprietary MLLMs | Qwen3-VL-235B-A22B-Thinking, Doubao-Thinking, Kimi-K2.5 |
| verification | Qwen2.5-VL-72B | Qwen3-235B-A22B-Instruct |
| GUI grounding | β | MAI-UI-8B |
Unlike the usual one-row-per-conversation layout, a record here collects every conversation that refers to the same image. The image bytes are therefore stored once, no matter how many dialogues discuss it. Across the corpus this is the difference between 19,708,047 stored images and the 44,295,078 conversations that use them.
from datasets import load_dataset, get_dataset_config_names
subsets = get_dataset_config_names("HoneyDataV2/Honey-Data-V2")
ds = load_dataset("HoneyDataV2/Honey-Data-V2", subsets[0], split="train")
rec = ds[0]
rec["images"][0] # a PIL image
len(rec["data"]) # how many dialogues share it
rec["data"][0]["messages"] # [{'from': 'human', 'value': ...}, {'from': 'gpt', 'value': ...}]
rec["data"][0]["provenance"] # which model wrote and which verified this answer
Images are stored as lossless WebP. Where the source was already JPEG, or
where WebP came out larger than the original, the original bytes are kept
untouched. WebP holds the same pixels as the PNGs it replaces in roughly 60% of
the bytes. Decoding is transparent: datasets returns PIL images either way.
For RGBA images the alpha channel is preserved exactly and RGB is preserved wherever alpha > 0. PNG stores arbitrary colour under fully transparent pixels and WebP does not carry it over; no reader can observe those values.
| column | type | meaning |
|---|---|---|
id | string | identifier of the image group |
images | list of image | the images, decoded to PIL by datasets |
n_images | int32 | how many images the group holds |
image_sizes | list of [width, height] | pixel dimensions, one pair per image |
image_phashes | list of string | perceptual hash, one per image |
category | string | task category; matches the directory |
source_subset | string | subset; matches the directory |
categories | list of string | every category label the upstream corpora gave this group |
sources | list of string | every upstream corpus that contributed a dialogue |
source_subsets | list of string | every upstream subset name |
data | list of struct | the dialogues, below |
Each element of data:
| field | meaning |
|---|---|
id, ori_id | identifiers of this dialogue and of the record it came from |
messages | the dialogue as from / value pairs, human and gpt |
n_turns | number of turns |
cot_level | short or long chain-of-thought |
original_answers | the answers before rewriting |
provenance | which model performed each step |
source, subset, source_subset, category | where this dialogue came from |
provenance names the model used at each stage, so a subset of the corpus can be selected by
annotator: question_image_consist (the image-question consistency check), answer_rewrite,
reasoning_rewrite, and answer_consist (verification of the rewritten answer). A value of null
means that stage did not apply β determinate tasks such as OCR transcription and box-level grounding
are filtered but never rewritten.
| category | subsets | image groups | conversations | size |
|---|---|---|---|---|
| Caption | 13 | 1,413,122 | 2,011,253 | 1.21 TB |
| Chart | 77 | 4,665,363 | 11,036,064 | 0.87 TB |
| Document | 49 | 2,271,245 | 4,766,060 | 0.67 TB |
| GUI-Grounding | 4 | 500,916 | 2,803,848 | 0.12 TB |
| General | 122 | 4,298,102 | 12,952,088 | 1.75 TB |
| Grounding | 27 | 1,979,196 | 3,435,355 | 0.75 TB |
| OCR | 45 | 2,564,793 | 3,625,483 | 0.37 TB |
| STEM | 83 | 2,015,115 | 3,664,927 | 0.07 TB |
| total | 420 | 19,707,852 | 44,295,078 | 5.81 TB |
A subset name that appears in more than one category is qualified with its category, for example
Chart-CoSyn and Document-CoSyn.
| stage | models |
|---|---|
| answer rewriting | Qwen3-VL-235B-A22B-Instruct, Kimi-K2.5, MAI-UI-8B |
| reasoning rewriting | Qwen3-VL-235B-A22B-Thinking, Kimi-K2.5, Doubao-Thinking |
| image-question consistency | Qwen3-VL-30B-A3B-Instruct |
| answer verification | Qwen3-235B-A22B-Instruct |
sources records which annotation pass a dialogue belongs to: Honey-Data-15M-Rollout1 is the
re-curated original pool, Rollout2 and Rollout3 are the two further independent passes over the
same instructions. Dialogues taken from newly incorporated community corpora carry that corpus's
name instead.
Honey-Data-V2 aggregates many publicly available datasets, each governed by its own licence. Anyone using this corpus must observe the licence attached to each constituent dataset. To the extent we hold any rights in the curation and the generated answers, those are released under CC-BY-4.0.
If you use Honey-Data-V2, please cite the journal version:
@article{zhang2026beecvm,
title = {Bee: A High-Quality Corpus and Full-Stack Suite for End-to-End Training of Fully Open MLLMs},
author = {Yi Zhang and Bolin Ni and Xin-Sheng Chen and Heng-Rui Zhang and Yongming Rao and
Houwen Peng and Qinglin Lu and Han Hu and Meng-Hao Guo and Shi-Min Hu},
journal = {Computational Visual Media},
year = {2026},
note = {to appear},
}
The conference version, which introduced Honey-Data-15M and Bee-8B:
@inproceedings{zhang2026bee,
title = {Bee: A High-Quality Corpus and Full-Stack Suite to Unlock Advanced Fully Open MLLMs},
author = {Yi Zhang and Bolin Ni and Xin-Sheng Chen and Heng-Rui Zhang and Yongming Rao and
Houwen Peng and Qinglin Lu and Han Hu and Meng-Hao Guo and Shi-Min Hu},
booktitle = {The Fourteenth International Conference on Learning Representations},
year = {2026},
}