deepseek 冷启动数据、推理类与非推理类SFT数据详解
一、冷启动数据(Cold-Start Data)
定义:冷启动数据是指在模型训练初期使用的小规模、高质量数据,用于快速引导模型理解任务的基本模式,为后续大规模训练或强化学习提供基础能力。这些数据在模型几乎没有任何先验知识的时候,起到了“雪中送炭”的作用。
特点:
- 数据量少:通常为数千条,确保模型能够快速处理并学习。
- 覆盖核心场景:数据应涵盖任务的核心和常见场景,确保模型能够掌握基本能力。
- 标注精准:数据标注应准确无误,以提供可靠的学习信号。
用途:
- 解决模型在初始阶段因数据不足导致的性能低下问题。
- 为后续大规模训练提供基础,确保模型能够平稳过渡到更复杂的任务。
示例:在问答任务中,冷启动数据可能包括少量问题和答案对,如:
- 输入:法国的首都是哪里?
- 输出:巴黎
- 输入:日本的首都是哪里?
- 输出:东京
二、推理类SFT数据(Reasoning-Oriented SFT Data)
定义:推理类SFT数据是指需要模型进行逻辑推理、分步解答的任务数据,常见于数学问题、代码生成、科学问答等场景。
特点:
- 包含中间推理步骤:数据应包含明确的中间推理过程,以便模型学习如何逐步推导答案。
- 答案需严格依赖逻辑推导:答案的正确性应完全依赖于逻辑推导过程,而非猜测或直觉。
格式:
- 通常结合结构化标签(如和)明确区分推理与结论。
- 在SFT阶段,模型会学习预测这些标签,从而提高推理能力。
示例(数学问题):问题:小明有12个苹果,吃了3个,又买了5个,现在有多少个?
推理:
- 初始苹果数:12
- 吃掉后剩余:12 - 3 = 9
- 购买后总数:9 + 5 = 1414
三、非推理类SFT数据(Non-Reasoning SFT Data)
定义:非推理类SFT数据侧重于生成性任务,无需复杂逻辑推理,如开放域对话、创意写作、信息检索等。
特点:
- 强调语言流畅性、一致性:数据应确保语言流畅且内容一致,以提高模型的生成质量。
- 无需显式推理步骤:与推理类数据不同,非推理类数据无需包含中间推理过程。
格式:
- 直接提供输入-输出对,或通过多轮对话模拟真实交互。
- 数据类型多样,可以是对话、诗歌、小说、代码注释等。
示例:{"conversation": [{"role": "user", "content": "推荐一部科幻电影"},{"role": "assistant", "content": "《星际穿越》探讨了时空与亲情,豆瓣评分9.3,值得一看。"}]}
四、冷启动与推理/非推理数据的结合应用场景
冷启动阶段:
- 使用数千条高质量数据,覆盖基础任务(如简单问答、短文本生成),使模型快速掌握基本能力。
推理类扩展:
- 引入大量带逻辑步骤的数据(如数学题、代码题),通过强化学习优化方法提升模型推理能力。
非推理类扩展:
- 补充写作、角色扮演等数据,增强模型生成多样性和场景适应性。
技术实现:
- 冷启动数据:人工标注或精选开源数据集(如GSM8K中的部分数学题)。
- 推理类数据:通过模板生成或众包平台收集分步解答(如MathQA、HumanEval)。
- 非推理类数据:使用对话数据集(如Persona-Chat)或创意写作语料(如WritingPrompts)。
总结:
- 冷启动数据的核心目标是快速建立基础任务能力,支持少量示例学习(Few-Shot),如GPT-3、T5等模型。
- 推理类SFT数据旨在提升逻辑推理与分步解答能力,适用于数学解题、代码生成等任务,如Chain-of-Thought、Codex等模型。
- 非推理类SFT数据则增强生成流畅性与场景适应性,适用于开放域对话、创意写作等任务,如DialoGPT、GPT-2/3等模型。
通过合理分配冷启动数据和扩展推理/非推理类数据,可高效优化模型在不同任务中的表现。具体数据比例需根据实际任务需求调整。