🚀 Phi-4-mini-instruct模型
Phi-4-mini-instruct是一个轻量级的开源模型,它基于合成数据和经过筛选的公开网站数据构建,尤其注重高质量、富含推理的数据。该模型属于Phi-4模型家族,支持128K的令牌上下文长度。模型经过了增强处理,结合了监督微调(SFT)和直接偏好优化(DPO),以支持精确的指令遵循和强大的安全措施。
🚀 快速开始
模型信息
属性 |
详情 |
模型类型 |
Phi-4-mini-instruct是基于合成数据和公开网站数据构建的轻量级开源模型,属于Phi-4模型家族,支持128K令牌上下文长度。 |
训练数据 |
合成数据和经过筛选的公开网站数据,重点是高质量、富含推理的数据。 |
相关链接
Phi-4模型版本
✨ 主要特性
- 多语言支持:支持多种语言的处理。
- 推理能力:具备强大的推理能力。
- 代码生成:能够生成代码。
- 函数调用:支持函数调用功能。
- 聊天完成:可完成高质量的聊天对话。
- 内存高效:内存使用效率高。
- 低延迟:响应速度快。
- 128K上下文:支持128K的令牌上下文长度。
💻 使用示例
聊天格式
这种格式用于一般对话和指令:
<|system|>Insert System Message<|end|><|user|>Insert User Message<|end|><|assistant|>
支持工具的函数调用格式
当用户希望模型根据给定工具提供函数调用时,使用此格式。用户应在系统提示中定义可用工具,并用 <|tool|>
和 <|/tool|>
标记包裹。工具必须使用结构化的JSON转储以JSON格式指定。
<|system|>
You are a helpful assistant with some tools.
<|tool|>
[
{
"name": "get_weather_updates",
"description": "Fetches weather updates for a given city using the RapidAPI Weather API.",
"parameters": {
"city": {
"description": "The name of the city for which to retrieve weather information.",
"type": "str",
"default": "London"
}
}
}
]
<|/tool|>
<|end|>
<|user|>
What is the weather like in Paris today?
<|end|>
<|assistant|>
📚 详细文档
Unsloth错误修复
更新(2025年3月1日)
应用所有 Unsloth 修复后,推理稳定性得到了改善。
编号 |
修复内容 |
修复原因 |
1 |
更改填充标签 |
旧的填充标签可能导致训练问题。 |
2 |
从聊天模板中移除 {% else %}{{ eos_token }} |
防止额外的EOS令牌降低推理性能。 |
3 |
将EOS替换为 <|end|> |
避免潜在的推理故障。 |
4 |
将 unk_token 从EOS更改为 � |
防止未知令牌破坏推理。 |
Phi 4 Mini函数调用测试
如果您有时间,非常感谢您能测试我的Phi-4-Mini-Instruct演示👉 免费网络监控器。
💬 点击聊天图标(主页和仪表盘页面右下角)。然后在LLM类型之间切换,Phi-4-Mini-Instruct被称为TestLLM:TurboLLM -> FreeLLM -> TestLLM。
测试内容
我正在使用小型开源模型对我的网络监控服务进行函数调用实验。我关注的问题是“模型可以多小还能正常工作”。
- 🟡 TestLLM – 使用phi-4-mini-q4_0.gguf、llama.cpp在CPU虚拟机的6个线程上运行Phi-4-mini-instruct(加载大约需要15秒。推理速度相当慢,一次只能处理一个用户提示,仍在努力扩展!)。如果您感兴趣,我很乐意分享其工作原理。
- 🟢 TurboLLM – 使用gpt-4o-mini,速度快。注意:由于OpenAI模型价格昂贵,令牌有限,但您可以登录或下载免费网络监控代理以获取更多令牌,或者使用TestLLM。
- 🔵 HugLLM – 运行开源Hugging Face模型,速度快,运行小型模型(≈8B),因此质量较低,可获得2倍的令牌(取决于Hugging Face API的可用性)。
Phi-4-mini-instruct GGUF模型
选择正确的模型格式
选择正确的模型格式取决于您的硬件能力和内存限制。
BF16(脑浮点16) – 如果有BF16加速支持则使用
- 一种16位浮点格式,专为更快的计算而设计,同时保持良好的精度。
- 提供与FP32相似的动态范围,但内存使用更低。
- 如果您的硬件支持BF16加速(请检查设备规格),建议使用。
- 与FP32相比,适用于高性能推理且内存占用减少。
📌 使用BF16的情况:
- ✔ 您的硬件具有原生BF16支持(例如,较新的GPU、TPU)。
- ✔ 您希望在节省内存的同时获得更高的精度。
- ✔ 您计划将模型重新量化为另一种格式。
📌 避免使用BF16的情况:
- ❌ 您的硬件不支持BF16(可能会回退到FP32并运行较慢)。
- ❌ 您需要与缺乏BF16优化的旧设备兼容。
F16(浮点16) – 比BF16更广泛支持
- 一种16位浮点格式,精度高,但取值范围比BF16小。
- 适用于大多数支持FP16加速的设备(包括许多GPU和一些CPU)。
- 数值精度略低于BF16,但通常足以进行推理。
📌 使用F16的情况:
- ✔ 您的硬件支持FP16但不支持BF16。
- ✔ 您需要在速度、内存使用和准确性之间取得平衡。
- ✔ 您在GPU或其他针对FP16计算优化的设备上运行。
📌 避免使用F16的情况:
- ❌ 您的设备缺乏原生FP16支持(可能会比预期运行得慢)。
- ❌ 您有内存限制。
量化模型(Q4_K、Q6_K、Q8等) – 用于CPU和低显存推理
量化可以在尽可能保持准确性的同时减小模型大小和内存使用。
- 低比特模型(Q4_K) → 内存使用最少,但精度可能较低。
- 高比特模型(Q6_K、Q8_0) → 准确性更好,但需要更多内存。
📌 使用量化模型的情况:
- ✔ 您在CPU上进行推理,需要优化的模型。
- ✔ 您的设备显存较低,无法加载全精度模型。
- ✔ 您希望在保持合理准确性的同时减少内存占用。
📌 避免使用量化模型的情况:
- ❌ 您需要最高的准确性(全精度模型更适合这种情况)。
- ❌ 您的硬件有足够的显存来支持更高精度的格式(BF16/F16)。
模型格式选择总结表
模型格式 |
精度 |
内存使用 |
设备要求 |
最佳用例 |
BF16 |
最高 |
高 |
支持BF16的GPU/CPU |
高速推理且内存占用减少 |
F16 |
高 |
高 |
支持FP16的设备 |
当BF16不可用时的GPU推理 |
Q4_K |
低 |
非常低 |
CPU或低显存设备 |
内存受限环境的最佳选择 |
Q6_K |
中低 |
低 |
内存较多的CPU |
量化模型中准确性较好的选择 |
Q8 |
中 |
中等 |
有足够显存的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量化的模型,准确性更好。
- 需要更多内存,但提供更高的精度。
📄 许可证
本项目采用MIT许可证。
致谢
感谢 Bartowski 上传imartix并在量化方面给予的指导,使我能够生成这些gguf文件。
感谢 Unsloth 修复了许多模型的错误。
感谢您的支持!🙌