24年5月来自微软的工作 “Phi-3 Technical Report: A Highly Capable Language Model Locally on Your Phone”。
phi-3-mini,是微软一个 38 亿参数的语言模型,在 3.3 万亿个 token 上进行训练,其整体性能(通过学术基准和内部测试衡量)可与 Mixtral 8x7B 和 GPT-3.5 等模型相媲美(例如,phi-3-mini 在 MMLU 上达到 69%,在 MT-bench 上达到 8.38),尽管它足够小可以部署在手机上。创新完全在训练数据集,它是用于 phi-2 的数据集放大版,由经过严格过滤的公开网络数据和合成数据组成。该模型还进一步针对稳健性、安全性和聊天格式进行了调整。还提供一些初始参数缩放结果,这些模型分别针对 4.8T tokens 进行了训练,分别为 7B 和 14B,称为 phi-3-small 和 phi-3-medium,两者的性能都明显优于 phi-3-mini(例如,在 MMLU 上分别为 75% 和 78%,在 MT-bench 上分别为 8.7% 和 8.9%)。此外,还推出 phi-3-vision,这是一个基于 phi-3-mini 的 42 亿参数模型,具有强大的图像和文本提示推理能力。
在之前对 phi 模型 [GZA+23、LBE+23、JBA+23] 的研究中,已经证明基于 LLM 的公开网络数据过滤和 LLM 创建的合成数据相结合,可以使较小的语言模型获得通常只在更大的模型中才能看到的性能。例如,之前使用此数据配方训练的模型 phi-2(27 亿个参数)的性能与使用常规数据训练的 25 倍大模型的性能相当。本报告介绍了一个新模型 phi-3-mini(38 亿个参数),该模型在 phi-2 所用更大、更高级的数据集版本上针对 3.3T 个tokens进行训练。由于尺寸小巧,phi-3-mini 可以在现代手机上轻松进行本地推理(如图所示:4 位量化 phi-3-mini 在搭载 A16 Bionic 芯片的 iPhone 上本地运行,每秒产生超过 12 个tokens),而且它的质量似乎与 Mixtral 8x7B [JSR+24] 和 GPT-3.5 等模型不相上下。
phi-3-mini 模型是一种 Transformer 解码器架构 [VSP+17],默认上下文长度为 4K。还通过 LongRope [DZZ+24a] 引入了一个长上下文版本,将上下文长度扩展至 128K,称为 phi-3-mini-128K。
为了最大限度地造福开源社区,phi-3-mini 建立在与 Llama-2 [TLI 23] 类似的块结构之上,并使用相同的token化器,词汇量为 32064 。这意味着为 Llama-2 系列模型开发的所有软件包,都可以直接适用于 phi-3-mini。该模型使用 3072 个隐藏维度、32 个头和 32 个层。用 bfloat16 训练了总共 3.3T 个tokens。
phi-3-small 模型(7B 参数)利用 tiktoken token化器(为了更好地进行多语言token化),词汇量为 1003522,默认上下文长度为 8192。它遵循 7B 模型类的标准解码器架构,具有 32 个头、32 层和 4096 的隐藏大小。从 GELU 激活切换到 GEGLU,并使用“最大更新参数化” (muP) [?] 来调整小型代理(proxy)模型超参并将它们迁移到目标 7B 模型。这些有助于确保更好的性能和训练稳定性。
此外,该模型利用分组查询注意,其中 4 个Q共享 1 个K。为了优化训练和推理速度,设计一个块稀疏注意(block sparse attention)模块。对于每个注意头,块稀疏注意在 KV 缓存上强制执行不同的稀疏模式。这确保了对于给定的稀疏度选择,所有tokens都由不同的头处理。
如图所示,上下文随后在注意之间被有效地划分和控制,同时显著减少 KV 缓存。为了从块稀疏设计中实现实际部署加速,为训练和推理实现高效而灵活的内核。对于训练,基于 Flash Attention [DFE+22] 构建一个 triton 内核。对于推理,为预填充阶段实现一个内核,并在 vLLM 中扩展分页注意内核以用于解码阶段 [KLZ+23]。最后,在 phi-3-small 架构中,交替使用密集注意层和块稀疏注意层,优化 KV 缓存存储,同时保持长上下文检索性能。该模型还使用一个附加10% 的多语言数据。
由于规模较小,phi-3-mini 可以量化为 4 位,因此仅占用 ≈ 1.8GB 的内存。通过在 iPhone 14 上部署 phi-3-mini 来测试量化模型,该模型在设备上原生运行 A16 Bionic 芯片,完全离线,每秒可实现超过 12 个tokens。
遵循“教科书就是你所需要的一切” [GZA+23] 中发起的工作顺序,这些工作利用高质量的训练数据来提高小型语言模型的性能,并偏离标准的缩放定律。这项工作表明,这种方法可以达到 GPT-3.5 或 Mixtral 等高性能模型的水平,而总参数只有 38 亿(例如,Mixtral 总共有 450 亿个参数)。训练数据包括来自各种开放互联网来源的经过严格过滤的公开网络数据(根据“教育水平”),以及 LLM 生成的合成数据。预训练分两个不相交且连续的阶段进行:阶段 1 主要包括网络资源,旨在教授模型一般知识和语言理解;阶段 2 将经过更多严格过滤的网络数据(阶段 1 中使用的子集)与一些合成数据合并,这些数据教授模型逻辑推理和各种小众技能。
与之前在“计算最优模式” [HBM 22] 或“过度训练模式”中训练语言模型的工作不同,这里主要关注给定规模的数据质量。尝试标定训练数据,使其更接近小型模型的“数据最优”模式。具体来说,会过滤公开的网络数据这样包含“知识”的正确级别,并保留更多可能提高模型“推理能力”的网页。例如,某一天英超联赛的比赛结果可能是前沿模型的良好训练数据,但需要删除此类信息,以便为迷你模型留下更多的“推理”模型容量。在下图中,该方法与 Llama-2 进行比较。
为了在更大的模型上测试数据,还使用与 phi-3-mini 相同的token化器和架构训练了 phi-3-medium,这是一个具有 14B 参数的模型,并且使用相同的数据训练了稍多一些epochs(与 phi-3-small 一样,总共 4.8T 个tokens)。该模型有 40 个头和 40 个层,嵌入维度为 5120。一些基准测试从 7B 到 14B 的改进远低于从 3.8B 到 7B 的改进,这可能表明数据混合需要进一步工作才能达到 14B 参数模型的“数据最优状态”。
phi-3-mini 的后训练经历了两个阶段,包括监督微调 (SFT) 和直接偏好优化 (DPO)。SFT 利用来自不同领域的精心策划的高质量数据,例如数学、编码、推理、对话、模型身份和安全。SFT 数据组合从使用纯英语示例开始。DPO 数据涵盖聊天格式数据、推理和负责任AI (RAI) 工作。用 DPO 来引导模型远离不良行为,方法是将这些输出用作“被拒绝”的响应。除了数学、编码、推理、稳健性和安全性方面的改进之外,后训练还将语言模型转变为用户可以高效安全地与之交互的 AI 助手。
作为后训练过程的一部分,开发 phi-3-mini 的长上下文版本,将上下文长度限制扩大到 128K,而不是 4K。总体而言,128K 模型质量与 4K 长度版本相当,同时能够处理长上下文任务。长上下文扩展分两个阶段进行,包括长上下文中期训练和使用 SFT 和 DPO 的长短混合后训练。
在 LLM 能力方面,虽然 phi-3-mini 模型实现了与大型模型类似的语言理解和推理能力,但在某些任务中,它仍然受到其规模的根本限制。该模型根本没有能力存储太多“事实知识”,例如,在 TriviaQA 上的表现不佳。但是这种弱点可以通过搜索引擎的增强来解决。在图中展示了一个使用 HuggingFace 默认 Chat-UI 和 phi-3-mini 的示例。与模型容量相关的另一个弱点是语言限制为英语。探索小语言模型的多语言能力是下一步的重要工作,通过包含更多的多语言数据,phi-3-small 上取得了一些初步的有希望的结果。
尽管努力进行 RAI,但与大多数 LLM 一样,仍然存在事实不准确(或幻觉)、偏见的再现或放大、不适当的内容生成和安全问题方面的挑战。使用精心挑选的训练数据、有针对性的训练后以及红队洞察的改进,可以显著缓解各个方面的问题。
Phi-3-Vision(4.2B 参数)是一个多模态模型,旨在将图像和文本提示作为输入进行处理,然后生成文本输出。该模型由两个主要组件组成:图像编码器,即 CLIP ViT-L/14 [RKH+21] 和Transformer解码器,即 phi-3-mini-128K-instruct。图像编码器提取视觉tokens后,会以交错的方式将其与文本tokens组合在一起(图像和文本tokens没有特定顺序)。为了适应高分辨率图像和各种宽高比,采用动态裁剪策略 [DZZ+24b] 将输入图像分割成二维块数组,其中块的tokens连接在一起表示整个图像。
Phi-3-Vision 模型使用多样化数据集进行预训练阶段,该数据集由交错的图像-文本文档(例如 [LST+24])、来自 FLD-5B [XWX+24] 的图像-文本对、从 PDF 文件的光学字符识别 (OCR) 获得的合成数据、用于图表/表格理解的数据集和纯文本数据组成。预测下一个token的目标专门用于文本tokens,而在此阶段忽略与图像tokens相关的任何损失。预训练过程涉及总共 0.5T 个tokens,包括视觉和文本元素。在预训练阶段,最大图像分辨率上限为 1344 × 1344,因为大多数训练图像都小于此分辨率。
Phi-3-Vision 模型包含两个后训练阶段:监督微调 (SFT) 和直接偏好优化 (DPO)。对于 SFT,利用文本 SFT 数据集、公共多模态指令调整数据集以及自己构建的大规模多模态指令调整数据集,涵盖各种领域和任务,例如一般自然图像理解、图表/表格/图理解/推理、PowerPoint 理解和模型安全。多模态 SFT 数据总共约有 150 亿个 token。对于 DPO,主要使用文本 DPO 数据集和相对小规模的多模态 DPO 数据集。对于这两个阶段,联合训练多模态任务和纯文本任务,以便模型能够实现多模态推理,同时尽可能保持语言能力。
存在某些局限性,特别是在需要高级推理能力的问题上。此外,据观察,该模型偶尔会产生没有根据的输出,这使得它在金融等敏感领域可能不可靠。
从负责任人工智能的角度来看,虽然安全的后期训练取得了重大进展,但Phi-3-Vision 偶尔会无法避免回答有害或敏感的问题。这种情况的例子包括解密特定类型的验证码和描述包含虚假信息或幻觉的欺诈图像。这个问题,部分源于在训练过程中使用正常指令调整数据集获得的能力(例如 OCR),这可以看作是有用性和无害性之间的权衡。展望未来,需要进一步探索这一领域,以实现更好的平衡。