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

Mistral Fine-Tune JSONL Validator

updated 11 May 2026 · La Plateforme messages format

Your training data never leaves this tab. La Plateforme uploads your file when a job starts; this pre-flight check is fully local.

Validate

Drop a fine-tune .jsonl file here, or

Mistral Fine-Tune JSONL Validator

Mistral's La Plateforme uses an OpenAI-compatible messages array — same roles (system, user, assistant, tool), same shape, with a couple of small differences in how tool calls are described. This validator enforces the rules La Plateforme actually checks at upload: a final assistant turn, non-empty content, valid roles, and correctly-shaped tool_calls. 100% in-browser.

Validating a different provider? OpenAI, Anthropic (Claude), Google Gemini, Llama / ShareGPT.

Mistral's shape, in one line

{"messages": [
  {"role": "system",    "content": "You are helpful."},
  {"role": "user",      "content": "Hi"},
  {"role": "assistant", "content": "Hello"}
]}

What the validator checks

Common mistakes I catch

{"messages": [{"role": "user", "content": "Hi"}]}
// Error: missing assistant turn — the model needs a target to learn.

{"messages": [{"role": "developer", "content": "..."}]}
// Error: Mistral does not support the 'developer' role (use 'system').

{"messages": [
  {"role": "assistant", "tool_calls": [{"function": {"name": "f"}}]}
]}
// Error: tool_calls missing 'id' and 'type: "function"'.

Differences from OpenAI

Frequently asked questions

Which Mistral models support fine-tuning?

Mistral Small, Mistral Large, Codestral, Ministral on La Plateforme; community Mistral 7B / Mixtral via Together, Fireworks, RunPod, etc. — those usually accept the same messages shape. For Axolotl/Unsloth recipes, the ShareGPT shape is also common (use the Llama validator).

Why does Mistral reject my file even though it validates here?

Two common reasons: (1) total token count exceeds the per-example or per-file cap; (2) the file is not strictly JSONL (e.g., a JSON array, or pretty-printed with line breaks inside records). Run the JSONL validator first to rule out (2), and the token counter to check (1).

Is my data uploaded?

Never. Everything runs in your browser. See the privacy policy.

Related tools