Overview of the Synthetic Data Generation Pipeline
mainThe Synthetic Data Generation Pipeline is an end-to-end process for generating the screenshot-training-natural-filtered-v2 dataset. This dataset is used to fine-tune Qwen3-VL-Embedding-2B for visual document retrieval. The pipeline produces approximately 115K high-quality query→screenshot-chunk pairs including hard negatives, starting from raw Wikipedia screenshot tiles.
There are two main pipelines:
1. Visual Query Pipeline
Processes Wikipedia screenshot tiles (kiwix_tiles/) through several stages:
- Generation: Gemini reads screenshot chunks to generate Q/A pairs.
- Filtering: GPT-4o removes queries that are not self-contained.
- Hard Negative Mining: A Search API retrieves confusable chunks.
- VQA Filtering: A VLM removes false negatives (chunks that actually answer the query).
- Cleaning: Gemini scores queries for naturalness and factoid style.
- Export & Splitting: Final data is filtered by score, split into train/eval/test sets, and packaged for Hugging Face.
2. Text Warmup Pipeline
Processes text passages (text_baseline.db) to create a text-qa-pair dataset used for --text-warmup-steps:
- Generation: Gemini reads text passages to generate Q/A pairs.
- Filtering: Removes non-self-contained queries.
- Mining: Text search API retrieves confusable passages.
- LLM Filtering: LLM removes false negatives.