phi系列模型,是微软的 Small Language Models (简称SLMs),目前共开源了3个版本:phi-1(1.3B)、phi-1.5(1.3B)和phi-2(2.7B),这些模型均未经过alignment。
其中,phi-1[1]只关注code能力,从phi-1.5[2]开始加入language understanding和common sense reasoning能力,目前最新的模型是phi-2[3],使用了更多的数据 + 更大的参数量,其效果在多个benchmark上可以超过mistral 7B、LLaMa2 13B(见下图)。
三代phi模型的差异,可总结如下表:
SLMs降低了微调、部署语言模型的成本,目前有不少基于phi进行微调的模型,例如llava-phi[4]、moondream[5]等。
phi系列模型的核心逻辑是: 数据质量会改变scaling laws,使得SLMs可以提前获得以往几十B的大模型才有的能力。
问题1:什么样的数据是高质量的?
- 主要看两个维度:内容质量、多样性 ;
- 过滤掉低质数据能带来效果提升,数据量并不是关键因素;
- phi系列高度依赖textbooks(教科书式数据),包含对知识点的讲解、例题等,下图是一个例子。从直觉上,人类通过教科书能更高效的学习,对机器而言,textbooks提供了Q&A数据,且知识密度高,适合进行pre-training阶段的学习。
问题2:高质量数据从哪里来?
web数据是其中一个来源 。
但web数据的质量参差不齐,需要先进行 过滤 。
除了常见的deduplication,phi团队训练了一个 内容质量打分器 ,用来去除不具备教育意义和内容质量不高的数据。这个打分器的训练数据由GPT-4标注。
在phi-1(关注code任务)中,给GPT-4提供的标注原则为: determine its educational value for a student whose goal is to learn basic coding concepts
。
另一个来源是合成数据 。
如前所述,phi团队认定textbooks数据更有利于机器进行学习,但这样的数据如何得来? 答案是用LLMs来合成 。
问题3:如何保证合成数据的多样性?
多样性,是合成数据的棘手问题, 模型会倾向于输出训练数据中常出现的pattern 。
phi使用了2个思路:
- 用Attribute来增加多样性 。例如限定topic、受众类型、出现哪些词、function name等,和笔者曾介绍过的AttrPrompt类似;
- 用web数据来辅助生成 。用few-shot learning的方式,将web数据作为seeds。
phi论文并未透露过多关于合成数据的细节,这成为了SLMs的“壁垒”。
问题4:用合成数据来训练language models,有风险吗?
用GPT4等较强的LLM合成数据(作为teacher),让较弱的LLM进行imitation learning(作为student),究竟有没有问题?
这是一个有趣的争论。
风险派:
- student model能够学到teacher style,但由于其自身的knowledge、reasoning能力有限,强行模仿style会带来幻觉问题[6];
- 用模型生成的数据训练,会导致模型崩溃(Model Collapse),即模型会忘记真实的底层数据分布[7]。
乐观派:
- 把teacher的reasoning process一并教给student,以帮助student提升reasoning能力,从而缓解只学习Style导致的幻觉问题[8];
- 在特定任务上,student LLM有可能超过teacher LLM[9]。
phi是这样做的:
- 不只使用合成数据,也使用filtered web数据,避免可能的模型崩溃;
- 在pre-training阶段便使用合成数据,以充分吸收LLMs的knowledge,为将来的对齐打下基础;
- 逐个任务击破。phi-1针对code,phi-1.5开始加入NLP数据(包括日常知识、common sense reasoning等)。
问题5:small language models有什么局限?
从直觉上来看,SLMs的局限会在 generalization 和 robustness 两方面。
phi-1论文中,作者直言了phi-1的局限性,例如模型对于长prompt效果不好、对于prompt的小幅度改动比较敏感等,说明phi-1还不够robust,作者解释这与训练数据 还不够多样 有关。
而在phi-2中,训练数据已经从最初的7B,扩展到了250B;同时参数量也已经翻倍到2.7B,想来generalization和robustness均已有了改进。
总结
本文介绍了微软的phi系列模型,从实验结果来看,phi-2至少在benchmark上 不输于7B、甚至13B模型 ,这说明了数据的威力。
值得再次一提的是,phi模型的训练数据不仅来自filtered web data,很大一部分也来自 synthetic textbook data --- 正如作者在论文所说: We speculate that the creation of synthetic datasets will become, in the near future, an important technical skill and a central topic of research in AI
。
关注笔者
欢迎关注笔者,了解更多有趣有用的NLP知识~
SLMs交流
笔者建了一个SLMs交流群,若读者对SLMs感兴趣,欢迎加笔者微信( duanyu027 ),备注“SLMs”,随后我将拉你进群:)
往期文章
- AttrPrompt:让LLM生成的数据更加多样、更少Bias的一种思路
- Large-Scale Weakly Supervision (Noisy) Data,何以成为大模型的数据基石?
- DITTO:角色扮演的self-alignment方法
- 角色扮演论文浅读:RoleLLM、Character-LLM以及ChatHaruhi
- 用GLM4做一款文字冒险游戏:「带娃路上的打怪升级」
- 模型融合(Model Merging):合理性、常见技术及其特性
参考资料
[1] Textbooks Are All You Need: https://arxiv.org/abs/2306.11644
[2] Textbooks Are All You Need II: phi-1.5 technical report: https://arxiv.org/abs/2309.05463
[3] phi-2 blog: https://www.microsoft.com/en-us/research/blog/phi-2-the-surprising-power-of-small-language-models/
[4] MoE-LLaVa-Phi2: https://huggingface.co/LanguageBind/MoE-LLaVA-Phi2-2.7B-4e
[5] moondream: https://github.com/vikhyat/moondream
[6] The False Promise of Imitating Proprietary LLMs: https://arxiv.org/abs/2305.15717
[7] The Curse of Recursion: Training on Generated Data Makes Models Forget: https://arxiv.org/abs/2305.17493
[8] Orca: Progressive Learning from Complex Explanation Traces of GPT-4: https://arxiv.org/abs/2306.02707
[9] Impossible Distillation: from Low-Quality Model to High-Quality Dataset & Model for Summarization and Paraphrasing: https://arxiv.org/abs/2305.16635