REILX/neo_sft_phase2_conversations
收藏数据集概述
基本信息
- 许可证: Apache 2.0
- 任务类别: 文本生成
- 语言: 英语、中文
- 数据规模: 10K<n<100K
数据处理
对话拆分
- 方法: 将多轮对话拆分为独立的单轮样本。
- 具体操作:
- 遍历每个对话的每一轮。
- 将当前“human”轮的“value”与所有前一轮的对话内容连接,形成“instruction”。
- 使用当前“gpt”轮的“value”作为“output”。
- “input”可以留空,或添加一些提示。
Python代码
-
功能: 处理原始数据集并生成SFT数据集。
-
代码: python import json
def convert_conversations_to_sft(conversations): sft_data = [] instruction = "" for i, turn in enumerate(conversations): if turn[from] == human: instruction += turn[value] + "
" else: sft_data.append({ "instruction": instruction.strip(), "input": "", "output": turn[value] }) instruction += turn[value] + "
" return sft_data
def save_to_jsonl(data, filename): with open(filename, w, encoding=utf-8) as f: for item in data: f.write(json.dumps(item, ensure_ascii=False) + )
if name == "main": with open("neo_sft_phase2.json", r, encoding=utf-8) as f: data = json.load(f) sft_dataset = [] for conversation_set in data: sft_dataset.extend(convert_conversations_to_sft(conversation_set[conversations])) save_to_jsonl(sft_dataset, "neo_sft_phase2.jsonl")




