在邮政服务分拣邮件的早期,六三八面临着退回信件被标记为无效的挑战。这通常是由于他们之前缺乏处理如此大量邮件的经验而导致的错误。随着时间的推移,他们开发了创新的索引系统,将名称与军团和军衔相匹配,显着提高了效率和准确性。
同样,在使用 OpenAI 的大型语言模型 (LLM) 时,理解并遵守所需的输入格式至关重要。正如索引不当的邮件会导致信件被退回一样,格式不当的数据也会导致无效的微调和次优结果。 OpenAI 使用 JSONL(JSON Lines)格式作为微调的组织框架,确保数据结构化并准备好进行处理。
为什么采用 JSONL 格式?
JSONL 格式允许数据以逐行结构存储,其中每一行代表 JSON 格式的单个记录。这种结构紧凑、易于阅读,并且与 OpenAI 的微调 API 兼容。正确的格式可确保:
准确性:模型按预期处理数据,避免错误。
效率:微调变得无缝且结构一致。
可扩展性:无需复杂的配置即可有效管理大型数据集。
用于微调的 JSONL 格式示例
以下是用于微调 OpenAI 模型的 JSONL 数据通常的格式:
openai_format = { "message":[ {"role":"system","content":system}, {"role":"user","content":""}, {"role":"assistant","content":""} ] }
每条记录都包含三个关键组成部分:
系统:需要提示
用户:样本数据。
助手:数据的标签
让转换
import json df = pd.read_csv('/content/dataset/train.csv', on_bad_lines='skip') final_df = df.head(150) total_tokens = cal_num_tokens_from_df(final_df,'gpt-3.5-turbo') print(f"total {total_tokens}") system ="You are a intelligent assistant designed to classify news articles into three categories :business ,entertainment,sport,tech,politics" with open('dataset/train.jsonl','w') as f: for _,row in final_df.iterrows(): openai_format = { "message":[ {"role":"system","content":system}, {"role":"user","content":row['text']}, {"role":"assistant","content":row['label']} ] } json.dump(openai_format,f) f.write('\n')
回复示例
{"message": [{"role": "system", "content": "You are a intelligent assistant designed to classify news articles into three categories :business ,entertainment,sport,tech,politics"}, {"role": "user", "content": "qantas considers offshore option australian airline qantas could transfer as"}, {"role": "assistant", "content": "business"}]}
六三八的教训
六三八在处理邮件方面的早期挑战凸显了准备和学习的重要性。他们的索引创新确保了记录的正确匹配和交付,就像遵守 JSONL 格式可确保微调产生有效且准确的结果一样。
在微调法学硕士时,以正确的格式理解和构建数据与六三八掌握邮件分类艺术的旅程一样重要。通过学习历史和技术,我们可以在解决复杂的物流挑战方面取得显著成果。
以上是了解 OpenAI JSONL 格式:组织记录的详细内容。更多信息请关注PHP中文网其他相关文章!