基础模型:
- microsoft/Phi-4-reasoning-plus
语言:
- en
库名称: transformers
许可证: mit
许可证链接: https://huggingface.co/microsoft/Phi-4-reasoning-plus/resolve/main/LICENSE
流水线标签: text-generation
标签:
- nlp
- unsloth
- math
- code
- phi
- phi4
小部件:
- 消息:
- 角色: 用户
内容: 如何解方程3x^2+4x+5=1?
[!注意]
在llama.cpp中必须使用--jinja
参数启用推理功能,否则不会提供标记。
Phi-4-reasoning-plus
Phi-4-reasoning技术报告
模型概述
|
|
开发者 |
微软研究院 |
描述 |
Phi-4-reasoning-plus是基于Phi-4通过监督微调在思维链追踪数据集和强化学习上微调的最先进开源推理模型。监督微调数据集包含合成提示和来自公共领域网站的高质量过滤数据,专注于数学、科学和编码技能以及安全和负责任AI的对齐数据。这种方法的目标是确保小型高效模型通过专注于高质量和高级推理的数据进行训练。Phi-4-reasoning-plus还通过强化学习进行了额外训练,因此具有更高的准确性,但平均生成50%更多的标记,因此延迟更高。 |
架构 |
基础模型与之前发布的Phi-4相同,140亿参数,密集解码器专用Transformer模型 |
输入 |
文本,最适合聊天格式的提示 |
上下文长度 |
32k标记 |
GPU |
32 H100-80G |
训练时间 |
2.5天 |
训练数据 |
160亿标记,约83亿唯一标记 |
输出 |
响应输入的生成文本。模型响应包含两个部分,即思维链推理块和总结块 |
日期 |
2025年1月 – 2025年4月 |
状态 |
在离线数据集上训练的静态模型,公开可用数据的截止日期为2025年3月及之前 |
发布日期 |
2025年4月30日 |
许可证 |
MIT |
预期用途
|
|
主要用例 |
我们的模型旨在加速语言模型研究,作为生成AI功能的基础构建块。它适用于需要以下条件的通用AI系统和应用(主要为英文):
1. 内存/计算受限环境。 2. 延迟受限场景。 3. 推理和逻辑。 |
非预期用例 |
该模型仅为数学推理设计和测试。我们的模型并非专门设计或评估用于所有下游用途。开发者在选择用例时应考虑语言模型的常见限制,并在特定下游用例中使用前评估和减轻准确性、安全性和公平性,特别是高风险场景。开发者应了解并遵守适用于其用例的法律或法规(包括隐私、贸易合规法律等),包括模型对英语的关注。在选择用例时,请参阅下面的负责任AI注意事项以获取进一步指导。本模型卡中的任何内容均不应解释为或视为对模型发布许可证的限制或修改。 |
数据概述
训练数据集
我们的训练数据是数学、科学和编码中的问答、聊天格式数据的混合。聊天提示来源于经过过滤的高质量网络数据,并通过合成数据生成管道进行可选的重写和处理。我们进一步包含数据以提高真实性和安全性。
基准数据集
我们使用开源的Eureka评估套件和我们自己的内部基准来评估Phi-4-reasoning-plus,以了解模型的能力。具体来说,我们在以下方面评估我们的模型:
推理任务:
-
AIME 2025、2024、2023和2022: 数学奥林匹克问题。
-
GPQA-Diamond: 复杂的、研究生水平的科学问题。
-
OmniMath: 超过4000个奥林匹克水平数学问题的集合,带有人工标注。
-
LiveCodeBench: 来自竞争性编程比赛的代码生成基准。
-
3SAT(3-文字可满足性问题)和TSP(旅行商问题): 算法问题解决。
-
BA Calendar: 规划。
-
Maze和SpatialMap: 空间理解。
通用基准:
安全性
方法
Phi-4-reasoning-plus通过监督微调(SFT)采用了强大的安全后训练方法。该方法利用了各种开源和内部生成的合成提示,其LLM生成的响应遵循严格的微软安全指南,例如用户理解和清晰度、安全和道德指南、限制、免责声明和知识范围、处理复杂和敏感主题、安全和尊重参与、指南保密和思维链保密。
安全评估和红队测试
在发布之前,Phi-4-reasoning-plus遵循了多方面的评估方法。定量评估通过多个开源安全基准和利用对抗性对话模拟的内部工具进行。对于定性安全评估,我们与微软的独立AI红队(AIRT)合作,评估Phi-4-reasoning-plus在普通和对抗性用户场景中的安全风险。在普通用户场景中,AIRT模拟典型的单轮和多轮交互以识别潜在风险行为。对抗性用户场景测试了旨在故意颠覆模型安全训练的各种技术,包括基础性、越狱、仇恨和不公平等有害内容、暴力、性内容或自残,以及受保护材料的版权侵犯。我们进一步评估模型在Toxigen上的表现,这是一个旨在衡量针对少数群体的偏见和毒性的基准。
请参阅技术报告以获取有关安全对齐的更多细节。
模型质量
以下是模型在代表性基准上的高质量概述。对于下表,数字越高表示性能越好:
|
AIME 24 |
AIME 25 |
OmniMath |
GPQA-D |
LiveCodeBench (8/1/24–2/1/25) |
Phi-4-reasoning |
75.3 |
62.9 |
76.6 |
65.8 |
53.8 |
Phi-4-reasoning-plus |
81.3 |
78.0 |
81.9 |
68.9 |
53.1 |
OpenThinker2-32B |
58.0 |
58.0 |
— |
64.1 |
— |
QwQ 32B |
79.5 |
65.8 |
— |
59.5 |
63.4 |
EXAONE-Deep-32B |
72.1 |
65.8 |
— |
66.1 |
59.5 |
DeepSeek-R1-Distill-70B |
69.3 |
51.5 |
63.4 |
66.2 |
57.5 |
DeepSeek-R1 |
78.7 |
70.4 |
85.0 |
73.0 |
62.8 |
o1-mini |
63.6 |
54.8 |
— |
60.0 |
53.8 |
o1 |
74.6 |
75.3 |
67.5 |
76.7 |
71.0 |
o3-mini |
88.0 |
78.0 |
74.6 |
77.7 |
69.5 |
Claude-3.7-Sonnet |
55.3 |
58.7 |
54.6 |
76.8 |
— |
Gemini-2.5-Pro |
92.0 |
86.7 |
61.1 |
84.0 |
69.2 |
|
Phi-4 |
Phi-4-reasoning |
Phi-4-reasoning-plus |
o3-mini |
GPT-4o |
FlenQA [3K标记子集] |
82.0 |
97.7 |
97.9 |
96.8 |
90.8 |
IFEval严格 |
62.3 |
83.4 |
84.9 |
91.5 |
81.8 |
ArenaHard |
68.1 |
73.3 |
79.0 |
81.9 |
75.6 |
HumanEvalPlus |
83.5 |
92.9 |
92.3 |
94.0 |
88.0 |
MMLUPro |
71.5 |
74.3 |
76.0 |
79.4 |
73.0 |
Kitab 无上下文 - 精确度 有上下文 - 精确度 无上下文 - 召回率 有上下文 - 召回率 |
19.3 88.5 8.2 68.1 |
23.2 91.5 4.9 74.8 |
27.6 93.6 6.3 75.4 |
37.9 94.0 4.2 76.1 |
53.7 84.7 20.3 69.2 |
Toxigen判别式 有毒类别 中性类别 |
72.6 90.0 |
86.7 84.7 |
77.3 90.5 |
85.4 88.7 |
87.6 85.1 |
PhiBench 2.21 |
58.2 |
70.6 |
74.2 |
78.0 |
72.4 |
总体而言,仅140亿参数的Phi-4-reasoning和Phi-4-reasoning-plus在广泛的推理任务中表现良好,显著优于DeepSeek-R1蒸馏70B模型等更大的开源权重模型,并接近完整DeepSeek R1模型的性能水平。我们还在多个新的推理基准上测试了模型,包括算法问题解决和规划的3SAT、TSP和BA-Calendar。这些新任务名义上是模型领域外的,因为训练过程并未有意针对这些技能,但模型仍然表现出对这些任务的强大泛化能力。此外,在评估与标准通用能力基准(如指令遵循或非推理任务)的性能时,我们发现尽管后训练专注于特定领域的推理技能,我们的新模型相比Phi-4有显著改进。
使用
推理参数
推理时最好使用temperature=0.8
、top_p=0.95
和do_sample=True
。对于更复杂的查询,将最大标记数设置为32k以允许更长的思维链(CoT)。
Phi-4-reasoning-plus在推理密集型任务上表现出强大的性能。在我们的实验中,我们将其最大标记数扩展到64k,它在处理更长序列时显示出有希望的结果,在扩展输入上保持连贯性和逻辑一致性。这使其成为需要深入、多步推理或广泛上下文的探索任务的引人注目的选择。
输入格式
鉴于训练数据的性质,始终使用以下系统提示的ChatML模板进行推理:
<|im_start|>system<|im_sep|>
作为助手,你的角色涉及在提供最终精确和准确的解决方案之前,通过系统化的思考过程彻底探索问题。这需要参与全面的分析、总结、探索、重新评估、反思、回溯和迭代周期,以形成深思熟虑的思考过程。请将你的响应结构化为两个主要部分:思考和解决方案,使用指定格式:<think> {思考部分} </think> {解决方案部分}。在思考部分,详细描述你的推理过程步骤。每个步骤应包括详细考虑,如分析问题、总结相关发现、头脑风暴新想法、验证当前步骤的准确性、精炼任何错误以及重新审视先前步骤。在解决方案部分,基于思考部分的各种尝试、探索和反思,系统地呈现你认为正确的最终解决方案。解决方案部分应逻辑清晰、准确且简洁,并详细说明得出结论所需的必要步骤。现在,尝试通过上述指南解决以下问题:<|im_end|>
<|im_start|>user<|im_sep|>
x^2的导数是什么?<|im_end|>
<|im_start|>assistant<|im_sep|>
使用transformers
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("microsoft/Phi-4-reasoning-plus")
model = AutoModelForCausalLM.from_pretrained("microsoft/Phi-4-reasoning-plus", device_map="auto", torch_dtype="auto")
messages = [
{"role": "system", "content": "你是Phi,一个由微软训练的语言模型