开源协议: mit
协议链接: https://huggingface.co/microsoft/Phi-4-mini-instruct/resolve/main/LICENSE
支持语言:
- 多语言
- 阿拉伯语
- 中文
- 捷克语
- 丹麦语
- 荷兰语
- 英语
- 芬兰语
- 法语
- 德语
- 希伯来语
- 匈牙利语
- 意大利语
- 日语
- 韩语
- 挪威语
- 波兰语
- 葡萄牙语
- 俄语
- 西班牙语
- 瑞典语
- 泰语
- 土耳其语
- 乌克兰语
任务标签: 文本生成
技术标签:
- 自然语言处理
- 代码
- 精简版
交互示例:
- 消息记录:
- 角色: 用户
内容: 能推荐几种香蕉和火龙果的搭配吃法吗?
库名称: transformers
基础模型:
- microsoft/Phi-4-mini-instruct
模型概述
以下是模型的精简版本:
Phi-4-mini-instruct是基于合成数据和精选公开网站构建的轻量级开源模型,专注于高质量、强推理能力的数据。该模型属于Phi-4系列,支持128K令牌上下文长度,通过监督微调和直接偏好优化进行增强,以确保精准的指令遵循和安全性。
📰 Phi-4-mini微软博客
📖 Phi-4-mini技术报告
👩🍳 Phi使用手册
🏡 Phi门户
🖥️ 试用 Azure, Huggingface
Phi-4系列:
[指令微调版 | ONNX版];
多模态指令版;
适用场景
主要用途
该模型适用于广泛的商业和研究多语言场景,特别适合以下需求:
- 内存/计算资源受限的环境
- 低延迟要求的场景
- 强推理能力(尤其是数学和逻辑)。
模型旨在加速语言和多模态模型研究,作为生成式AI功能的构建模块。
使用注意事项
模型并非针对所有下游任务专门设计或评估。开发者需注意语言模型的通用限制及跨语言性能差异,针对特定场景评估准确性、安全性和公平性,尤其在高风险应用中。开发者应遵守相关法律法规(如隐私、贸易合规等)。
本模型卡片内容不应视为对模型许可证的限制或修改。
版本说明
此版本Phi-4-mini-instruct基于Phi-3系列用户反馈改进,采用新架构提升效率,扩大词汇表支持多语言,并通过增强的训练技术显著提升指令遵循和函数调用能力。建议用户在实际应用中测试验证。欢迎反馈以促进模型演进。
模型质量
通过内部基准平台对比(方法论见附录A),3.8B参数的Phi-4-mini-instruct关键指标如下:
基准测试 |
同规模模型对比 |
Phi-3.5-mini-Ins |
Llama-3.2-3B-Ins |
Mistral-3B |
Qwen2.5-3B-Ins |
2倍规模模型对比 |
Qwen2.5-7B-Ins |
Mistral-8B-2410 |
Llama-3.1-8B-Ins |
Gemma2-9B-Ins |
GPT-4o-mini-2024-07-18 |
综合能力 |
63.5 |
60.5 |
56.2 |
56.9 |
60.1 |
67.9 |
60.2 |
62.3 |
60.9 |
65.0 |
75.5 |
尽管3.8B参数模型在多语言理解和推理能力上接近更大模型,但仍受限于规模导致的事实性知识存储不足。建议通过检索增强生成(RAG)技术结合搜索引擎弥补此弱点。
使用指南
分词器
支持最大200064
词汇量,分词文件已预留下游微调所需的占位符。
输入格式
推荐两种结构化提示格式:
对话格式
<|system|>系统消息<|end|><|user|>用户消息<|end|><|assistant|>
工具调用格式
系统提示中需用<|tool|>
包裹JSON格式工具描述,例如:
<|system|>你是一个支持工具调用的助手。<|tool|>[{"name": "get_weather", "description": "获取城市天气", "parameters": {"city": {"type": "str"}}}]<|/tool|><|end|><|user|>巴黎今天天气如何?<|end|><|assistant|>
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": "香蕉和火龙果怎么搭配吃?"},
{"role": "assistant", "content": "1. 混合奶昔:香蕉+火龙果+牛奶+蜂蜜 2. 水果沙拉:切片后加柠檬汁"},
{"role": "user", "content": "解方程2x + 3 = 7"},
]
sampling_params = SamplingParams(max_tokens=500, temperature=0.0)
print(llm.chat(messages, sampling_params)[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
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")
messages = [
{"role": "system", "content": "你是一个有帮助的AI助手"},
{"role": "user", "content": "解方程2x + 3 = 7"},
]
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)
output_ids = model.generate(input_ids, max_new_tokens=500, temperature=0.0, do_sample=False)
print(tokenizer.decode(output_ids[0], skip_special_tokens=True))
责任AI声明
该模型可能产生不公平、不可靠或冒犯性内容,需注意以下限制:
- 多语言性能差异:非英语语言表现较弱
- 刻板印象强化:可能反映训练数据中的社会偏见
- 不当内容生成:需针对敏感场景额外审查
- 信息可靠性:可能生成不准确内容
- 代码局限性:主要基于Python常见库,其他语言需人工验证
- 长对话漂移:超长对话可能出现重复或不一致
开发者应遵循责任AI实践,包括:
- 高风险场景评估:避免用于法律、医疗等关键领域
- 错误信息管理:明确告知用户AI生成内容属性
- 有害内容过滤:部署适合应用场景的安全检查
训练详情
模型架构
- 参数规模:3.8B参数,稠密解码器架构
- 主要改进:20万词汇量、分组查询注意力、共享输入输出嵌入
- 上下文长度:128K令牌
- 硬件:512张A100-80G显卡
- 训练时长:21天
- 训练数据:5万亿令牌
- 训练时段:2024年11月至12月
- 数据截止:2024年6月公开数据
- 支持语言:23种语言
- 发布时间:2025年2月
训练数据
包含:
- 精选公开文档
- 合成的"教科书式"数学/编程/常识数据
- 高质量对话数据
通过n-gram去重技术确保数据纯净度。
微调
提供基于TRL和Accelerate的多GPU监督微调示例。
安全评估
采用红队测试、对抗对话模拟和多语言安全基准评估,结果显示:
- 能有效抵抗多数越狱技术
- 特定文化背景的攻击提示可能诱发有害输出
- 函数调用时可能幻觉函数名或URL
- 长对话越狱风险较高
突显行业需加强多语言安全数据集建设。
软硬件要求
软件:
- PyTorch
- Transformers
- Flash-Attention
硬件:
- 默认需支持Flash Attention的GPU(如A100/A6000/H100)
- V100等旧显卡需设置
attn_implementation="eager"
许可证
MIT许可证。
商标声明
使用微软商标需遵守微软商标指南。
附录A:基准测试方法
原则上保持评估提示不变,仅在以下情况调整:
- 模型拒绝回答时尝试不同系统消息
- 少样本示例反而降低性能时改用零样本
- 转换聊天/补全API时的关键词映射
不调整:
- 少样本示例内容
- 选择题格式(如A/B/C/D不改为1/2/3/4)
测试数据集
涵盖推理、语言理解、函数调用、数学、代码等领域的公开及内部基准,包括:
- 推理:Winogrande、ARC-challenge、GPQA等
- 数学:GSM8K、MATH
- 代码:HumanEval、Spider
- 多语言:MGSM、Multilingual MMLU
- 安全性:DecodingTrust、Toxigen