Phi-4技术报告解读及简单测评

科技   2025-01-12 00:01   北京  

 

作者:北方的郎
原文:https://zhuanlan.zhihu.com/p/17577753167

在人工智能的世界里,大型语言模型(LLMs)一直是科技巨头们竞相追逐的焦点。然而,微软研究院的最新成果——Phi-4,却以14B参数的“小身材”在众多巨无霸模型中脱颖而出。Phi-4不仅在STEM领域的问答能力上超越了其“老师”GPT-4,还在多个推理任务中表现优异。这一切的背后,是微软团队对数据质量的极致追求和创新性的合成数据生成技术。本文基于Phi-4的技术报告、模型说明及我的一些测试记录进行编写。

技术报告地址:https://arxiv.org/abs/2412.08905Huggingface:https://huggingface.co/microsoft/phi-4Ollama: https://ollama.com/library/phi4

1. 引言

近年来,大型语言模型的进步表明,数据质量的提升可以与传统的模型和数据集规模扩展相媲美,甚至超越后者。基于Phi系列模型(如Phi-1、Phi-2和Phi-3)的成功,微软团队推出了Phi-4,一个14B参数的模型。Phi-4通过引入创新的合成数据生成方法、优化训练课程和数据混合,以及在训练后引入新技术,进一步提升了小型语言模型的性能。

Phi-4的训练数据主要由合成数据构成,这些数据通过多智能体提示、自我修订工作流和指令反转等技术生成。这些方法使得模型在推理和问题解决能力上得到了显著提升,弥补了传统无监督数据集的不足。合成数据在Phi-4的训练后阶段也发挥了关键作用,通过拒绝采样和一种新颖的直接偏好优化(DPO)方法,进一步优化了模型的输出。

2. 数据处理方法

Phi-4的预训练阶段主要依赖于通过多种技术生成的合成数据集。此外,团队还采用了多种方法来过滤有机数据源,这些数据源既作为预训练的补充数据集,也作为生成合成数据的种子。

2.1 合成数据的目的

合成数据作为预训练的重要组成部分,越来越常见。Phi系列模型一直强调合成数据的重要性。与有机数据相比,合成数据有几个直接优势:

  • • 结构化和渐进式学习:在有机数据集中,标记之间的关系通常复杂且间接。相比之下,合成数据可以以易于消化的方式呈现挑战,帮助模型更有效地学习。
  • • 与推理上下文的对齐:合成数据通常更接近我们期望模型生成的输出格式。训练这种数据有助于将模型的预训练经验与其在推理过程中遇到的情景对齐。

2.2 预训练和中训练中的合成数据

团队创建了50种广泛的合成数据集,每种数据集依赖于不同的种子和多阶段提示程序,涵盖了各种主题、技能和交互性质,累计约4000B未加权标记。这些数据集通过多步骤提示工作流将种子转化为合成数据,包括重写、自我修订和指令反转等技术。

2.3 网络和问答数据的筛选

团队收集了数千万个高质量的有机问题和解决方案,并通过多种方式对这些数据进行筛选和增强。此外,团队还从网络收集了各种高质量的有机数据源,优先考虑推理密集和细致的材料(如学术论文、教育论坛和编程教程)。

3. 预训练细节

Phi-4的预训练阶段是其成功的关键之一。这一部分详细介绍了模型的架构、训练过程、数据组成以及中训练阶段的细节。通过这些精心设计的步骤,Phi-4在推理和问题解决能力上取得了显著提升。

3.1 模型架构

Phi-4基于一个仅解码器的Transformer架构,拥有14B参数。默认的上下文长度为4096个标记,但在中训练阶段,这一长度被扩展到16K。这种扩展使得模型能够处理更长的文本序列,从而在需要长上下文理解的任务中表现更好。

Phi-4的架构与Phi-3-medium非常相似,但有两个主要区别:

1.分词器:Phi-4使用了tiktoken分词器,以更好地支持多语言任务。

2.注意力机制:Phi-4在4K上下文长度上使用了全注意力机制,而不是Phi-3-medium中使用的2K滑动窗口。

3.2 训练过程

Phi-4的预训练过程持续了约10万亿标记。训练采用了线性预热和衰减计划,峰值学习率为0.0003,恒定权重衰减为0.1,全局批量大小为5760。这些超参数通过较短时间的运行进行插值调整,并在学习率预热阶段进行了压力测试以确保稳定性。

预训练后,模型进入中训练阶段,将上下文长度从4K扩展到16K。这一阶段的训练使用了2500亿标记,并将rope位置编码的基础频率增加到250K。中训练阶段的最大学习率比预训练阶段降低了10倍。

3.3 数据组成

