AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

极客说|微软新模型:Phi-4 来了

  • 2024-12-27
    北京
  • 本文字数:4027 字

    阅读完需:约 13 分钟

大小:1.78M时长:10:23
极客说|微软新模型:Phi-4 来了

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_InfoQ_KeyPart1 = "Microsoft”
步骤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 为小参数量模型的发展树立了新的标杆,证明了通过专注于数据质量和训练策略,即使在较小的参数规模下,也能实现卓越的性能


参考论文:

/https://www.microsoft.com/en-us/research/uploads/prod/2024/12/P4TechReport.pdf


更多精彩内容请点击下载

《Azure OpenAI 生成式人工智能白皮书》

《利用 AI 和 DevOps 重新定义开发人员体验》

《SAP on Microsoft Cloud》

《智能GitHub Copilot副驾驶®提示和技巧》

2024-12-27 16:1012421

评论

发布
暂无评论
发现更多内容

技术干货丨隐私保护下的迁移算法

华为云开发者联盟

迁移

Vue 3 组件开发:搭建基于SpreadJS的表格编辑系统(功能拓展)

葡萄城技术团队

Ansible 新手指南 - 如何批量管理 NGINX

东风微鸣

ansible

抄答案就是了,两套详细的设计方案,解决头疼的支付掉单问题

楼下小黑哥

支付系统 架构设计

微服务可能失败的11个原因

xcbeyond

微服务 方法论

在线自习室场景爆发,在线教育平台用户时间争夺战打响

ZEGO即构

ROMA Compose:ROMA的新武器

华为云开发者联盟

数据 API ROMA

CSS01 - 引入方式

Mr.Cactus

html/css

CSS03 - 常用字体样式

Mr.Cactus

html/css

CSS04 - 常用外观属性

Mr.Cactus

html/css

企业架构培训感悟

Man

企业架构 中台战略

低代码和零代码快速开发崛起,迎来普通人开发软件的时代!

J2PaaS低代码平台

可用性、可维护性、可靠性有什么区别?

禅道项目管理

DevOps 可用性 质量保障 可靠性

CSS02 - 选择器

Mr.Cactus

html/css

低成本构建音视频质量监控平台的最佳路径

华为云开发者联盟

数据中台 数据湖 云原生 RTC 华为云

做运维,送你7个常用的服务器资源监控工具

华为云开发者联盟

工具 监控 内存 服务器 系统

Kubernetes 疑难问题排查 - 10s 延迟

东风微鸣

Kubernetes

一文教你学会Hive视图和索引

大数据老哥

大数据 hadoop hive

在NGINX中根据用户真实IP限制访问

东风微鸣

uni-app实现实时消息SDK插件

anyRTC开发者

uni-app 音视频 WebRTC 跨平台 sdk

架构师训练营第十三周

我是谁

架构师训练营第 1 期

一周信创舆情观察(2020.12.28~2021.1.3)

统小信uos

<译文>NGINX 实战手册 - 控制访问

东风微鸣

大作业一

Geek_83908e

架构师一期

云算力系统APP开发|云算力软件开发

系统开发

应用案例| 基于Volcano 的锐天大规模离线高性能计算生产实践

华为云原生团队

云计算 大数据 AI 云原生 批量计算

比易宝betBEB平台获278万美元约合1807万元融资

DT极客

RocketMQ如何保证消息顺序性

废材姑娘

RocketMQ

Spring 事务,你真的用对了吗(下篇)?

废材姑娘

Java Spring Framework

Java内存模型精讲

伯阳

Java 后端 多线程 多线程与高并发 Java内存模型

详解 Flink 容器化环境下的 OOM Killed

Apache Flink

flink 流计算

极客说|微软新模型:Phi-4 来了_微软_微软中国MSDN_InfoQ精选文章