Fine-Tuning JSONL Validator
Paste your fine-tuning dataset, catch broken lines before the training job does, estimate tokens per example, and convert between prompt/completion and chat messages formats. Everything runs in your browser.
Option A: paste JSONL directly
Option B: build rows here
Validation results
0
Valid examples
0
Lines with errors
0
Blank lines skipped
0
Total est. tokens
| Line | Status | Format | Est. tokens | Detail |
|---|
Download cleaned dataset (valid lines only)
Conversion note: prompt/completion becomes one user turn plus one assistant turn. Messages become prompt = system and user content joined, completion = last assistant message; multi-turn structure beyond that is flattened.
What gets checked: each non-blank line must parse as a JSON object and match one of the two common fine-tuning shapes:
prompt/completion (both strings) or a messages array where every message has a valid role (system, user, assistant, or tool) and a string content. A leading BOM is stripped automatically, Windows line endings are handled, and blank lines are skipped rather than flagged. Trailing commas are not legal JSON and are called out with a hint. Token counts use the ~3.6 chars/token estimate, so treat totals as ballpark figures for cost planning, not exact billing numbers.