许可证: MIT
基础模型:
- microsoft/Phi-4-mini-instruct
任务标签: 文本生成
标签:
- 演示
- Phi 4 Mini
- 多语言
- 推理
- 代码生成
- 函数调用
- 聊天补全
- 内存高效
- 低延迟
- 128k上下文
模型概述
Phi-4-mini-instruct 是一个轻量级开源模型,基于合成数据和经过筛选的公开网站构建,专注于高质量、富含推理的数据。该模型属于 Phi-4 模型系列,支持 128K token 的上下文长度。模型经过增强处理,结合了监督微调和直接偏好优化,以确保精确遵循指令和强大的安全措施。
📰 Phi-4-mini 微软博客
📖 Phi-4-mini 技术报告
👩🍳 Phi 烹饪手册
🏡 Phi 门户
🖥️ 试用 Azure, Huggingface
Phi-4:
[mini-instruct | onnx];
multimodal-instruct; gguf
使用方法
聊天格式
此格式用于一般对话和指令:
<|system|>插入系统消息<|end|><|user|>插入用户消息<|end|><|assistant|>
工具启用的函数调用格式
此格式用于用户希望模型根据给定工具提供函数调用时。用户应在系统提示中定义可用工具,并用 <|tool|>
和 <|/tool|>
标记包裹。工具必须以结构化 JSON 格式指定。
<|system|>
你是一个有帮助的助手,拥有一些工具。
<|tool|>
[
{
"name": "get_weather_updates",
"description": "使用 RapidAPI Weather API 获取给定城市的天气更新。",
"parameters": {
"city": {
"description": "要检索天气信息的城市名称。",
"type": "str",
"default": "London"
}
}
}
]
<|/tool|>
<|end|>
<|user|>
今天巴黎的天气如何?
<|end|>
<|assistant|>
Unsloth 性能优化修复
更新(2025年3月1日)
应用所有 Unsloth 修复后,推理稳定性得到提升。
# |
修复 |
修复原因 |
1 |
更改填充标记 |
旧填充标记可能导致训练问题。 |
2 |
从聊天模板中移除 {% else %}{{ eos_token }} |
防止额外的 EOS token 降低推理性能。 |
3 |
将 EOS 替换为 <|end|> |
避免潜在的推理故障。 |
4 |
将 unk_token 从 EOS 改为 � |
阻止未知 token 中断推理。 |
🚀 Phi 4 Mini 函数调用测试!
如果你有一分钟时间,我非常感谢你能在 👉 免费网络监控 测试我的 Phi-4-Mini-Instruct 演示。
💬 点击 聊天图标(主页面和仪表板页面右下角)。然后在 LLM 类型之间切换,Phi-4-Mini-Instruct 被称为 TestLLM:TurboLLM -> FreeLLM -> TestLLM。
我正在测试的内容
我正在尝试针对我的网络监控服务进行 函数调用。使用小型开源模型。我的问题是“模型可以小到什么程度仍能正常工作”。
🟡 TestLLM – 运行 Phi-4-mini-instruct,使用 phi-4-mini-q4_0.gguf,llama.cpp 在 6 线程的 CPU 虚拟机上运行(加载大约需要 15 秒。推理速度较慢,且一次只能处理一个用户提示——仍在扩展中!)。如果你感兴趣,我很乐意分享它是如何工作的!
其他可用的 AI 助手
🟢 TurboLLM – 使用 gpt-4o-mini,速度快!注意:由于 OpenAI 模型价格昂贵,token 有限,但你可以 登录 或 下载 免费网络监控代理以获取更多 token,或者使用 TestLLM。
🔵 HugLLM – 运行 开源 Hugging Face 模型,速度快,运行小型模型(≈8B),因此质量较低,但可获得 2 倍更多 token(取决于 Hugging Face API 可用性)。
Phi-4-mini-instruct GGUF 模型
选择正确的模型格式
选择合适的模型格式取决于你的 硬件能力 和 内存限制。
BF16(Brain Float 16)– 如果支持 BF16 加速
- 一种 16 位浮点格式,专为 更快计算 设计,同时保持良好精度。
- 提供 与 FP32 相似的动态范围,但 内存占用更低。
- 如果你的硬件支持 BF16 加速(检查设备规格),推荐使用。
- 适合 高性能推理,与 FP32 相比 减少内存占用。
📌 使用 BF16 如果:
✔ 你的硬件有原生 BF16 支持(例如较新的 GPU、TPU)。
✔ 你希望在节省内存的同时 获得更高精度。
✔ 你计划 将模型重新量化为其他格式。
📌 避免 BF16 如果:
❌ 你的硬件 不支持 BF16(可能回退到 FP32 并运行更慢)。
❌ 你需要与缺乏 BF16 优化的旧设备兼容。
F16(Float 16)– 比 BF16 更广泛支持
- 一种 16 位浮点格式,精度高,但数值范围比 BF16 小。
- 适用于大多数支持 FP16 加速 的设备(包括许多 GPU 和一些 CPU)。
- 数值精度略低于 BF16,但通常足以满足推理需求。
📌 使用 F16 如果:
✔ 你的硬件支持 FP16 但 不支持 BF16。
✔ 你需要在 速度、内存占用和准确性 之间取得平衡。
✔ 你在 GPU 或其他优化 FP16 计算的设备上运行。
📌 避免 F16 如果:
❌ 你的设备 缺乏原生 FP16 支持(可能运行速度不如预期)。
❌ 你有内存限制。
量化模型(Q4_K、Q6_K、Q8 等)– 适用于 CPU 和低 VRAM 推理
量化减少了模型大小和内存占用,同时尽可能保持准确性。
- 低位模型(Q4_K) → 内存占用最小,精度可能较低。
- 高位模型(Q6_K、Q8_0) → 准确性更好,需要更多内存。
📌 使用量化模型如果:
✔ 你在 CPU 上运行推理,需要一个优化模型。
✔ 你的设备 VRAM 较低,无法加载全精度模型。
✔ 你想在保持合理准确性的同时 减少内存占用。
📌 避免量化模型如果:
❌ 你需要 最高精度(全精度模型更适合)。
❌ 你的硬件有足够的 VRAM 支持更高精度格式(BF16/F16)。
模型格式选择摘要表
模型格式 |
精度 |
内存占用 |
设备要求 |
最佳用例 |
BF16 |
最高 |
高 |
支持 BF16 的 GPU/CPU |
内存减少的高速推理 |
F16 |
高 |
高 |
支持 FP16 的设备 |
BF16 不可用时的 GPU 推理 |
Q4_K |
低 |
极低 |
CPU 或低 VRAM 设备 |
内存受限环境的最佳选择 |
Q6_K |
中低 |
低 |
内存较多的 CPU |
量化模型中更好的准确性 |
Q8 |
中 |
中等 |
有足够 VRAM 的 CPU 或 GPU |
量化模型中的最佳准确性 |
包含的文件及详情
phi-4-mini-bf16.gguf
- 模型权重以 BF16 保存。
- 如果你想 将模型重新量化为其他格式,使用此文件。
- 如果你的设备支持 BF16 加速,这是最佳选择。
phi-4-mini-f16.gguf
- 模型权重以 F16 保存。
- 如果你的设备支持 FP16,尤其是 BF16 不可用时,使用此文件。
phi-4-mini-bf16-q8.gguf
- 输出和嵌入 保持为 BF16。
- 其他层量化为 Q8_0。
- 如果你的设备支持 BF16 且需要一个量化版本,使用此文件。
phi-4-mini-f16-q8.gguf
- 输出和嵌入 保持为 F16。
- 其他层量化为 Q8_0。
phi-4-mini-q4_k_l.gguf
- 输出和嵌入 量化为 Q8_0。
- 其他层量化为 Q4_K。
- 适合 内存有限的 CPU 推理。
phi-4-mini-q4_k_m.gguf
- 类似于 Q4_K。
- 另一种 低内存 CPU 推理 选择。
phi-4-mini-q4_k_s.gguf
- 最小的 Q4_K 变体,内存占用更小,但精度更低。
- 适合 极低内存环境。
phi-4-mini-q6_k_l.gguf
- 输出和嵌入 量化为 Q8_0。
- 其他层量化为 Q6_K。
phi-4-mini-q6_k_m.gguf
- 中档 Q6_K 量化模型,性能平衡。
- 适合 内存适中的 CPU 推理。
phi-4-mini-q8.gguf
- 完全 Q8 量化模型,准确性更高。
- 需要 更多内存,但提供更高精度。
致谢
感谢 Bartowski 上传 imartix 并提供量化指导,使我能够生成这些 gguf 文件。
感谢 Unsloth 修复了许多模型的 bug。
感谢你的支持! 🙌