模型信息
语言支持:
- 多语言
- 阿拉伯语
- 中文
- 捷克语
- 丹麦语
- 荷兰语
- 英语
- 芬兰语
- 法语
- 德语
- 希伯来语
- 匈牙利语
- 意大利语
- 日语
- 韩语
- 挪威语
- 波兰语
- 葡萄牙语
- 俄语
- 西班牙语
- 瑞典语
- 泰语
- 土耳其语
- 乌克兰语
库名称: transformers
许可证: mit
许可证链接: https://huggingface.co/microsoft/Phi-4-mini-instruct/resolve/main/LICENSE
流水线标签: 文本生成
标签:
- 自然语言处理
- 代码
示例输入:
- 消息:
- 角色: 用户
内容: 你能提供香蕉和火龙果的搭配吃法吗?
🎉Phi-4系列: [迷你推理版 | 推理版] | [多模态指令版 | ONNX版];
[迷你指令版 | ONNX版]
模型概述
Phi-4-mini-instruct是基于合成数据和过滤后的公开网站数据构建的轻量级开源模型,重点关注高质量、富含推理能力的数据。该模型属于Phi-4系列,支持128K令牌的上下文长度。通过监督微调和直接偏好优化的增强过程,该模型能够精确遵循指令并具备强大的安全措施。
📰 Phi-4-mini微软博客
📖 Phi-4-mini技术报告
👩🍳 Phi烹饪书
🏡 Phi门户
🖥️ 试用 Azure, Huggingface
🚀 模型论文
预期用途
主要用例
该模型适用于广泛的商业和研究用途,尤其适合以下场景:
- 内存/计算受限的环境
- 延迟敏感的场景
- 需要强大推理能力(尤其是数学和逻辑)的应用。
该模型旨在加速语言和多模态模型的研究,作为生成式AI功能的构建模块。
使用注意事项
该模型并非针对所有下游用途专门设计或评估。开发者在选择用例时应考虑语言模型的常见限制,以及跨语言性能差异,并在高风险场景中评估和缓解准确性、安全性和公平性问题。开发者还应遵守适用于其用例的相关法律法规。
本模型卡中的任何内容均不应被解释为对模型发布许可证的限制或修改。
发布说明
Phi-4-mini-instruct基于Phi-3系列的用户反馈进行了优化。新架构提升了效率,更大的词汇表支持多语言,更好的训练后技术改进了指令遵循和函数调用能力。大多数用例将受益于此版本,但建议用户在其特定应用中测试。欢迎反馈以促进模型改进。
模型质量
3.8B参数的Phi-4-mini-instruct模型在多个基准测试中表现优异(详见附录A)。关键指标如下:
基准测试 |
相似规模模型对比 |
2倍规模模型对比 |
综合能力 |
63.5 |
75.5 |
总体而言,该模型在多语言理解和推理能力上接近更大规模的模型,但仍受限于其规模,可能存在事实性错误。建议在RAG设置中结合搜索引擎使用以弥补这一弱点。
使用方法
分词器
支持最多200064
个令牌的词汇量。分词器文件已提供占位符令牌,可用于下游微调。
输入格式
推荐使用以下两种主要格式:
聊天格式
<|system|>系统消息<|end|><|user|>用户消息<|end|><|assistant|>
工具调用格式
用户应在系统提示中提供可用工具,用<|tool|>和<|/tool|>标记包裹。工具应以JSON格式指定。
使用vLLM推理
要求
flash_attn==2.7.4.post1
torch==2.5.1
vllm>=0.7.3
示例代码
from vllm import LLM, SamplingParams
llm = LLM(model="microsoft/Phi-4-mini-instruct", trust_remote_code=True)
messages = [
{"role": "system", "content": "你是一个有帮助的AI助手。"},
{"role": "user", "content": "解方程2x + 3 = 7"},
]
sampling_params = SamplingParams(
max_tokens=500,
temperature=0.0,
)
output = llm.chat(messages=messages, sampling_params=sampling_params)
print(output[0].outputs[0].text)
使用Transformers推理
要求
flash_attn==2.7.4.post1
torch==2.5.1
transformers==4.49.0
accelerate==1.3.0
示例代码
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
model = AutoModelForCausalLM.from_pretrained(
"microsoft/Phi-4-mini-instruct",
device_map="auto",
torch_dtype="auto",
trust_remote_code=True,
)
tokenizer = AutoTokenizer.from_pretrained("microsoft/Phi-4-mini-instruct")
pipe = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
)
generation_args = {
"max_new_tokens": 500,
"temperature": 0.0,
}
output = pipe(messages, **generation_args)
print(output[0]['generated_text'])
负责任AI考量
该模型可能表现出不公平、不可靠或冒犯性的行为,开发者应注意以下限制:
- 服务质量:非英语语言性能较差
- 多语言安全和性能差距
- 有害内容和刻板印象
- 信息可靠性问题
- 代码范围有限
- 长对话可能产生重复或不一致的回答
建议开发者在部署前进行风险评估,并实施适当的缓解措施。
训练详情
模型架构
- 参数:3.8B
- 架构:密集解码器Transformer
- 词汇量:200K
- 上下文长度:128K令牌
- 训练硬件:512张A100-80G
- 训练时间:21天
- 训练数据:5万亿令牌
- 支持语言:23种
- 发布日期:2025年2月
训练数据
包含:
- 经过质量筛选的公开文档
- 新创建的合成"教科书式"数据
- 高质量聊天格式监督数据
微调
提供了基于TRL和Accelerate的多GPU监督微调示例代码。
安全评估
通过红队测试、对抗性对话模拟和多语言安全评估基准进行了全面评估。发现模型在大多数情况下能抵抗越狱技术,但在特定文化背景下可能输出有害内容。建议开发者实施额外的安全措施。
硬件要求
默认使用flash attention,需要以下GPU类型:
- NVIDIA A100
- NVIDIA A6000
- NVIDIA H100
较早的GPU(如V100)需设置attn_implementation="eager"。
许可证
模型采用MIT许可证。
商标
使用微软商标需遵守微软商标和品牌指南。
附录A:基准测试方法
基准测试采用统一标准,仅在必要时调整系统提示或少量示例数量。主要评估数据集包括:
- 推理:Winogrande、PIQA、ARC-challenge等
- 语言理解:HellaSwag、ANLI
- 函数调用:Berkeley基准
- 数学:GSM8K、MATH
- 代码:HumanEval、MBPP
- 多语言:MGSM、Multilingual MMLU
- 安全性:DecodingTrust、XSTest等