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、必需字段是否存在,以及没有样本超过模型的最大上下文长度。

    jsonl
    {"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."}
    客户支持模型的JSONL微调数据集示例,包含指令-输出对。

    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

    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.