Phi-4的预训练数据主要由合成数据、网络重写数据、过滤后的网络数据、目标获取的有机数据和代码数据组成。团队通过多次消融实验,确定了最佳的数据混合比例。

  • • 合成数据:占总训练标记的40%。这些数据通过多种技术生成,涵盖了广泛的推理和问题解决任务。
  • • 网络重写数据:占总训练标记的15%。这些数据是对网络内容的直接重写,保留了原始信息的同时增加了推理深度。
  • • 过滤后的网络数据:占总训练标记的15%。这些数据经过严格筛选,确保其推理密集和知识丰富。
  • • 代码数据:占总训练标记的20%。这些数据包括合成代码和原始代码,帮助模型在编程任务中表现更好。
  • • 目标获取的有机数据:占总训练标记的10%。这些数据来自学术论文、书籍和论坛,提供了高质量的知识来源。

3.4 中训练(Midtraining)细节

中训练阶段的主要目标是将模型的上下文长度从4K扩展到16K。团队进行了多次消融实验,研究了不同数据源对长上下文性能的影响。实验表明,使用自然长上下文的数据源比人工创建的长上下文数据表现更好。

为了优化长上下文性能,团队对高质量的非合成数据集(如学术数据、书籍和代码数据)进行了进一步筛选,分离出长度超过8K的样本,并对长度超过16K的数据子集进行了加权。此外,团队还创建了新的合成数据集,确保其满足大于4K序列的要求。

最终的中训练数据混合包括30%的新筛选的长上下文数据和70%的预训练阶段的数据。为了适应更长的上下文,团队将rope位置编码的基础频率增加到250K,并将最大学习率降低了10倍。

3.5 长上下文性能评估

为了有效评估模型的长上下文能力,团队采用了HELMET评估套件中的多个任务。这些任务包括:

  • • 召回:从随机生成的长JSON文件中检索特定键对应的值。
  • • RAG:基于多个检索和打乱的维基百科文档回答问题。
  • • 重排序:对给定查询和多个检索文档进行重排序。
  • • ICL:多轮上下文学习任务。
  • • QA:基于长文档回答问题。
  • • 摘要:对长法律文档进行摘要。

在这些任务中,Phi-4在8K和16K上下文长度下均表现出色,尤其是在召回和RAG任务中表现尤为突出

4. 训练后处理

训练后处理是Phi-4开发过程中的关键环节,旨在将预训练的语言模型转化为用户可以安全交互的AI助手。这一阶段通过监督微调(SFT)、直接偏好优化(DPO)以及关键标记搜索(PTS)等技术,进一步优化模型的输出,确保其在推理、编码、对话等任务中的表现更加精准和可靠。

4.1 监督微调(SFT)

监督微调是训练后处理的第一步,目的是让模型更好地遵循指令并生成符合用户期望的响应。Phi-4在这一阶段使用了约80亿标记的数据,涵盖了数学、编码、推理、对话、模型身份和安全等多个领域。此外,团队还加入了40种语言的多语言数据,以提升模型的国际化能力。

4.2 直接偏好优化(DPO)

直接偏好优化(DPO)是训练后处理的第二步,旨在通过人类偏好数据进一步优化模型的输出。DPO的核心思想是通过对比期望和不期望的输出对,引导模型生成更符合人类偏好的响应。

DPO数据生成:

  • • 数据来源:DPO数据涵盖了聊天格式数据、推理任务和负责任AI(RAI)数据。
  • • 数据对生成:通过拒绝采样和关键标记搜索(PTS)技术生成DPO对,确保数据对的质量和多样性。

DPO训练过程:

  • • 第一轮DPO:使用关键标记搜索(PTS)生成的DPO对进行训练,重点关注模型在关键标记上的表现。
  • • 第二轮DPO:使用更标准的偏好对进行训练,涵盖更广泛的场景和任务。

数据混合:

  • • 第一轮DPO数据:包括数学数据、Python代码数据、C++/Go/Java/JS/Rust代码数据以及通用多选题数据。
  • • 第二轮DPO数据:包括安全性数据、通用偏好对和准确性偏好对。

通过两轮DPO训练,Phi-4在数学、编码、推理和安全性任务中的表现得到了进一步提升。

4.3 关键标记搜索(PTS)

关键标记搜索(PTS)是Phi-4训练后处理中的一项创新技术,旨在通过识别和优化关键标记来提升模型的推理能力。关键标记是指那些对模型输出正确性有显著影响的单个标记。

PTS的核心思想:

  • • 关键标记识别:通过采样和评估,识别出那些显著影响模型输出正确性的标记。
  • • DPO对生成:将关键标记作为DPO对的核心,确保模型在生成这些标记时更加准确。

