跳转到主内容
极星编程网:以代码为星,赴技术山海!

了解 OpenAI JSONL 格式:组织记录

早期邮政分拣系统面临的挑战,与如今使用大型语言模型 (LLM) 类似。 如同早期邮局因处理邮件数量不足而导致信件退回,不正确的输入格式也会导致 LLM 微调失败或效果不佳。OpenAI 使用 JSONL (JSON Lines) 格式作为微调数据的标准,确保数据结构化并易于处理。 JSONL 格式的优势 JSONL 格式采用逐行存储,每行一个 JSON 对象。这种格式简洁、易读,并与 OpenAI 的微调 API 兼容。其优势在于: 准确性: 确保模型正确处理数据,避免错误。 效率: 简化微调流程,提高效率。 可扩展性: 方便处理大型数据集。 JSONL 格式微调示例 以下是一个用于 OpenAI 模型微调的 JSONL 数据示例:
{ "message": [ {"role": "system", "content": "这是一个智能助手,用于将新闻文章分类为:商业、娱乐、体育、科技、政治"}, {"role": "user", "content": "澳航考虑将业务转移到海外"}, {"role": "assistant", "content": "商业"} ] }
每个记录包含三个关键部分: Python 3.14.3 微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。 下载 system: 系统提示。 user: 样本数据(新闻文章)。 assistant: 对应的类别标签。 代码示例:
import json import pandas as pd # ... (假设已加载数据集到 pandas DataFrame: df) ... system_prompt = "这是一个智能助手,用于将新闻文章分类为:商业、娱乐、体育、科技、政治" with open('train.jsonl', 'w') as f: for _, row in df.iterrows(): data = { "message": [ {"role": "system", "content": system_prompt}, {"role": "user", "content": row['text']}, {"role": "assistant", "content": row['label']} ] } json.dump(data, f) f.write('\n')
输出示例:
{"message": [{"role": "system", "content": "这是一个智能助手,用于将新闻文章分类为:商业、娱乐、体育、科技、政治"}, {"role": "user", "content": "澳航考虑将业务转移到海外"}, {"role": "assistant", "content": "商业"}]}
经验教训 早期邮政系统在邮件分拣方面遇到的问题,为我们提供了宝贵的经验。 如同邮局通过改进索引系统提高效率,我们也应重视数据格式在 LLM 微调中的重要性。 正确使用 JSONL 格式能够确保微调过程顺利进行,并获得准确可靠的结果。

相关文章