SmolLM 发布:高性能小语言模型
Hugging Face 宣布推出 SmolLM,这是一个由最先进的小语言模型 (SLM) 组成的家族,提供三种尺寸:135M、360M 和 1.7B 参数。这些模型专为智能手机和笔记本电脑等设备的本地部署而设计,通过高质量的数据策展实现高性能,从而降低推理成本并提高用户隐私保护。
数据策展与 SmolLM-Corpus
SmolLM 的性能得益于 SmolLM-Corpus,这是一个由三个主要部分组成的专门训练集:
- Cosmopedia v2:一个包含 3900 万份合成文档(28B tokens)的集合,包括教科书、故事和文章。它是使用 Mixtral-8x7B-Instruct-v0.1 通过基于 BISAC 图书分类系统 34,000 个主题的精细提示策略生成的。
- FineWeb-Edu (deduplicated):使用教育质量分类器从 FineWeb 数据集中筛选出的 220B tokens 的教育类网络样本。
- Python-Edu:源自 The Stack 的 4B tokens 的教育类 Python 样本,通过 Llama3 训练的教育代码分类器进行筛选。
通过 Cosmopedia v2 改进合成数据
为了在原有基础上增强 Cosmopedia v2,Hugging Face 专注于提示词优化。他们没有使用无监督聚类,而是利用 BISAC 图书分类来定义 34,000 个主题,并实现了一个搜索工具来检索最相关的网页作为种子样本。
对生成风格的研究表明,针对初中生的教科书在大多数基准测试(不包括 MMLU)中表现最好,而故事则提高了常识推理能力。因此,v2 的最终混合比例包括 40% 的初中内容、30% 的大学内容和 30% 的混合风格。
模型架构与训练
SmolLM 模型使用带有 20% cooldown 阶段的梯形学习率调度器进行训练。训练量因模型大小而异:
- 135M 和 360M 模型:在 600B tokens 上训练。
- 1.7B 模型:在 1T tokens 上训练。
技术规格
| 模型大小 | 架构说明 | 上下文长度 | 词表大小 |
|---|---|---|---|
| 135M | Grouped-Query Attention (GQA), Depth-prioritized | 2048 | 49,152 |
| 360M | Grouped-Query Attention (GQA), Depth-prioritized | 2048 | 49,152 |
| 1.7B | Traditional Architecture | 2048 | 49,152 |
所有模型都使用了 embedding tying。135M 和 360M 模型遵循类似于 MobileLLM 的设计,以针对本地设备限制进行优化。
性能评估
SmolLM 模型在常识推理和世界知识基准测试中优于多个竞争对手小语言模型:
- SmolLM-135M 尽管训练的 token 数较少(600B vs 1T),但表现优于 MobileLM-125M。
- SmolLM-360M 在 500M 参数以下的所有模型中表现最佳,包括 Qwen2-500M 和 MobileLM-350M。
- SmolLM-1.7B 在 2B 参数以下的其他模型中表现最佳,包括 Microsoft 的 Phi-1.5、Qwen2-1.5B 和 MobileLM-1.5B。
在编程任务中,SmolLM-1.7B 在 HumanEval 上实现了 24 pass@1 分数。
指令微调与对齐
指令微调版本是使用 WebInstructSub 数据集的许可子集和 StarCoder2-Self-OSS-Instruct 创建的。对齐通过使用 HelpSteer(针对 135M 和 1.7B)和 argilla/dpo-mix-7k(针对 360M)的直接偏好优化 (DPO) 进一步完善。
本地部署与硬件要求
SmolLM 针对低内存环境进行了优化。这些模型与各种硬件兼容,包括 iPhone(通常具有 6GB 到 8GB 的 DRAM)。Hugging Face 已经发布了 transformers 检查点、ONNX 检查点,并计划提供用于 llama.cpp 兼容性的 GGUF 版本。