模型简介
模型特点
模型能力
使用案例
🚀 Phi-4-mini-reasoning模型
Phi-4-mini-reasoning是一个轻量级的开源模型,基于合成数据构建,专注于高质量、富含推理的数据,并针对更高级的数学推理能力进行了微调。该模型支持128K的令牌上下文长度,适用于内存或计算资源受限的环境。
🚀 快速开始
Phi-4-mini-reasoning模型可用于多步骤、逻辑密集的数学问题求解任务。你可以通过以下步骤开始使用:
- 确保安装所需的Python包,如
transformers
、torch
等。 - 从Hugging Face获取模型检查点。
- 使用示例代码进行推理。
✨ 主要特性
- 轻量级设计:仅38亿参数,在资源受限环境中高效运行。
- 强大的推理能力:在数学推理基准测试中表现出色,接近大型模型水平。
- 长上下文支持:支持128K令牌上下文长度,处理复杂问题。
- 特定格式输入:适合特定格式的提示,如聊天格式。
📦 安装指南
依赖安装
Phi-4-mini-reasoning已集成在transformers
的4.51.3
版本中。可以使用以下命令验证当前transformers
版本:
pip list | grep transformers
推荐使用Python 3.8或3.10,所需的包列表如下:
flash_attn==2.7.4.post1
torch==2.5.1
transformers==4.51.3
accelerate==1.3.0
💻 使用示例
基础用法
分词器
Phi-4-mini-reasoning支持最大200064
个令牌的词汇表。分词器文件已提供可用于下游微调的占位符令牌,也可扩展到模型的词汇表大小。
输入格式
由于训练数据的性质,Phi-4-mini-instruct模型最适合使用特定格式的提示。以下是两种主要格式:
聊天格式
此格式用于一般对话和指令:
<|system|>Your name is Phi, an AI math expert developed by Microsoft.<|end|><|user|>How to solve 3*x^2+4*x+5=1?<|end|><|assistant|>
高级用法
使用transformers
进行推理
获取Phi-4-mini-instruct模型检查点后,可使用以下示例代码进行推理:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
torch.random.manual_seed(0)
model_id = "microsoft/Phi-4-mini-reasoning"
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="cuda",
torch_dtype="auto",
trust_remote_code=True,
)
tokenizer = AutoTokenizer.from_pretrained(model_id)
messages = [{
"role": "user",
"content": "How to solve 3*x^2+4*x+5=1?"
}]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_dict=True,
return_tensors="pt",
)
outputs = model.generate(
**inputs.to(model.device),
max_new_tokens=32768,
temperature=0.8,
top_p=0.95,
do_sample=True,
)
outputs = tokenizer.batch_decode(outputs[:, inputs["input_ids"].shape[-1]:])
print(outputs[0])
📚 详细文档
模型概述
Phi-4-mini-reasoning是基于合成数据构建的轻量级开源模型,专注于高质量、富含推理的数据,并针对更高级的数学推理能力进行了微调。该模型属于Phi-4模型家族,支持128K令牌上下文长度。
相关链接:
Phi-4系列模型:
- [Phi-4-reasoning]
- [multimodal-instruct | onnx]
- [mini-instruct | onnx]
预期用途
主要用例
Phi-4-mini-reasoning专为在内存/计算受限环境和延迟约束场景下的多步骤、逻辑密集型数学问题求解任务而设计。一些用例包括形式证明生成、符号计算、高级应用题以及各种数学推理场景。这些模型擅长在各步骤中保持上下文,应用结构化逻辑,并在需要深度分析思维的领域提供准确、可靠的解决方案。
用例考虑因素
该模型仅针对数学推理进行设计和测试,并非专门为所有下游用途设计或评估。开发者在选择用例时,应考虑语言模型的常见局限性以及不同语言之间的性能差异,并在特定下游用例中使用之前,评估并减轻准确性、安全性和公平性方面的问题,特别是在高风险场景中。开发者应了解并遵守与其用例相关的适用法律法规(包括但不限于隐私、贸易合规法等)。
发布说明
本次发布的Phi-4-mini-reasoning解决了用户对紧凑型推理模型的反馈和市场需求。它是一个基于Transformer的紧凑型语言模型,针对数学推理进行了优化,旨在在计算或延迟受限的环境中提供高质量的逐步问题解决能力。该模型使用来自更强大模型(更大、更智能、更准确且更擅长遵循指令)的合成数学数据进行微调,从而提高了推理性能。Phi-4-mini-reasoning在推理能力和效率之间取得了平衡,可能适用于教育应用、嵌入式辅导以及在边缘或移动系统上的轻量级部署。
如果发现Phi-4-mini-reasoning存在关键问题,应通过MSRC研究人员门户或secure@microsoft.com及时报告。
模型质量
为了解其能力,将38亿参数的Phi-4-mini-reasoning模型与一组模型在各种推理基准测试中进行了比较。模型质量的高级概述如下:
模型 | AIME | MATH - 500 | GPQA Diamond |
---|---|---|---|
o1 - mini* | 63.6 | 90.0 | 60.0 |
DeepSeek - R1 - Distill - Qwen - 7B | 53.3 | 91.4 | 49.5 |
DeepSeek - R1 - Distill - Llama - 8B | 43.3 | 86.9 | 47.3 |
Bespoke - Stratos - 7B* | 20.0 | 82.0 | 37.8 |
OpenThinker - 7B* | 31.3 | 83.0 | 42.4 |
Llama - 3.2 - 3B - Instruct | 6.7 | 44.4 | 25.3 |
Phi - 4 - Mini (基础模型, 38亿) | 10.0 | 71.8 | 36.9 |
Phi - 4 - mini - reasoning (38亿) | 57.5 | 94.6 | 52.0 |
总体而言,仅38亿参数的模型在多语言理解和推理能力方面达到了与更大模型相似的水平。然而,它在某些任务上仍受限于其规模。该模型无法存储过多的事实知识,因此用户可能会遇到事实错误。不过,通过为Phi-4添加搜索引擎,特别是在RAG设置下使用模型时,可能可以解决这一弱点。
训练
模型
- 架构:Phi-4-mini-reasoning与Phi-4-Mini具有相同的架构,有38亿参数,是一个仅含解码器的密集Transformer模型。与Phi-3.5-Mini相比,Phi-4-Mini的主要变化包括200K词汇表、分组查询注意力以及共享输入和输出嵌入。
- 输入:文本。最适合使用聊天格式的提示。
- 上下文长度:128K令牌
- GPU:128个H100 - 80G
- 训练时间:2天
- 训练数据:1500亿令牌
- 输出:生成的文本
- 日期:2024年2月训练
- 状态:这是一个基于离线数据集训练的静态模型,公开可用数据的截止日期为2025年2月。
- 支持语言:英语
- 发布日期:2025年4月
训练数据集
Phi-4-mini-reasoning的训练数据仅由更强大、更先进的推理模型Deepseek-R1生成的合成数学内容组成。目标是从该模型中提取知识。这个合成数据集包含超过一百万个不同难度级别的数学问题(从中学生到博士水平)。对于合成数据集中的每个问题,采样了八个不同的解决方案(展开),仅保留了经验证正确的解决方案,从而得到约300亿令牌的数学内容。该数据集集成了三个主要组件:
- 精心挑选的高质量公开可用数学问题以及用于训练基础Phi-4-Mini模型的部分SFT(监督微调)数据。
- 由Deepseek-R1模型生成的大量合成数学数据,专门用于高质量的监督微调和模型蒸馏。
- 一组平衡的正确和错误答案,用于构建偏好数据,旨在通过学习更有效的推理轨迹来增强Phi-4-mini-reasoning的推理能力。
软件
硬件
请注意,默认情况下,Phi-4-mini-reasoning模型使用闪存注意力,这需要特定类型的GPU硬件才能运行。我们在以下GPU类型上进行了测试:
- NVIDIA A100
- NVIDIA H100
如果你想在以下设备上运行模型:
- NVIDIA V100或更早一代的GPU:使用
attn_implementation="eager"
调用AutoModelForCausalLM.from_pretrained()
。
安全评估和红队测试
Phi-4系列模型采用了强大的安全后训练方法。这种方法利用了各种开源和内部生成的数据集。用于进行安全对齐的总体技术是结合了SFT、DPO(直接偏好优化)和RLHF(基于人类反馈的强化学习)方法,利用人类标记和合成的英语数据集,包括专注于有用性和无害性的公开可用数据集,以及针对多个安全类别的各种问题和答案。
Phi-4-Mini-Reasoning是根据微软的负责任AI原则开发的。使用Azure AI Foundry的风险和安全评估框架评估了模型响应中的潜在安全风险,重点关注有害内容、直接越狱和模型的可靠性。Phi-4-Mini-Reasoning模型卡片包含了关于我们的安全方法和负责任AI考虑因素的额外信息,开发者在使用此模型时应了解这些信息。
负责任AI考虑因素
与其他语言模型一样,Phi系列模型可能会表现出不公平、不可靠或冒犯性的行为。需要注意的一些限制行为包括:
- 服务质量:Phi模型主要在英语文本和一些额外的多语言文本上进行训练。非英语语言的性能会更差,并且非英语语言之间也存在性能差异。训练数据中代表性较少的英语变体可能比标准美式英语的性能更差。
- 多语言性能和安全差距:我们认为使语言模型在不同语言中更广泛可用很重要,但Phi 4模型在多语言发布中仍然存在常见的挑战。与任何大语言模型的部署一样,开发者更有能力针对其语言和文化背景测试性能或安全差距,并通过额外的微调和平适当的保障措施来定制模型。
- 伤害表示和刻板印象的延续:这些模型可能会过度或不足地代表某些人群,抹去某些群体的代表性,或强化贬低性或负面的刻板印象。尽管进行了安全后训练,但由于不同群体的代表性水平不同、文化背景或训练数据中反映现实世界模式和社会偏见的负面刻板印象示例的普遍性,这些限制可能仍然存在。
- 不适当或冒犯性内容:这些模型可能会产生其他类型的不适当或冒犯性内容,因此在没有针对特定情况的额外缓解措施的情况下,可能不适合在敏感环境中部署。
- 信息可靠性:语言模型可能会生成无意义的内容或编造听起来合理但不准确或过时的内容。
- 选举信息可靠性:该模型在回答与选举相关的关键查询时缺陷率较高,这可能导致呈现不正确或无权威性的选举关键信息。我们正在努力提高模型在这方面的性能。用户应向所在地区的选举机构核实与选举相关的信息。
- 代码范围有限:大多数Phi 4训练数据基于Python,并使用常见的包,如"typing, math, random, collections, datetime, itertools"。如果模型生成使用其他包或其他语言的Python脚本,强烈建议用户手动验证所有API的使用。
- 长对话:与其他模型一样,Phi 4模型在英语和非英语的非常长的聊天会话中,有时可能会生成重复、无用或不一致的响应。鼓励开发者采取适当的缓解措施,如限制对话轮数以考虑可能的对话漂移。
开发者应应用负责任AI的最佳实践,包括映射、衡量和减轻与其特定用例以及文化、语言背景相关的风险。Phi 4系列模型是通用模型。当开发者计划将这些模型部署到特定用例时,鼓励他们针对其用例对模型进行微调,并将模型作为具有特定语言保障措施的更广泛AI系统的一部分加以利用。需要考虑的重要领域包括:
- 分配:在没有进一步评估和额外去偏技术的情况下,模型可能不适用于对法律地位、资源分配或生活机会(如住房、就业、信贷等)有重大影响的场景。
- 高风险场景:开发者应评估在高风险场景中使用模型的适用性,在这些场景中,不公平、不可靠或冒犯性的输出可能会造成极大的代价或导致伤害。这包括在准确性和可靠性至关重要的敏感或专业领域提供建议(如法律或健康建议)。应根据部署上下文在应用层面实施额外的保障措施。
- 错误信息:模型可能会产生不准确的信息。开发者应遵循透明度最佳实践,并告知最终用户他们正在与AI系统进行交互。在应用层面,开发者可以构建反馈机制和管道,将响应与特定用例的上下文信息相结合,这种技术称为检索增强生成(RAG)。
- 有害内容生成:开发者应根据上下文评估输出,并使用适用于其用例的可用安全分类器或自定义解决方案。
- 滥用:可能存在其他形式的滥用,如欺诈、垃圾邮件或恶意软件生产,开发者应确保其应用不违反适用的法律法规。
许可证
该模型根据MIT许可证授权。
商标
本项目可能包含项目、产品或服务的商标或标志。授权使用微软的商标或标志需遵守并必须遵循微软的商标和品牌指南。在本项目的修改版本中使用微软的商标或标志不得造成混淆或暗示微软的赞助。任何第三方商标或标志的使用均需遵守这些第三方的政策。
附录A:基准测试方法
我们在此简要介绍一下方法 - 特别是我们如何考虑优化提示。在理想情况下,我们在基准测试中永远不会更改任何提示,以确保在比较不同模型时始终进行公平的比较。实际上,这是我们的默认方法,并且在我们迄今为止运行的绝大多数模型中都是如此。对于所有基准测试,我们考虑使用相同的生成配置,如最大序列长度(32768)、相同的温度,以进行公平比较。
基准测试数据集
我们使用三个最流行的数学基准测试评估模型,这些基准测试是最强推理模型竞争的地方。具体如下:
- Math - 500:该基准测试由500个具有挑战性的数学问题组成,旨在测试模型执行复杂数学推理和问题解决的能力。
- AIME 2024:美国邀请赛数学考试(AIME)是一项备受推崇的数学竞赛,包含一系列难题,旨在评估高级数学技能和逻辑推理能力。
- GPQA Diamond:研究生级谷歌证明问答(GPQA)钻石基准测试专注于评估模型理解和解决各种数学问题的能力,包括简单计算和更复杂的问题解决任务。



