Free AI data tool · Quality
Train/test split tool (group-aware)
Quick answer
Set your ratios, a seed and a group field such as conversation_id. Each group lands entirely in one split, and you can download every split and a manifest.
Your sample is processed in this browser. File contents are not uploaded.
Supported input
CSV, JSON array of objects or JSONL, up to 10 MiB or 25,000 records.
How it works
Group IDs are sorted, then shuffled with a seeded pseudo-random generator, so the same input, ratios and seed always produce the same result. Groups are assigned one at a time to the split furthest below its target row count. Records without a group ID are treated as their own group or left out, as you choose. Achieved row and group ratios are shown next to the requested ones.
Limitations
- Exact requested percentages may be impossible when groups differ in size.
- No stratification by label and no detection of semantic leakage between groups.
Questions
- How do I split a dataset into train, validation and test?
- Load the file, set the percentages and a seed, and optionally a group field so related rows stay together. Download each split and a manifest. The same seed always gives the same split.
- Why are my percentages not exact?
- When whole groups must stay together, exact percentages are often impossible. The tool shows the achieved ratios next to the requested ones.
- Is my file uploaded?
- No. The file is read and processed in this browser tab, and its contents are not sent to SourceX or anyone else. Closing the tab or pressing Reset clears it.
Learn the format
Related tools
Request data in this format
Need licensed business data delivered in this format? Describe it and we'll scope it.
Request data in this format