DataSetInspect

Check a fine-tuning dataset before you pay to train on it.

Training data is often your most sensitive data — this never leaves the tab

Dataset — JSONL, or a JSON array

Problems found

Example length distribution

Duplicates

Distributions

First rows

What it checks

Structure: every line parses as JSON, and every row matches the shape the rest of the file uses — chat messages, prompt/completion, Alpaca instruction/output, or raw text.
Conversation validity: a system message that isn't first, two user turns in a row, an empty content field, a conversation that ends on the user, or — the one that quietly wastes a whole training run — an example with no assistant message at all, which teaches the model nothing.
Duplicates: exact repeats, plus near-duplicates by word overlap (≥90% Jaccard). Repeated examples get over-weighted during training and inflate your token bill for no gain.
Length and balance: a distribution of example lengths with p50/p90/p99, so you can see truncation risk before the provider silently clips your longest rows; plus class balance when the rows carry a label. Token counts are estimates — an exact figure requires the model's own BPE vocabulary, a multi-megabyte table this page deliberately doesn't ship.