指令数据一般为 json 格式,包含 Instruction、Input、Output 三个字段(可以为空),每行一条样本。
Instruction(指令) :Instruction 是对模型的输入文本或问题进行进一步说明或约束的指令。它可以是一种特定的格式或标记,用于告诉模型如何处理输入数据,或者提供一些额外的信息,以便模型更好地理解和生成输出。Instruction的作用是为模型提供更准确和具体的指导,以便生成符合预期的文本。Instruction 可以包括要求模型遵循特定的格式、风格或主题,或者指示模型关注某些特定的方面或细节。
Input(输入) :Input 是模型实际接收的文本或数据。它由 Prompt 和 Instruction 组成,提供了完整的上下文和指导,用于生成输出。Input 可以包含多个句子或段落,以提供更全面的信息。Input 会被输入到 LLMs 中,用于推理和生成输出。
Response(输出) :Response 是 LLMs 生成的输出文本或回答。它是模型对Input的理解和处理结果。 Response 的内容取决于 LLMs 的能力和训练数据,它可以是文本、回答、建议、解释等形式。Response 是模型根据 Input 和 Instruction 生成的,它应该符合 Instruction 的要求,并尽可能准确和有针对性。
RM 的训练数据包含输入和输出,输入通常是一个指令,输出通常包含多个数据,用 \t 分隔,数据需要进行排序,排在前面的数据正向倾向比排在后面的高。
PPO 的训练数据通常只包含输入数据,由被训练的模型和奖励模型共同进行预测,通过计算它们输出值的 KL 散度来对模型进行优化。
目前有不少公开的通用领域数据集,同时也有一些垂直领域有公开的数据集,若认为数据集数量不够可以收集相关领域的书籍或者用爬虫爬取互联网中的相关数据,再进行清洗和整理。也可以利用能力比较强大的模型生成数据用于训练。
根据 Scaling Laws,随着模型大小、数据集大小和用于训练的计算浮点数的增加,模型的性能会提高。并且为了获得最佳性能,所有三个因素必须同时放大。一般来说对于给定模型的理想训练数据集 token 数量大约是模型中参数数量的20倍。
国内的训练集非常多,这里列举几个相对知名的通用数据集。
moss-003-sft-data:由复旦大学 MOSS 团队开源的中英文多轮对话数据,包含100万+数据
ultrachat:由清华大学开源的英文多轮对话数据,包含140万+数据
WizardLM_evol_instruct_V2_143k:由 WizardLM 项目开源的英文指令微调数据集,通过 Evol-Instruct 方法让指令进化,加强指令的复杂度,以提升模型对复杂指令的遵循能力。包含143k条数据。
school_math_0.25M:由 BELLE 项目组开源的数学运算指令数据,包含25万条数据。
阅读量:1230
点赞量:0
收藏量:0