PTS算法:

1.采样和评估:对模型的输出进行多次采样,评估每个标记对输出正确性的影响。

2.递归分割:将输出序列递归分割,直到找到那些显著改变输出正确性的标记。

3.DPO对生成:将关键标记作为DPO对的核心,生成期望和不期望的输出对。

PTS的优势:

  • • 精准优化:通过聚焦关键标记,PTS能够更精准地优化模型的输出。
  • • 高效训练:PTS减少了训练数据中的噪声,提高了训练效率。

示例:

在一个数学问题中,模型生成的关键标记可能是“负号”或“等号”,这些标记对最终答案的正确性有显著影响。通过PTS,模型能够更准确地生成这些关键标记,从而提升整体表现。

4.4 幻觉缓解

幻觉是指模型在不知道答案时生成虚假信息的行为。为了缓解这一问题,团队在训练后处理阶段生成了专门的SFT和DPO数据,教导模型在遇到不确定的问题时拒绝回答,而不是生成虚假信息。

数据生成:

  • • 种子问题:从TriviaQA等数据集中提取的种子问题。
  • • GPT-4生成数据:包括正确答案、拒绝回答、虚假问题和拒绝回答虚假问题。
  • • SFT数据:在模型通常正确的问题上使用正确答案,在模型通常错误的问题上使用拒绝回答。
  • • DPO数据:在模型有时正确的问题上使用“正确答案 > 拒绝回答”,在模型有时错误的问题上使用“拒绝回答 > 错误答案”。

效果评估:

通过SimpleQA基准测试,团队评估了幻觉缓解的效果。结果显示,模型在遇到不确定的问题时更倾向于拒绝回答,而不是生成虚假信息。尽管SimpleQA的F1分数有所下降,但模型的行为更加用户友好和负责任。

4.5 训练后处理的消融实验

为了评估训练后处理各阶段的效果,团队进行了多次消融实验,比较了不同阶段的模型表现。

实验结果:

  • • SFT阶段:模型在大多数基准测试中表现显著提升,尤其是在数学和编码任务中。
  • • 第一轮DPO(PTS):在推理密集型任务(如GPQA和MATH)中表现尤为突出。
  • • 第二轮DPO(标准DPO):在涉及GPT-4评分的任务(如ArenaHard)中表现更好。
  • • 综合效果:两轮DPO训练的效果互补,显著提升了模型的整体表现。

具体数据:

  • • MMLU:从82.8提升到84.8。
  • • GPQA:从47.3提升到56.1。
  • • MATH:从77.1提升到80.4。
  • • HumanEval:从79.5提升到82.6。

5. 基准测试考虑

尽管学术基准测试被广泛用于衡量LLM的进展,但它们存在一些局限性,可能无法揭示模型的真实能力和弱点。为了解决这些问题,团队维护了一个内部基准测试PhiBench,旨在评估Phi-4开发过程中发现的关键技能和推理能力。

6. 关键基准测试表现

Phi-4在多个基准测试中表现出色,尤其是在STEM问答任务中。例如,在GPQA(研究生级STEM问题)和MATH(数学竞赛)上,它甚至超过了其教师模型GPT-4。在编码任务中,Phi-4的表现也优于其他开放权重的模型,包括更大的Llama模型。

7. 安全性

Phi-4的开发遵循了微软的负责任AI原则。团队通过训练后的安全对齐、红队测试和自动化测试来确保模型的安全性。Phi-4在多个RAI基准测试中表现优异,显示出强大的防御能力。

8. 弱点

尽管Phi-4在语言理解和推理能力上表现出色,但它仍然在某些任务上存在局限性,特别是在事实知识的幻觉方面。此外,Phi-4在严格遵循详细指令方面表现不佳,特别是在涉及特定格式要求的情况下。

结论

Phi-4通过创新的数据生成和训练后技术,展示了小型语言模型在推理任务中的巨大潜力。尽管存在一些弱点,Phi-4在多个基准测试中的卓越表现证明了其在AI领域的领先地位。未来,随着技术的进一步优化,Phi-4有望在更多应用场景中发挥重要作用。

效果测试

测试化境Dify+Ollama

运行:ollama run phi4 下载模型(默认其实就是14b-q4_K_M)

然后在Dify中配置,并运行:

简单测试了一下,发现不用提示技巧,直接问,还是解不了6.9和6.11的问题。

加入COT和一点提示技巧,终于正确了

Prompt 你是一个AI助手,会根据用户的要求一步步的解决用户的问题。对于数学问题要反复验证。

深度学习与NLP
专注深度学习、NLP相关技术、资讯,追求纯粹的技术,享受学习、分享的快乐。
 最新文章