模型简介
模型特点
模型能力
使用案例
🚀 phi-4 GGUF模型
phi-4 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)。
✨ 极低比特量化(IQ3_XS、IQ3_S、IQ3_M、Q4_K、Q4_0)
这些模型针对极致的内存效率进行了优化,非常适合低功耗设备或内存是关键限制因素的大规模部署。
-
IQ3_XS:超低比特量化(3位),具有极致的内存效率。
- 用例:最适合超低内存设备,即使Q4_K也太大的情况。
- 权衡:与高比特量化相比,准确性较低。
-
IQ3_S:小块大小,以实现最大的内存效率。
- 用例:最适合低内存设备,当IQ3_XS过于激进时。
-
IQ3_M:中等块大小,比IQ3_S具有更好的准确性。
- 用例:适用于低内存设备,当IQ3_S限制太大时。
-
Q4_K:4位量化,具有逐块优化以提高准确性。
- 用例:最适合低内存设备,当Q6_K太大时。
-
Q4_0:纯4位量化,针对ARM设备进行了优化。
- 用例:最适合基于ARM的设备或低内存环境。
✨ 总结表格:模型格式选择
模型格式 | 精度 | 内存使用 | 设备要求 | 最佳用例 |
---|---|---|---|---|
BF16 | 最高 | 高 | 支持BF16的GPU/CPU | 减少内存的高速推理 |
F16 | 高 | 高 | 支持FP16的设备 | 当BF16不可用时的GPU推理 |
Q4_K | 中低 | 低 | CPU或低显存设备 | 内存受限环境的最佳选择 |
Q6_K | 中等 | 适中 | 内存更多的CPU | 量化模型中准确性更好的选择 |
Q8_0 | 高 | 适中 | 有足够显存的CPU或GPU | 量化模型中最佳的准确性 |
IQ3_XS | 非常低 | 非常低 | 超低内存设备 | 极致的内存效率和低准确性 |
Q4_0 | 低 | 低 | ARM或低内存设备 | llama.cpp可以针对ARM设备进行优化 |
📦 包含的文件及详情
phi-4-bf16.gguf
- 模型权重以BF16格式保存。
- 如果您想将模型重新量化为不同的格式,请使用此文件。
- 如果您的设备支持BF16加速,则为最佳选择。
phi-4-f16.gguf
- 模型权重以F16格式存储。
- 如果您的设备支持FP16,尤其是当BF16不可用时,请使用此文件。
phi-4-bf16-q8_0.gguf
- 输出和嵌入保持为BF16。
- 所有其他层量化为Q8_0。
- 如果您的设备支持BF16,并且您想要一个量化版本,请使用此文件。
phi-4-f16-q8_0.gguf
- 输出和嵌入保持为F16。
- 所有其他层量化为Q8_0。
phi-4-q4_k.gguf
- 输出和嵌入量化为Q8_0。
- 所有其他层量化为Q4_K。
- 适用于内存有限的CPU推理。
phi-4-q4_k_s.gguf
- 最小的Q4_K变体,以牺牲准确性为代价减少内存使用。
- 最适合极低内存设置。
phi-4-q6_k.gguf
- 输出和嵌入量化为Q8_0。
- 所有其他层量化为Q6_K。
phi-4-q8_0.gguf
- 完全Q8量化的模型,以获得更好的准确性。
- 需要更多内存,但提供更高的精度。
phi-4-iq3_xs.gguf
- IQ3_XS量化,针对极致的内存效率进行了优化。
- 最适合超低内存设备。
phi-4-iq3_m.gguf
- IQ3_M量化,提供中等块大小以提高准确性。
- 适用于低内存设备。
phi-4-q4_0.gguf
- 纯Q4_0量化,针对ARM设备进行了优化。
- 最适合低内存环境。
- 若追求更高准确性,建议使用IQ4_NL。
📚 关于模型的其他说明
如果你觉得这些模型有用
请点击点赞 ❤。另外,如果你能测试我的网络监控助手,我将不胜感激👉 网络监控助手。
💬 点击聊天图标(主页和仪表盘页面的右下角)。选择一个大语言模型;在不同的大语言模型类型之间切换:TurboLLM -> FreeLLM -> TestLLM。
测试内容
我正在针对我的网络监控服务进行函数调用实验。使用小型开源模型。我关注的问题是“模型可以多小还能正常工作”。
🟡 TestLLM – 使用llama.cpp在CPU虚拟机的6个线程上运行当前测试模型(加载大约需要15秒。推理速度相当慢,并且一次只能处理一个用户提示 — 仍在努力进行扩展!)。如果你好奇,我很乐意分享它的工作原理!
其他可用的AI助手
🟢 TurboLLM – 使用gpt-4o-mini,速度快!注意:由于OpenAI模型价格昂贵,令牌有限,但你可以登录或下载免费的网络监控代理以获取更多令牌,或者使用TestLLM。
🔵 HugLLM – 运行开源的Hugging Face模型,速度快,运行小型模型(≈8B),因此质量较低,可获得2倍的令牌(取决于Hugging Face API的可用性)。
📚 Phi-4模型卡片
模型概述
属性 | 详情 |
---|---|
开发者 | 微软研究院 |
描述 | phi-4 是一个先进的开源模型,基于合成数据集、经过筛选的公共领域网站数据、获取的学术书籍和问答数据集构建。这种方法的目标是确保小型且强大的模型使用专注于高质量和高级推理的数据进行训练。phi-4 经过了严格的增强和对齐过程,包括监督微调(SFT)和直接偏好优化(DPO),以确保精确遵循指令和强大的安全措施。 |
架构 | 140亿参数,仅含解码器的密集Transformer模型 |
输入 | 文本,最适合聊天格式的提示 |
上下文长度 | 16K令牌 |
GPU | 1920个H100 - 80G |
训练时间 | 21天 |
训练数据 | 9.8T令牌 |
输出 | 对输入的生成文本响应 |
日期 | 2024年10月 - 2024年11月 |
状态 | 在离线数据集上训练的静态模型,公开可用数据的截止日期为2024年6月及更早 |
发布日期 | 2024年12月12日 |
许可证 | MIT |
预期用途
主要用例
我们的模型旨在加速语言模型的研究,用作生成式AI功能的构建块。它适用于通用AI系统和应用程序(主要是英文),这些应用程序需要:
- 内存/计算受限的环境。
- 低延迟场景。
- 推理和逻辑能力。
非预期用例
我们的模型并非专门为所有下游用途设计或评估,因此:
- 开发者在选择用例时应考虑语言模型的常见限制,并在特定下游用例中使用之前评估和减轻准确性、安全性和公平性方面的问题,特别是在高风险场景中。
- 开发者应了解并遵守与其用例相关的适用法律法规(例如隐私、贸易等),包括模型对英文的侧重。
- 本模型卡片中的任何内容均不应被解释为或视为对模型发布所依据的许可证的限制或修改。
数据概述
训练数据集
我们的训练数据是Phi - 3所用数据的扩展,包括来自以下多种来源的数据:
- 经过严格质量筛选的公开可用文档、精选的高质量教育数据和代码。
- 为教授数学、编码、常识推理、世界常识(科学、日常活动、心智理论等)而新创建的合成“教科书式”数据。
- 获取的学术书籍和问答数据集。
- 涵盖各种主题的高质量聊天格式监督数据,以反映人类在遵循指令、真实性、诚实性和有用性等不同方面的偏好。
多语言数据约占我们总数据的8%。我们专注于可能提高模型推理能力的数据质量,并筛选公开可用文档以包含适当水平的知识。
基准数据集
我们使用OpenAI的SimpleEval和我们自己的内部基准来评估phi-4
的能力,具体如下:
- MMLU:流行的多任务语言理解聚合数据集。
- MATH:具有挑战性的竞赛数学问题。
- GPQA:复杂的研究生水平科学问题。
- DROP:复杂的理解和推理任务。
- MGSM:多语言小学算术问题。
- HumanEval:功能性代码生成。
- SimpleQA:事实性回答。
安全性
方法
phi-4
采用了强大的安全后训练方法。这种方法利用了各种开源和内部生成的合成数据集。用于安全对齐的总体技术是监督微调(SFT)和迭代直接偏好优化(DPO)的结合,包括专注于有用性和无害性的公开可用数据集,以及针对多个安全类别的各种问答。
安全评估和红队测试
在发布之前,phi-4
遵循了多方面的评估方法。使用多个开源安全基准和内部工具进行了定量评估,利用对抗性对话模拟。为了进行定性安全评估,我们与微软的独立AI红队(AIRT)合作,评估phi-4
在普通和对抗性用户场景中的安全风险。在普通用户场景中,AIRT模拟了典型的单轮和多轮交互,以识别潜在的风险行为。在对抗性用户场景中,测试了旨在故意破坏模型安全训练的各种技术,包括越狱攻击、基于编码的攻击、多轮攻击和对抗性后缀攻击。
如需了解安全对齐的更多详细信息,请参考技术报告。
模型质量
为了了解phi-4
的能力,我们在OpenAI的SimpleEval基准上与一组模型进行了比较。
以下是模型在代表性基准上的质量概述。在下表中,数值越高表示性能越好:
类别 | 基准 | phi - 4 (14B) | phi - 3 (14B) | Qwen 2.5 (14B instruct) | GPT - 4o - mini | Llama - 3.3 (70B instruct) | Qwen 2.5 (72B instruct) | GPT - 4o |
---|---|---|---|---|---|---|---|---|
流行聚合基准 | MMLU | 84.8 | 77.9 | 79.9 | 81.8 | 86.3 | 85.3 | 88.1 |
科学 | GPQA | 56.1 | 31.2 | 42.9 | 40.9 | 49.1 | 49.0 | 50.6 |
数学 | MGSM MATH |
80.6 80.4 |
53.5 44.6 |
79.6 75.6 |
86.5 73.0 |
89.1 66.3* |
87.3 80.0 |
90.4 74.6 |
代码生成 | HumanEval | 82.6 | 67.8 | 72.1 | 86.2 | 78.9* | 80.4 | 90.6 |
事实知识 | SimpleQA | 3.0 | 7.6 | 5.4 | 9.9 | 20.9 | 10.2 | 39.4 |
推理 | DROP | 75.5 | 68.3 | 85.5 | 79.3 | 90.2 | 76.7 | 80.9 |
* 这些分数低于Meta报告的分数,可能是因为SimpleEval有严格的格式要求,Llama模型在遵循这些要求方面存在特别的困难。我们使用SimpleEval框架是因为它具有可重复性,但Meta报告Llama - 3.3 - 70B在MATH上的分数为77,在HumanEval上的分数为88。
使用方法
输入格式
鉴于训练数据的性质,phi-4
最适合使用以下聊天格式的提示:
<|im_start|>system<|im_sep|>
You are a medieval knight and must provide explanations to modern people.<|im_end|>
<|im_start|>user<|im_sep|>
How should I explain the Internet?<|im_end|>
<|im_start|>assistant<|im_sep|>
使用transformers
库
import transformers
pipeline = transformers.pipeline(
"text-generation",
model="microsoft/phi-4",
model_kwargs={"torch_dtype": "auto"},
device_map="auto",
)
messages = [
{"role": "system", "content": "You are a medieval knight and must provide explanations to modern people."},
{"role": "user", "content": "How should I explain the Internet?"},
]
outputs = pipeline(messages, max_new_tokens=128)
print(outputs[0]["generated_text"][-1])
负责任AI考虑
与其他语言模型一样,phi-4
可能会表现出不公平、不可靠或冒犯性的行为。需要注意的一些限制行为包括:
- 服务质量:该模型主要在英文文本上进行训练。非英文语言的性能会较差。训练数据中代表性较少的英语变体可能比标准美式英语的性能更差。
phi-4
不旨在支持多语言使用。 - 伤害的呈现和刻板印象的延续:这些模型可能会过度或不足地呈现某些人群,抹去某些群体的代表性,或强化贬低性或负面的刻板印象。尽管进行了安全后训练,但由于不同群体的代表性水平不同或训练数据中反映现实世界模式和社会偏见的负面刻板印象示例的普遍性,这些限制可能仍然存在。
- 不适当或冒犯性内容:这些模型可能会产生其他类型的不适当或冒犯性内容,因此在没有针对特定用例的额外缓解措施的情况下,可能不适合在敏感环境中部署。
- 信息可靠性:语言模型可能会生成无意义的内容或编造听起来合理但不准确或过时的内容。
- 代码范围有限:
phi-4
的大部分训练数据基于Python,并使用常见的包,如typing
、math
、random
、collections
、datetime
、itertools
。如果模型生成使用其他包的Python脚本或其他语言的脚本,我们强烈建议用户手动验证所有API的使用。
开发者应应用负责任AI的最佳实践,并负责确保特定用例符合相关法律法规(例如隐私、贸易等)。强烈建议使用像Azure AI Content Safety这样具有高级防护机制的安全服务。需要考虑的重要方面包括:
- 资源分配:模型可能不适合对法律地位、资源分配或生活机会(例如住房、就业、信贷等)有重大影响的场景,除非进行进一步评估和额外的去偏技术。
- 高风险场景:开发者应评估在高风险场景中使用模型的适用性,在这些场景中,不公平、不可靠或冒犯性的输出可能会造成极大的代价或导致伤害。这包括在敏感或专业领域提供建议,其中准确性和可靠性至关重要(例如法律或健康建议)。应根据部署上下文在应用程序级别实施额外的保障措施。
- 错误信息:模型可能会产生不准确的信息。开发者应遵循透明度最佳实践,并告知最终用户他们正在与AI系统进行交互。在应用程序级别,开发者可以构建反馈机制和管道,将响应与特定用例的上下文信息相结合,这种技术称为检索增强生成(RAG)。
- 有害内容生成:开发者应根据上下文评估输出,并使用适用于其用例的可用安全分类器或自定义解决方案。
- 滥用:可能存在其他形式的滥用,如欺诈、垃圾邮件或恶意软件生产,开发者应确保其应用程序不违反适用的法律法规。
📄 许可证
本项目采用MIT许可证,详情请见许可证链接。



