ChartVerse-SFT-600K
收藏资源简介:
**ChartVerse-SFT-600K** is a large-scale, high-quality chart reasoning dataset with Chain-of-Thought (CoT) annotations, developed as part of the **[opendatalab/ChartVerse](https://huggingface.co/collections/opendatalab/chartverse)** project. For more details about our method, datasets, and full model series, please visit our [Project Page](https://chartverse.github.io). This dataset contains **non-trivial samples** filtered by failure rate (r > 0), ensuring that every sample provides meaningful learning signal. Samples that are too easy (r = 0, where the model always answers correctly) are excluded. Since we generate multiple questions for a single image and multiple CoT answers for a single question, **duplicate images may appear within the dataset**. This is a normal and expected characteristic of the data structure. ## 🔥 Highlights - **Non-Trivial Samples**: Filtered by failure rate > 0, excluding samples that are too easy - **High Complexity**: Rollout Posterior Entropy (RPE) of **0.44**, the highest among all chart datasets - **Truth-Anchored**: All answers verified via Python code execution, eliminating hallucinations - **Rich Reasoning**: **3.9B** tokens of high-quality Chain-of-Thought reasoning traces ## 📊 Dataset Statistics | Property | Value | |:---|:---:| | **Unique Charts** | 412K | | **QA Pairs** | 603K | | **Total Tokens** | 3.9B | | **Avg CoT Length** | ~6,500 tokens | | **Failure Rate** | r(Q) > 0 | | **Answer Accuracy** | ✅ Verified | ## 📈 Comparison with Existing Datasets <div align="center"> <img src="https://raw.githubusercontent.com/chartverse/chartverse.github.io/main/static/images/chart_cmp.png" width="100%" alt="Dataset Comparison"> </div> ChartVerse-SFT-600K features charts with significantly higher complexity and diversity than all existing chart reasoning datasets. ### Chart Examples <div align="center"> <img src="https://raw.githubusercontent.com/starriver030515/ChartVerse/main/assets/complex_images.png" width="100%" alt="Complex Chart Examples"> </div> Our dataset covers exceptional diversity in chart types: - **3D Visualizations**: Surface plots, 3D bar charts, scatter plots - **Hierarchical Structures**: Treemaps, sunburst charts, dendrograms - **Statistical Plots**: Violin plots, radar charts, box plots with annotations - **Multi-Subplot Layouts**: Complex dashboards with mixed chart types - **Specialized Charts**: Sankey diagrams, chord diagrams, heatmaps with clustering ## 📊 Model Performance ### Overall Results <div align="center"> <img src="https://raw.githubusercontent.com/chartverse/chartverse.github.io/main/static/images/overall_result.png" width="100%" alt="Overall Performance Comparison"> </div> ### SFT vs RL Performance <div align="center"> <img src="https://raw.githubusercontent.com/chartverse/chartverse.github.io/main/static/images/training_phases.png" width="100%" alt="Training Phases Performance"> </div> ## 🔬 Data Generation Pipeline ### Step 1: Rollout Posterior Entropy (RPE) for Chart Complexity <div align="center"> <img src="https://raw.githubusercontent.com/chartverse/chartverse.github.io/main/static/images/rpe_illustration.png" width="100%" alt="RPE Illustration"> </div> We propose **Rollout Posterior Entropy (RPE)** to quantify intrinsic chart complexity: 1. **VLM Rollout**: Given a chart, prompt VLM to generate executable code 8 times (temperature=1.0) 2. **Feature Extraction**: Extract CLIP embeddings from reconstructed images 3. **Spectral Entropy**: Compute entropy from normalized singular values of Gram matrix **Key Insight**: Simple charts → consistent reconstructions (low RPE); Complex charts → divergent outcomes (high RPE). We retain only charts with **RPE ≥ 0.4**. ### Step 2: Truth-Anchored Inverse QA Synthesis <div align="center"> <img src="https://raw.githubusercontent.com/chartverse/chartverse.github.io/main/static/images/pipeline.png" width="100%" alt="ChartVerse Pipeline"> </div> Unlike traditional Q→A generation, we adopt an **Answer-First** paradigm: 1. **Script Generation**: LLM analyzes chart code → Python script → deterministic answer A_py 2. **Reverse Question Synthesis**: Generate question Q conditioned on the script logic 3. **Consistency Verification**: LLM infers answer  from (code, Q); retain only if  = A_py 4. **CoT Distillation**: Qwen3-VL-30B-A3B-Thinking generates reasoning traces ### Step 3: Difficulty Filtration (Failure Rate > 0) We calculate failure rate via VLM rollouts: ``` r(Q) = 1 - (1/3) × Σ Match(predicted_answer, ground_truth) ``` **SFT-600K Filtering Criteria**: - ❌ **r(Q) = 0**: Too easy → **Excluded** (model always correct, no learning signal) - ✅ **r(Q) > 0**: Non-trivial → **Retained** (provides meaningful learning signal) ## 📖 Citation ```bibtex @misc{liu2026chartversescalingchartreasoning, title={ChartVerse: Scaling Chart Reasoning via Reliable Programmatic Synthesis from Scratch}, author={Zheng Liu and Honglin Lin and Chonghan Qin and Xiaoyang Wang and Xin Gao and Yu Li and Mengzhang Cai and Yun Zhu and Zhanping Zhong and Qizhi Pei and Zhuoshi Pan and Xiaoran Shang and Bin Cui and Conghui He and Wentao Zhang and Lijun Wu}, year={2026}, eprint={2601.13606}, archivePrefix={arXiv}, primaryClass={cs.CV}, url={https://arxiv.org/abs/2601.13606}, } ``` ## 📄 License This dataset is released under the Apache 2.0 License. ## 🙏 Acknowledgements - Chart synthesis: [ChartVerse-Coder](https://huggingface.co/opendatalab/ChartVerse-Coder) - CoT distillation: Qwen3-VL-30B-A3B-Thinking - QA synthesis: Qwen3-30B-A3B-Thinking



