Tool

Instruction JSONL checker and converter

One JSON object per line. Bad lines keep their line number and a reason. Conversion stays in this tab; GearDel never receives the file.

Parsing runs in the browser. The JSONL is not uploaded. Download the result from this tab if you need a file.

Formats this page knows

Alpaca: instruction, optional input, output. Empty input is kept as an empty string.

ShareGPT: conversations (or conversation) with from/value. human and user map to the user role; gpt, assistant, chatgpt, and model map to the assistant role; system stays system.

OpenAI fine-tuning chat: messages with role system|user|assistant and string content.

Conversion goes through that chat list. Alpaca input is appended to instruction with a blank line when converting out of Alpaca.

What this page does not do

  • Image parts, tool calls, and function messages are rejected with a line error. They are not dropped silently.
  • Multi-turn chat does not fit one Alpaca pair. Those lines error unless you turn on lossy conversion, which keeps the first user turn and the first assistant turn and, if present, folds one system message into instruction.
  • A JSON array in one blob is not JSONL. Split it into one object per line.
  • At most 20,000 lines or about two million characters in one paste.

JSONL

From
To

0 converted · 0 blank · 0 errors · 0 lossy

Questions

Why did line 12 fail?

The error list uses the same line numbers as the paste, counting from 1, including skipped blank lines in the numbering. JSON.parse failures keep the engine message.

Can I convert ShareGPT to Alpaca?

Yes when there is one user turn and one assistant turn. Extra turns need the lossy checkbox. The page then says how many lines were reduced.

Does GearDel store the file?

No. The catalog still does not host datasets. This tool only rewrites text in the tab.

Related on GearDel

Pick a Korean dataset by task →

Korean LLM training rows →

Token count for Korean text →

Korean characters and bytes →