jsonlkit.com
JSONL (JSON Lines) utilities, in the browser
Say hi →

Train / Val / Test Splitter

updated 11 May 2026 · for fine-tune / ML datasets

100% client-side. No upload.

Split

Drop a .jsonl file here, or

Train / Val / Test Splitter

The reproducible split every ML pipeline needs. Drop in a JSONL file, set the ratios (80/10/10 by default), choose a seed so your results are repeatable, and optionally stratify by a label key to keep the class distribution identical across all three splits. Three named files come out: train.jsonl, val.jsonl, test.jsonl. 100% in-browser.

Random split

Shuffles the input with a seeded PRNG (so the same input + same seed always gives the same three files), then takes the first train% for train, the next val% for validation, and the rest for test. The seed defaults to 42 — change it if you want to try a different shuffle.

Stratified split

Set a key (typically the label or class field — label, category, intent) and the splitter keeps each class's proportion the same in all three files. Critical when classes are imbalanced: a pure random split can put 0 examples of a rare class into val/test and silently destroy your evaluation.

Why a separate test set?

Standard ML hygiene: use train for fitting, val for hyperparameter tuning and early-stopping, test for the final unbiased evaluation. If you tune on test, your reported metrics will be optimistic and your model will underperform in production.

Ratios that aren't 80/10/10

Tips & common pitfalls

Related tools