引言
微软最近公开了Phi-3的论文[1],并且开源了Phi-3-mini模型(3.8B参数量),有4K上下文[2]和128K上下文[3]两个版本。
从benchmark上来看,Phi-3-mini在factuality knowledge上有较明显短板(见下图,trivialQA的表现明显低于其他7B模型),但在math、code、language understanding和reasoning上,3.8B的Phi-3-mini几乎领先一众7B/8B模型,有些任务上甚至可以超越Mixtral 8*7B和GPT3.5。
在本文中,笔者将用自身的use case来测试Phi-3-mini的效果,并谈谈对Phi-3以及SLMs的看法。
阅读本文之前,读者可以阅读先导文章:「微软的SLMs之路:从Phi-1到Phi-2」。
究竟效果几何
benchmark固然重要,但能否解决用户实际的use case也很重要。
笔者将选取自身遇到的3个实际use case,试试看Phi-3-Mini效果如何。
测试环境:ollama[4] + open web ui[5]
需要提前说的是,Phi-3-Mini主要支持英文,因此下文的试验都在英文语境下开展;笔者试过,Phi-3-Mini的中文能力很差。
Use Case1: linux下查询文件夹内的文件数量
提问如下:
How to get the number of files in a folder on a Linux system.
Phi-3-Mini的回答:
整体回答不错 。但第一个指令有些混淆,--file-per-directory的表述不对,应该改为path/to/folder,否则会误导用户;而其他的指令都是正确的。
下面这个是智谱GLM4[6]的回答,大家可以对比感受一下。
User Case2: 分析《我记得》的歌词
有段时间很喜欢听《我记得》,于是想试试LLM能否用来分析艺术作品。
提问如下:
[lyrics]
the above text is the lyric of a song, please analyse what's the meaning of the song?
Phi-3-Mini的回答:
为了方便看,笔者用GLM4将其转成了中文。
笔者认为Phi3回答的挺好 ,基本把握了这首歌的内涵,提到了“回忆“、“永恒”、“思念”和”爱“等元素,也指出了其中的”循环“设定。
下面是GLM4的回答,大家可以对比一下。
Use Case3:总结学术论文
既然Phi-3-Mini可以支持128K的上下文,那么理论上可以用来总结论文。
于是笔者将Phi-3自己的论文扔给它,并让它进行总结:
[phi-3 pdf]
summarize the document.
Phi-3-Mini的回答如下:
不得不说,Phi3的效果较差 ,这个总结中忽略了很多重要内容,例如Phi-3-mini的参数大小、训练数据、训练策略等技术细节。
学术论文总结做的比较好的是Kimi[7],其总结有条理,且会保留重要信息:
关于Phi-3的看法
- 微软的Phi系列模型,主打数据至上 。目的是做出最优的数据(data-optimal regime),使得模型取得同参数量下最好的效果;下图展示了Phi-3相较LLaMa2的Scaling Law曲线差异,Phi-3明显斜率更大,这是data-optimal regime带来的效果;
- 数据至上,体现在数据构成、训练策略两方面 。在数据组成上,Phi系列模型利用GPT对web data进行质量过滤,同时使用GPT来合成高质量的textbooks数据(细节可看这篇博文);在训练策略上,Phi-3用了分阶段训练的策略(Gemma[8]和MiniCPM[9]也用了类似的策略),1阶段主要在未经严格过滤的web data上训练,目的是教会模型general knowledge + language understanding,2阶段则使用严格过滤的web data + 合成数据,目的是教会模型logical reasoning + 特定skill;
- SLMs与LLMs最大的不同在于,SLMs是在参数量受限下的选择问题 。由于参数量受限,Phi-3做了一些取舍,1是放弃了某些information(例如某天英超联赛的赛况),而保留能提供knowledge、增强reasoning的数据;2是在Mini版模型中,放弃了multilingual,专注于英文(但7B版模型尝试加入multilingual能力);
- Benchmark上接近GPT3.5,说明Phi-3-Mini真的接近GPT3.5吗?No。 如果把GPT3.5当作是日常工作/生活的助手,那么Phi-3-Mini显然无法担当此任。第一,Phi-3-Mini不支持多语种;第二,论文指出Phi-3受参数量限制,存储不了太多fact,因此factuality knowledge上表现一般,但这是日常助手很重要的一种能力;而且,以笔者不严谨的直觉来看,较小参数量的模型在robustness和generalization上,始终会有能力不足的风险,这也限制了其作为日常助手的应用价值;
- SLMs有更适合的应用场景 。SLMs的诞生,不是为了“干掉”LLMs,而是为AI应用提供了另一类选择。微软的blog[10]中提到,SLMs适合三种场景,1是推理资源受限的场景,包括端侧和离线场景,随着开源SLMs的能力增强,在手机、电脑、车上会有更智能的本地AI应用;2是对低latency要求严格的场景;3是成本受限的use case,尤其是那些simpler tasks。笔者再补充一点,SLMs也适用于垂类应用(但要经过微调),因为垂直行业/任务有特定的知识、特定的工作流,直觉上不需要非常大的参数量,因此经过微调,SLMs有潜力战胜LLMs,RAD-Phi2就是一个放射医学领域的例子。
一起交流SLMs
笔者建了一个SLMs交流群,欢迎感兴趣的读者加入,我们可以一起讨论SLMs的技术和应用。加笔者微信(duanyu027),备注“SLMs”,我将拉你入群。
关注笔者
最后,欢迎关注笔者的公众号,了解更多有趣/有用的NLP知识:)
往期文章推荐
参考资料
[1] Phi-3 Technical Report: A Highly Capable Language Model Locally on Your Phone: https://arxiv.org/pdf/2404.14219
[2] Phi-3-mini-4K-instruct: https://hf-mirror.com/microsoft/Phi-3-mini-4k-instruct
[3] Phi-3-mini-128K-instruct: https://hf-mirror.com/microsoft/Phi-3-mini-128k-instruct
[4] ollama: https://github.com/ollama/ollama
[5] open webui: https://github.com/open-webui/open-webui
[6] 智谱GLM: https://chatglm.cn/
[7] Kimi: https://kimi.moonshot.cn/
[8] Gemma: https://arxiv.org/pdf/2403.08295
[9] MiniCPM: https://arxiv.org/pdf/2404.06395
[10] phi-3 blog: https://azure.microsoft.com/en-us/blog/introducing-phi-3-redefining-whats-possible-with-slms/
