作者:魏新宇 - 微软 AI 全球黑带高级技术专家
「极客说」 是一档专注 AI 时代开发者分享的专栏,我们邀请来自微软以及技术社区专家,带来最前沿的技术干货与实践经验。在这里,您将看到深度教程、最佳实践和创新解决方案。关注「极客说」,与行业顶尖专家一起探索科技的无限可能!
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_CSDN_KeyPart3 = "Developer”步骤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 训练过程中的一大创新:
-
原理:通过识别在生成过程中对答案正确性有重大影响的关键 Token,针对性地优化模型在这些 Token 上的预测。
-
优势:
-
提高训练效率:将优化重点放在对结果影响最大的部分,事半功倍。
-
改善模型性能:有助于模型在关键决策点上做出正确选择,提高整体输出质量。
-
改进的直接偏好优化(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 为小参数量模型的发展树立了新的标杆,证明了通过专注于数据质量和训练策略,即使在较小的参数规模下,也能实现卓越的性能。
参考论文:http:///https://www.microsoft.com/en-us/research/uploads/prod/2024/12/P4TechReport.pdf
资料推荐
智能 GitHub Copilot 副驾驶® 提示和技巧https://info.microsoft.com/GC-DevOps-CNTNT-FY25-08Aug-23-Smart-GitHub-Copilot-Tips-and-Tricks-SRGCM12801_LP01-Registration---Form-in-Body.html
Azure OpenAI 生成式人工智能白皮书https://info.microsoft.com/GC-AzureAI-CNTNT-FY25-08Aug-21-Azure-OpenAI-Generative-Artificial-Intelligence-White-Paper-SRGCM12789_LP01-Registration---Form-in-Body.html
利用 AI 和 DevOps 重新定义开发人员体验https://info.microsoft.com/ww-landing-redefining-the-developer-experience.html?lcid=ZH-CN
SAP on Microsoft Cloudhttps://info.microsoft.com/GC-SAP-CNTNT-FY25-08Aug-27-SAP-on-Microsoft-Cloud-SRGCM12804_LP01-Registration---Form-in-Body.html