过去几年,借助Scaling Laws的魔力,预训练的数据集不断增大,使得大模型的参数量也可以越做越大,从五年前的数十亿参数已经成长到今天的万亿级,在各个自然语言处理任务上的性能也越来越好。
但Scaling Laws的魔法只能施加在「固定」的数据源上,即模型如果能够以一种新的方式与数据进行交互的话,就能实现「小模型战胜大模型」的效果。
微软此前关于Phi系列模型的研究工作,已经证实了「基于LLM的web数据过滤」和「LLM合成数据」的结合,使得2.7B参数量的Phi-2可以匹敌25倍参数量大模型的性能。
最近,微软再次升级了Phi-3系列模型,最小尺寸的phi-3-mini(3.8B参数量)在更大、更干净的数据集(包含3.3T个tokens)上进行训练,在各大公开的学术基准和内部测试中,实现了与Mixtral 8x7B和GPT-3.5等大尺寸模型的性能。
论文链接:https://arxiv.org/pdf/2404.14219.pdf
相比上一代模型,phi-3还进一步调整了其稳健性、安全性和聊天格式,并且还提供了一些针对4.8T个tokens训练的7B(phi-3-small)和14B模型(phi-3-medium)的初步参数缩放结果,两者的能力都明显高于phi-3-mini
phi-3-mini的尺寸也足够小,可以部署在手机上离线使用。
小模型也有大实力
phi-3-mini的基础模型的参数量为3.8B,采用Transformer解码器架构,默认上下文长度为4K,加长版(phi-3-mini-128K)通过LongRope技术将上下文扩展至128K
为了更好地服务于开源社区,phi-3-mini在构建时借鉴了Llama-2模型的块结构,并使用了相同分词器,词表大小为32064,也就意味着「Llama-2系列模型相关的包」可以直接适配到phi-3-mini上。
模型参数设置上,隐藏层维度为3072、具有32个头、总共32层,使用bfloat16训练了3.3T个tokens
phi-3-mini还针对聊天进行了微调,使用的模板为:
此外,研究人员还推出了phi-3-small模型,参数量为7B,利用tiktoken分词器以实现更佳的多语言分词性能,词汇量为100352,默认上下文长度为8K;该模型遵循7B模型类别的标准解码器架构,总共有32个层和4096个隐藏层维度,为了最小化KV缓存占用,模型还采用了分组查询注意力机制,每4个query共享1个key
此外,phi-3-small交替使用稠密注意力和块稀疏注意力层,以进一步减少KV缓存占用量,同时保持长上下文的检索性能;该模型还额外使用了10%的多语言数据。
手机端的强大语言模型
得益于phi-3-mini小巧的体积,在量化到4bit的情况下,仅占用大约1.8GB的内存。
研究人员在iPhone 14(搭载A16 Bionic芯片)上部署了量化后的phi-3-mini模型,在完全离线运行的状态下,实现了每秒12个tokens的超高性能。
训练方法
模型的训练遵循「Textbooks Are All You Need」的工作序列,利用高质量的训练数据来提升小型语言模型的性能,同时突破了标准的规模法则(scaling-laws):phi-3-mini仅用3.8B的总参数量,就能达到GPT-3.5或Mixtral等高性能模型的水平(Mixtral的总参数量为45B)。
模型的训练数据包括来自各种开放互联网源的经过严格筛选的网络数据,以及合成的LLM生成数据。
预训练分为两个不相交且连续的阶段:
第一阶段主要使用网络资源,主要目的是教导模型通用知识和语言理解的能力;
第二阶段结合了经过更严格筛选的网络数据(第一阶段使用的子集)和一些合成数据,教授模型逻辑推理和各种专业技能。
数据最优范围(Data Optimal Regime)
与以往在「计算最优范围」或「过度训练范围」训练语言模型的工作不同,研究人员主要关注在「特定规模下」的数据质量:通过校准训练数据,使其更接近小型模型的数据最优范围。
主要筛选网络数据以包含正确水平的「知识」能力,并保留更多可能提高模型「推理能力」的网页,例如英超联赛某一天的比赛结果可能对大模型来说算比较好的训练数据,但对phi-3-mini来说,则需要去除这类信息,以便为迷你尺寸模型的「推理」留出更多模型容量。
为了在更大尺寸的模型上验证数据质量,研究人员训练了一个14B尺寸的phi-3-medium模型,总共处理了4.8T个tokens(与phi-3-small相当),结果发现,某些性能指标从7B参数提升到14B参数时的改善,并没有从3.8B参数提升到7B参数时那么明显,可能意味着数据组合需要进一步优化,以便更好地适应14B参数模型的「数据最优状态」。
后处理
在phi-3-mini的训练后处理中,主要包括两个阶段:
1. 有监督微调(SFT)
SFT使用了经过精心策划的、跨多个不同领域的高质量数据,包括数学、编程、逻辑推理、对话、模型特性和安全性等,在训练初期只使用英语的样本。
2. 直接偏好优化(DPO)
DPO的数据则包括了聊天格式的数据、逻辑推理任务,以及负责任的人工智能(RAI)相关的工作。
研究人员利用DPO引导模型避免不良行为,主要方法是将这些不希望出现的结果标记为「拒绝」。
除了在数学、编程、逻辑推理、鲁棒性和安全性方面的提升外,训练后处理还使得语言模型转变成了一个用户可以高效且安全地进行交互的AI助手。
在长上下文版本phi-3-mini-128K中,首先是在模型训练的中期引入长上下文,然后在训练后处理阶段,同时使用SFT和DPO,进行长-短上下文混合的训练。
学术基准性能
研究人员在一系列公开基准测试中,对比了phi-2、Mistral-7b-v0.1、Mixtral-8x7b、Gemma 7B、Llama-3-instruct8b和GPT-3.5模型的常识推理、逻辑推理能力。
从结果来看,phi-3-mini模型以3.8b的体量超越了一众7B, 8B模型,甚至Mixtral(8*7b)都败下阵来,和GPT-3.5各有胜负,算是打了个平手。
同尺寸下,7b尺寸的Phi-3-small性能提升相当明显。
目前,评估语言模型的标准方法是使用少量样本提示(few-shot prompts),模型都是在温度设置为0的情况下进行评估。
安全性
Phi-3-mini的构建严格遵守了微软的负责任人工智能(AI)准则,整个开发过程囊括了在模型训练后进行安全对齐、通过红队策略进行测试、以及自动化的评估,覆盖了众多与负责任AI相关的潜在风险类别。
模型的训练过程中用到了一些提升模型有用性和无害性的数据集,其中部分基于先前研究的启发进行了调整,并结合了多个由微软内部生成的数据集,以针对训练后的安全处理中的负责任AI风险类别进行优化。
微软内部的独立红队对phi-3-mini进行了细致的审查,旨在训练后的阶段识别出进一步改进的空间;研究团队根据红队的反馈,精心挑选并创建了额外的数据集以解决问题,显著降低了模型生成有害回复的频率。
在内部进行的负责任AI基准测试中,与phi-2、Mistral-7b-v0.1、Gemma 7b和Llama-3-instruct-8b等模型相比,phi-3-mini-4k和phi-3-mini-128k展现出了更好的性能。
测试过程中,使用GPT-4来模拟五种不同类别的多轮对话,并以此来评估模型的回复。
测试中的「无根据性」(ungroundedness)评分从0(fully grounded)到4(not grounded),用来衡量模型回应的信息是否与给定的提示相关。
在其他风险类别中,模型的回应根据其有害性的严重程度被评分,范围从0(无伤害)到7(极度伤害);缺陷率(DR-x)通过计算得分等于或超过x严重度的样本比例来得出。
Phi-3-mini的缺陷
在大型语言模型的能力方面,phi-3-mini虽然在语言理解力和推理能力上与更大型的模型旗鼓相当,但由于其规模的限制,在处理某些特定任务时仍然存在一些固有的局限性。
简单来说,这个模型并没有足够的内存空间去存储海量的事实性知识,在一些需要大量背景知识的任务上表现得尤为明显,比如在TriviaQA问答任务中的表现就不够好,但这个问题可以通过与搜索引擎的结合使用来解决。
左:无搜索;右:有搜索
模型的容量限制还体现在将语言限制为英语,对于小型语言模型来说,探索其多语言能力是未来一个重要的发展方向,通过增加多语言数据,目前已经取得了一些初步的积极结果。
此外,研究人员表示,虽然花了很大的努力让模型遵循负责任人工智能(RAI)的原则,但和其他大多数大型语言模型一样,phi-3-mini在处理事实性错误(幻觉)、偏见的再现或放大、不当内容生成以及安全问题等方面仍然存在挑战。
通过使用精心策划的训练数据、针对性的后期训练调整,以及吸纳红队测试的反馈,已经在很大程度上缓解了这些问题,但要完全克服这些难题,仍然有很长的路要走,需要进行更多的研究和改进。