5 后训练

本文为论文《SmolLM2:紧凑高效的小语言模型家族》「中文全文翻译」板块的对应章节,与「论文原文」板块同一章节一一对应,层级保持一致。

训练 base SmolLM2 模型后,我们遵循当前通过指令微调和偏好学习来最大化性能与实用性的后训练标准做法。对于后训练,我们利用现有数据集以及一个名为 SmolTalk 的新指令微调数据集。

5.1 SmolTalk

尽管 SmolLM2 基础模型在 1-2B 参数范围内优于其他最先进的基础模型,但基础模型在公开数据集(如 MagPie-Pro(Xu et al., 2024)或 OpenHermes2.5(Teknium, 2023b))的微调后表现低于其他模型的后训练版本。这一观察促使我们开发了 SmolTalk 2 2

https://huggingface.co/datasets/HuggingFaceTB/smoltalk,一个新的指令跟随数据集,它仔细结合了选定的现有数据集与我们开发的新合成数据集,包括 Magpie-Ultra 对话数据集以及其他专用数据集,这些数据集解决了如 Smol-Constraint、Smol-Rewrite 和 Smol-Summarization 等特定能力。所有数据集均使用 Distilabel(Bartolomé Del Canto et al., 2024)生成。

5.1.1 对话数据

MagPie-Ultra 是一个使用两步提示方法(Xu et al., 2024)创建的多轮数据集。与使用 Llama-3-70B-Instruct(无特定系统提示词)生成两轮对话的 MagPie 不同,MagPie-Ultra 利用更大、更强大的模型 Llama-3.1-405B-Instruct-FP8(Dubey et al., 2024)。我们还加入系统提示词以引导生成,产生一个包含 100 万个样本、三轮对话的平衡数据集。生成的数据集进一步使用较小的 Llama 模型(Llama-3.1-8B-Instruct 和 Llama-Guard-3-8B)进行过滤,以确保生成指令的质量和安全。我们还利用 ArmoRM(Wang et al., 2024b; Wang et al., 2024a)对对话进行基于质量的过滤评分,并利用 gte-large-en-v1.5(Zhang et al., 2024; Li et al., 2023c)对语义相似对话进行去重。

我们在第 F 节表 10 中将 MagPie-Ultra 与现有公开监督微调(SFT)数据集进行比较。评估套件包括指令跟随与对话基准 IFEval(Zhou et al., 2023)和 MT-Bench(Zheng et al., 2023);ARC Challenge 中的推理;MMLU-Pro 中的知识,以及 GSM8K 和 MATH 用于数学评估。我们的数据集在大多数基准上优于 MagPie-Pro,并在 IFEval 和 MT-Bench 上大幅超越 OpenHermes2.5 和 UltraChat(Ding et al., 2023)。

5.1.2 任务专用数据

我们开发了额外的任务专用数据集,以进一步增强模型在详细约束(Smol-Constraint)、摘要(Smol-Summarization)和重写(Smol-Rewrite)能力上的指令跟随。Smol-Constraint 包含 36k 条指令,包含类似 IFEval(Zhou et al., 2023)中发现的详细约束。使用 Xu et al. (2024) 的方法配合目标系统提示词,我们使用 Qwen2.5-72B-Instruct(Yang et al., 2024b)为这些指令生成了 550k 条指令和响应。然后我们过滤掉包含冲突约束或错误响应的生成指令,得到 56.3k 条指令-响应对,在与 IFEval(10 n-gram 重叠)去污染后,得到 36k 条对。对于 Smol-Summarization 和 Smol-Rewrite,我们首先合成了高质量源文本作为摘要和重写任务的基础。我们使用 PersonaHub(Ge et al., 2024)和 FinePersonas 数据集(Argilla, 2024; Chan et al., 2024)中的角色,合成了电子邮件、推文、LinkedIn 帖子和笔记的多样化集合。这使我们能够通过向 Qwen2.5-72B-Instruct 提示特定系统提示词和角色描述,生成具有各种写作风格、主题和视角的内容。然后我们向 Qwen2.5-72B-Instruct 提示对给定文本进行摘要和重写,获得约 100 万个摘要和 60 万个重写文本。将 3 个 Smol- 数据集加入 MagPie-Ultra(MagPie-Ultra$\overset{+}{}$)进一步提升了 IFEval 性能,如第 F 节表 10 所示。

