What is JSONL?
基於文字的資料格式,每行是有效的 JSON 物件,廣泛用於微調資料集結構化。
Definition
JSONL(JSON Lines),有時也稱為換行分隔 JSON(NDJSON),是一種輕量級資料格式,其中檔案的每一行都是一個獨立的、有效的 JSON 物件,以換行符結尾。與標準 JSON 將整個資料集包裝在單一陣列中不同,JSONL 將每一行視為獨立的。這種面向行的結構使其可以輕鬆串流處理:解析器可以一次讀取、驗證和處理一筆記錄,而無需將整個檔案載入記憶體。
在 AI 和機器學習的背景下,JSONL 已成為微調資料集的主流格式。每一行通常代表一個訓練範例——例如一個指令-回應對、一段多輪對話,或帶有輸入文字和標籤的分類樣本。OpenAI、Mistral、Llama 和大多數主要微調框架都接受 JSONL 作為其主要輸入格式,使其成為訓練資料的通用語言。
該格式的簡單性是其最大的優勢。它不需要 schema 定義、不需要特殊工具、不需要二進位解析——任何文字編輯器、程式語言或 Unix 命令列 工具都可以建立、檢查和操作 JSONL 檔案。這種低門檻使其非常適合迭代式資料集策展,資料科學家經常需要新增、移除、過濾和轉換訓練範例。
Why It Matters
微調模型的品質與其訓練資料的品質成正比,而 JSONL 就是該資料的載體格式。正確準備 JSONL——一致的 schema、乾淨的文字、平衡的類別、適當的長度分佈——可以說比任何超參數選擇都更重要。一個結構良好的 JSONL 檔案還能實現可重現性:它作為模型訓練內容的可稽核記錄,這對受監管產業的合規性至關重要。此外,由於 JSONL 檔案是面向行的,它們與版本控制(git diff 是有意義的)和資料管線(串流攝取、map-reduce 處理)自然整合。
How It Works
JSONL 檔案就是一個 UTF-8 文字檔案,其中每一行都是一個完整的 JSON 物件。對於微調,常見的 schema 使用三個欄位:"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 工具和串流管線配合良好。
- 驗證——schema 檢查、長度過濾、去重——應始終在訓練前執行。
How Ertas Helps
Ertas Studio 接受 JSONL 作為微調工作的主要資料集格式。平台包含內建的資料集驗證器,可檢查 schema 符合性、標記過長或過短的範例、偵測重複項目,並在訓練開始前提供品質分數。對於尚未擁有 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.