Phi-4 在仅有 140 亿(14B) 个参数的情况下,通过创新的训练方法和高质量的数据,展现出了媲美甚至超越一些更大规模模型的性能。本文将详细介绍 Phi-4 的架构、特点、训练方法,以及在实际应用和评测基准中的表现。
后续 Phi-4 的测试会放到这个 repo 的 LLM 目录下:
https://github.com/xinyuwei-david/david-share.git
看指标测能力
下面测三道题,对比 o1 和 Phi-4。
第一题
Phi-4
o1
第二题
Phi-4
o1
第三题
Phi-4
o1
要求五个连续偶数的平均数,已知它们的和为90,下面我们逐步解答。 //MSDN_WeChat_KeyPart2 = "Love”
步骤1:设未知数
设这五个连续的偶数为:
第一个偶数:( n - 4 )
第二个偶数:( n - 2 )
第三个偶数:( n )
第四个偶数:( n + 2 )
第五个偶数:( n + 4 )
(因为偶数之间相差2,所以相邻的偶数可以这样表示)
步骤2:列方程求和
根据题目,五个数的和为90:
[
(n - 4) + (n - 2) + n + (n + 2) + (n + 4) = 90
]
步骤3:简化方程
合并同类项:
[
5n = 90
]
步骤4:求解 n
[
n = \frac{90}{5} = 18
]
步骤5:求出五个偶数
第一个偶数:( 18 - 4 = 14 )
第二个偶数:( 18 - 2 = 16 )
第三个偶数:( 18 )
第四个偶数:( 18 + 2 = 20 )
第五个偶数:( 18 + 4 = 22 )
步骤6:计算平均数
平均数等于总和除以数量:
[
\text{平均数} = \frac{14 + 16 + 18 + 20 + 22}{5} = \frac{90}{5} = 18
]
答案:这五个连续的偶数的平均数是 18。
这样看的话,Phi-4 的推理能力还是可以的。
Phi-4 模型架构
基于 Transformer 的解码器架构
Phi-4 采用了基于 Transformer 的解码器(Decoder-only) 架构,与 GPT 系列模型类似。这种架构利用自注意力机制(Self-Attention Mechanism),能够有效捕捉文本序列中的长期依赖关系,擅长处理自然语言生成任务。
参数规模与层数
参数总量:140 亿(14B) 个参数。
模型层数:40层
上下文长度
初始上下文长度:4,096 个 Token。
中期训练扩展:在中期训练阶段,Phi-4 的上下文长度扩展到了 16,000 个 Token(16K),提高了模型处理长文本的能力。
词汇表与分词器
分词器:采用了 OpenAI 的 tiktoken 分词器,支持多语言,并具有更好的分词效果。
词汇表大小:100,352,包括了一些预留的未使用 Token。
注意力机制与位置编码
全局注意力机制
Phi-4 使用了 全注意力机制(Full Attention),即对整个上下文序列进行自注意力计算。这与前代模型不同,Phi-3-medium 采用了 2,048 Token 的滑动窗口,而 Phi-4 则直接对 4,096 Token(初始)和 16,000 Token(扩展后)的上下文进行全局注意力计算,提高了模型对长距离依赖的捕捉能力。
旋转位置编码(RoPE)
为了支持更长的上下文长度,Phi-4 在中期训练中调整了 旋转位置编码(Rotary Position Embeddings, RoPE) 的基频:
基频调整:将 RoPE 的基频增加到 250,000,以适应 16K 的上下文长度。
作用:RoPE 有助于模型在长序列中保持位置编码的有效性,使得模型能够在更长的文本中保持良好的性能。
训练策略与方法
数据质量优先的理念
Phi-4 的训练策略以 数据质量为核心。与其他主要使用互联网有机数据(如网页内容、代码等)进行预训练的模型不同,Phi-4 在整个训练过程中战略性地引入了 合成数据。
合成数据的生成与应用
合成数据在 Phi-4 的预训练和中期训练中扮演了关键角色:
多种数据生成技术:
多代理提示(Multi-Agent Prompting):利用多个语言模型或代理共同生成数据,丰富了数据的多样性。
自我修正流程(Self-Revision Workflows):模型生成初始输出后,进行自我评估和修正,迭代提升输出质量。
指令反转(Instruction Reversal):从已有的输出生成对应的输入指令,增强模型的指令理解和生成能力。
合成数据的优势:
结构化和渐进式学习:合成数据可以精确控制难度和内容,逐步引导模型学习复杂的推理和问题解决能力。
提高训练效率:合成数据的生成可以针对模型的薄弱环节,提供针对性的训练数据。
避免数据污染:由于合成数据是生成的,避免了训练数据中包含评测集内容的风险。
有机数据的精细筛选和过滤
除了合成数据,Phi-4 还注重从多种来源精心挑选和过滤高质量的 有机数据:
数据来源:包括 Web 内容、书籍、代码库、学术论文等。
数据过滤:
去除低质量内容:使用自动化和手动方法,过滤掉无意义、错误、重复或有害的内容。
防止数据污染:采用混合 n-gram 算法(13-gram 和 7-gram)进行去重和去污染,确保训练数据不包含评测集的内容。
数据混合策略
Phi-4 在训练数据的组成上进行了优化,具体配比如下:
合成数据:占 40%。
网络改写数据(Web Rewrites):占 15%,对高质量的 Web 内容进行改写,生成新的训练样本。
有机 Web 数据:占 15%,精选过的有价值的 Web 内容。
代码数据:占 20%,包括公开代码库和生成的代码合成数据。
目标获取数据(Targeted Acquisitions):占 10%,包括学术论文、专业书籍等高价值内容。
多阶段训练流程
预训练阶段:
目标:建立模型的基础语言理解和生成能力。
数据量:约 10 万亿(10T) 个 Token。
中期训练阶段:
目标:扩展上下文长度,提升长文本处理能力。
数据量:2,500 亿(250B) 个 Token。
后训练阶段(微调):
监督微调(SFT):使用高质量的多领域数据进行微调,改进模型的指令遵循能力和回答质量。
直接偏好优化(DPO):利用 关键 Token 搜索(Pivotal Token Search, PTS) 等方法,进一步优化模型的输出。
创新的训练技术
关键 Token 搜索(Pivotal Token Search, PTS)
PTS 方法是 Phi-4 训练过程中的一大创新:
优势:
提高训练效率:将优化重点放在对结果影响最大的部分,事半功倍。
改善模型性能:有助于模型在关键决策点上做出正确选择,提高整体输出质量。
改进的直接偏好优化(DPO)
DPO 方法:直接使用偏好数据进行优化,使模型的输出更符合人类的偏好。
创新点:
结合 PTS:在 DPO 中引入 PTS 生成的训练数据对,提高优化效果。
评估指标:通过对模型在关键 Token 上的表现进行评估,更精确地衡量优化效果。
模型特点与优势
卓越的性能
小模型,大能力:虽然参数规模仅为 14B,但 Phi-4 在多个评测基准上表现出色,尤其是在推理和问题解决任务上。
优异的推理能力
数学和科学问题解决:在 GPQA、MATH 等基准测试中,Phi-4 的得分甚至超过了其教师模型 GPT-4o。
长上下文处理能力
上下文长度扩展:通过在中期训练中将上下文长度扩展到 16,000 个 Token,Phi-4 能够更有效地处理长文本和长距离依赖。
多语言支持
覆盖多种语言:训练数据包括了 德语、西班牙语、法语、葡萄牙语、意大利语、印地语、日语 等多种语言。
跨语言能力:在翻译、跨语言问答等任务上表现出色。
安全性和合规性
负责任的 AI 原则:开发过程中严格遵循微软的负责任 AI 原则,注重模型的安全性和道德性。
数据去污染和隐私保护:采用严格的数据去重和过滤策略,防止训练数据中包含敏感内容。
评测基准与性能表现
外部评测基准
Phi-4 在多个公开的评测基准上展现了领先的性能:
MMLU(多任务语言理解):在复杂的多任务理解测试中取得了优异的成绩。
GPQA(研究生水平的 STEM 问答):在高难度的 STEM 问答中表现突出,得分超过了一些更大规模的模型。
MATH(数学竞赛):在数学问题解决方面,Phi-4 展现了强大的推理和计算能力。
HumanEval / HumanEval+(代码生成):在代码生成和理解任务中,Phi-4 的得分超越了同规模的模型,甚至接近更大规模的模型。
内部评测套件(PhiBench)
为了深入了解模型的能力和不足,团队开发了专门的内部评测套件 PhiBench:
指导模型优化:通过对 PhiBench 的成绩分析,团队能够有针对性地改进模型。
安全性与责任
严格的安全对齐策略
Phi-4 的开发遵循微软的 负责任 AI 原则,在训练和微调过程中注重模型的安全性和道德性:
防范有害内容:通过在后训练阶段加入安全微调数据,减少模型生成不当内容的概率。
红队测试和自动评估:进行了广泛的红队测试和自动化的安全评估,覆盖数十种潜在的风险类别。
数据去污染和防止过拟合
强化的数据去污染策略:使用混合的 13-gram 和 7-gram 算法,去除训练数据中可能与评测基准重叠的内容,防止模型过拟合。
训练资源与时间
训练时间
虽然官方报告未明确指出 Phi-4 的总训练时间,但考虑到:
模型规模:14B 参数。
训练数据量:预训练阶段 10T Token,中期训练 250B Token。
可以推测,整个训练过程耗费了相当长的时间。
GPU 资源消耗
GPUs | 1920 H100-80G |
Training time | 21 days |
Training data | 9.8T tokens |
应用与局限性
应用场景
问答系统:Phi-4 在复杂的问答任务中表现出色,适用于各类智能问答应用。
代码生成与理解:在编程任务中有优异表现,可用于代码辅导、自动生成和调试等场景。
多语言翻译与处理:支持多种语言,适用于全球化的语言服务。
潜在局限性
知识截止性:模型的知识截止于训练数据,对于训练后发生的事件可能不了解。
长序列挑战:虽然上下文长度扩展到了 16K,但在处理更长的序列时,可能仍然存在挑战。
风险控制:尽管采取了严格的安全措施,但模型可能仍会受到对抗性攻击或意外生成不当内容。
Phi-4 的成功展示了数据质量和训练策略在大型语言模型发展中的重要性。通过创新的合成数据生成方法、精心的训练数据混合策略以及先进的训练技术,Phi-4 在保持较小参数规模的情况下,实现了卓越的性能:
推理能力突出:在数学、科学和编程等领域表现优异。
长文本处理:扩展的上下文长度,使模型在长文本处理任务中具有优势。
安全和责任:严格遵循负责任 AI 原则,确保模型的安全性和道德性。
Phi-4 为小参数量模型的发展树立了新的标杆,证明了通过专注于数据质量和训练策略,即使在较小的参数规模下,也能实现卓越的性能。
参考论文:
/https://www.microsoft.com/en-us/research/uploads/prod/2024/12/P4TechReport.pdf
魏新宇
微软 AI 全球黑带高级技术专家
著有《大语言模型原理、训练及应用》《金融级 IT 架构与运维》《OpenShift 在企业中的实践》v1&v2、《云原生应用构建》。