What is JSONL?
一种基于文本的数据格式,每行是一个有效的JSON对象,广泛用于在AI/ML工作流中结构化微调数据集、日志记录和流式数据管道。
Definition
JSONL(JSON Lines),有时也称为换行符分隔的JSON(NDJSON),是一种轻量级数据格式,文件中的每一行都是一个独立的、有效的JSON对象,以换行符终止。与将整个数据集包裹在单个数组中的标准JSON不同,JSONL独立处理每一行。这种面向行的结构使其天然可流式处理:解析器可以一次读取、验证和处理一条记录,无需将整个文件加载到内存中。
在AI和机器学习的场景中,JSONL已成为微调数据集的主导格式。每行通常代表一个训练样本——例如一个指令-回复对、一个包含多轮的聊天对话,或一个带有输入文本和标签的分类样本。OpenAI、Mistral、Llama以及大多数主要微调框架都接受JSONL作为其主要输入格式,使其成为训练数据的通用语言。
该格式的简单性是其最大的优势。它不需要模式定义、不需要特殊工具、不需要二进制解析——任何文本编 辑器、脚本语言或Unix命令行工具都可以创建、检查和操作JSONL文件。这种低门槛使其非常适合迭代式数据集策划,数据科学家经常在其中添加、删除、过滤和转换训练样本。
Why It Matters
微调模型的质量直接与其训练数据的质量成正比,而JSONL是这些数据存在的格式。正确准备JSONL——一致的模式、干净的文本、均衡的类别、适当的长度分布——可以说比任何超参数选择都更重要。一个结构良好的JSONL文件还实现了可重现性:它作为模型训练内容的可审计记录,这对于受监管行业的合规至关重要。此外,由于JSONL文件是面向行的,它们与版本控制(git diff有意义)和数据管道(流式摄取、MapReduce处理)自然集成。
How It Works
JSONL文件是一个UTF-8文本文件,每行是一个完整的JSON对象。对于微调,常见的模式使用三个字段:"instruction"(提示或问题)、"input"(可选的额外上下文)和"output"(期望的模型回复)。聊天风格的数据集使用包含带有"role"和"content"字段的对象的"messages"数组。在微调期间,训练框架逐行读取文件,对每个样本进行分词,并将批次输入模型。验证通常涉及检查每行是否解析为有效JSON、必需字段是否存在,以及没有样本超过模型的最大上下文长度。
{"instruction": "What is your return policy?", "output": "We offer a 30-day no-questions-asked return policy for all unused items. Simply initiate a return from your account dashboard and ship the item back with the prepaid label we provide."}
{"instruction": "How do I reset my password?", "output": "Navigate to Settings > Security > Change Password. Enter your current password, then your new password twice. You will receive a confirmation email once the change is saved."}
{"instruction": "Can I upgrade my plan mid-cycle?", "output": "Yes — upgrades take effect immediately. You will be charged a prorated amount for the remainder of the current billing cycle, and the new rate applies from the next cycle onward."}Example Use Case
一个客户支持团队从他们的帮助台平台导出5,000个已解决的工单,每个包含客户的问题和客服的已验证回复。一个Python脚本将每张工单转换为包含"instruction"和"output"字段的JSONL行,过滤掉短于20个token或长于2,048个token的样本,并对近似相同的条目进行去重。生成的4,200行JSONL文件被上传到Ertas Studio,用于驱动一次微调任务,产出一个能够起草符合团队风格和准确性标准的首次回复的模型。
Key Takeaways
- JSONL每行存储一个JSON对象,使其可流式处理且便于增量处理。
- 它是所有主要LLM框架中微调数据集的标准输入格式。
- JSONL文件中的数据质量是决定微调成功的最大因素。
- 面向行的结构与版本控制、Unix工具和流式管道良好配合。
- 验证— —模式检查、长度过滤、去重——应始终在训练前执行。
How Ertas Helps
Ertas Studio接受JSONL作为微调任务的主要数据集格式。平台包含内置的数据集验证器,检查模式一致性、标记过长或过短的样本、检测重复,并在训练开始前提供质量分数。对于还没有JSONL文件的团队,Ertas提供数据集模板和转换工具,将CSV、Parquet和聊天日志导出转换为正确格式化的JSONL——降低了从原始数据到训练就绪数据集的门槛。
Related Resources
Chat Template
Fine-Tuning
GGUF
Inference
LoRA
Synthetic Data
Tokenizer
Training Data
Getting Started with Ertas: Fine-Tune and Deploy Custom AI Models
Introducing Ertas Studio: A Visual Canvas for Fine-Tuning AI Models
How to Fine-Tune an LLM: The Complete 2026 Guide
Fine-Tune AI Models Without Writing Code
Hugging Face
llama.cpp
Ollama
Ertas for Healthcare
Ertas for SaaS Product Teams
Ertas for Customer Support
Ertas for Data Extraction
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.