5.1.3 数学数据

为提升数学推理能力,我们对公共数学指令数据集进行了评估,方法是在 80% 通用指令数据(MagPie Ultra + Smol-Constraint、Smol-Rewrite、Smol-Summarization)与 20% 来自各种来源的数学数据的混合物上进行微调。第 F 节表 10 的结果突显了数据集的互补优势:NuminaMath-CoT(Li et al., 2024b)在 MATH 和 MT-Bench 上展示强劲表现,而也包含在 OpenHermes2.5 中的 MetaMathQA(Yu et al., 2023)改进了 GSM8K 上的结果。基于这些发现,我们将两个数据集的组合纳入 SmolTalk。

5.1.4 其他专用数据

对于代码生成,我们使用 Self-OSS-Starcoder2-Instruct(Wei et al., 2024a),包含 50k 个高质量 Python 指令-响应对。为支持系统提示词,我们包含 SystemChats2.0(Computations, 2024)中随机选取的 30k 个样本,并为函数调用添加了 80k 个来自 APIGen-Function-Calling(Liu et al., 2024)的样本。此外,为在长上下文任务上保持强劲表现,我们纳入了 LongAlign(Bai et al., 2024)的英文子集(3.7k 个样本,8k-16k 个 token)。我们还添加了 100k 个随机选取的 OpenHermes2.5 样本,因其在知识(MMLU-Pro)、Everyday-Conversations(Face, 2024)、2.2k 个休闲多轮交互以及 Explore-Instruct(Wan et al., 2023)(用于重写)上的强劲表现。我们发现,按指定样本数量纳入这些数据集能有效提升其目标能力,同时保持其他基准上的强劲表现。

5.2 监督微调(SFT)

第 F 节表 9 显示 SmolTalk 的最终组成。我们对 base SmolLM2 在 SmolTalk 上进行了监督微调,共 2 个时代,使用全局批量大小 128、序列长度 8192 和学习率 $3.0\times 10^{-4}$。此 SFT 阶段后的评估结果在第 F 节表 10 中提供。

5.3 偏好对齐

对于偏好学习,我们使用直接偏好优化(DPO)(Rafailov et al., 2024)。我们对多个公共合成反馈数据集进行了实验(Ivison et al., 2024),包括 UltraFeedback(Cui et al., 2024)、UltraInteract(Yuan et al., 2024)、Capybara(Daniele & Suphavadeeprasit, 2023)和 ORCA(Lv et al., 2023)。UltraFeedback 在基准上证明是持续最有效的,提升了 MT-Bench、MMLU-Pro 和 MATH。我们以学习率 $1.0\times 10^{-6}$、beta 0.5、全局批量大小 128、序列长度 1024 个 token 训练 2 个时代。在 DPO 训练的最终阶段后,我们得到指令版 SmolLM2 模型。如 Dubey et al. (2024) 所述,在 DPO 中使用短上下文数据不会影响模型的 8k 上下文能力。

5.4 指令模型评估

我们评估最终指令版 SmolLM2,并将其与 Qwen2.5-1.5B 和 Llama3.2-1B 的指令变体进行对比,结果如表 5 所示。SmolLM2-Instruct 表现出强劲的指令跟随能力,在 IFEval 上显著优于 Qwen2.5-1.5B-Instruct;我们的模型在 MT-Bench 和 OpenRewrite-Eval(Shu et al., 2024,用于文本重写)上具有竞争力,并通过 GSM8K 和 MATH 分数证明了强劲的数学能力。这些结果凸显了 SmolLM2 在多种任务上泛化的能力,展现了其作为一款性能强劲的聊天助手的潜力。

表 5:1-2B 指令微调模型在基准上的对比。SmolLM2-1.7B-Instruct 在指令跟随、推理和数学方面表现强劲。