模型概述
模型特點
模型能力
使用案例
🚀 Phi-4-mini-reasoning GGUF 模型
Phi-4-mini-reasoning 是一個基於合成數據構建的輕量級開放模型,專注於高質量、富含推理的數據,並針對更高級的數學推理能力進行了進一步微調。該模型屬於 Phi-4 模型家族,支持 128K 令牌上下文長度。
✨ 主要特性
- 超低比特量化:引入了適用於超低比特模型(1 - 2 比特)的精度自適應量化方法,在 Llama-3-8B 上經基準測試證明有改進。
- 多種模型格式:提供 BF16、F16、量化模型等多種格式,可根據硬件能力和內存限制選擇。
- 支持長上下文:支持 128K 令牌上下文長度,能更好地處理長文本。
- 數學推理能力強:經過微調,在數學推理任務上表現出色,適用於正式證明生成、符號計算等多種數學推理場景。
📚 詳細文檔
模型生成詳情
此模型使用 llama.cpp 在提交版本 19e899c
時生成。
超低比特量化(IQ-DynamicGate,1 - 2 比特)
我們最新的量化方法為超低比特模型(1 - 2 比特)引入了精度自適應量化,在 Llama-3-8B 上經基準測試證明有改進。這種方法使用特定層策略,在保持極高內存效率的同時保留準確性。
基準測試上下文
所有測試均在 Llama-3-8B-Instruct 上進行,使用以下條件:
- 標準困惑度評估管道
- 2048 令牌上下文窗口
- 所有量化使用相同的提示集
方法
- 動態精度分配:
- 前/後 25% 的層 → IQ4_XS(選定層)
- 中間 50% → IQ2_XXS/IQ3_S(提高效率)
- 關鍵組件保護:
- 嵌入/輸出層使用 Q5_K
- 與標準 1 - 2 比特量化相比,誤差傳播降低 38%
量化性能比較(Llama-3-8B)
量化方式 | 標準困惑度 | DynamicGate 困惑度 | 困惑度變化率 | 標準大小 | DG 大小 | 大小變化 | 標準速度 | DG 速度 |
---|---|---|---|---|---|---|---|---|
IQ2_XXS | 11.30 | 9.84 | -12.9% | 2.5G | 2.6G | +0.1G | 234s | 246s |
IQ2_XS | 11.72 | 11.63 | -0.8% | 2.7G | 2.8G | +0.1G | 242s | 246s |
IQ2_S | 14.31 | 9.02 | -36.9% | 2.7G | 2.9G | +0.2G | 238s | 244s |
IQ1_M | 27.46 | 15.41 | -43.9% | 2.2G | 2.5G | +0.3G | 206s | 212s |
IQ1_S | 53.07 | 32.00 | -39.7% | 2.1G | 2.4G | +0.3G | 184s | 209s |
關鍵說明:
- PPL = 困惑度(越低越好)
- 困惑度變化率 = 從標準量化到 DynamicGate 量化的百分比變化
- 速度 = 推理時間(CPU avx2,2048 令牌上下文)
- 大小差異反映了混合量化的開銷
主要改進:
- IQ1_M 的困惑度大幅降低 43.9%(從 27.46 降至 15.41)
- IQ2_S 的困惑度降低 36.9%,同時僅增加 0.2GB
- IQ1_S 儘管是 1 比特量化,但仍保持 39.7% 的更高準確性
權衡:
- 所有變體的大小都有適度增加(0.1 - 0.3GB)
- 推理速度相當(差異 < 5%)
使用場景
- 適配 GPU VRAM
- 內存受限的部署
- 可容忍 1 - 2 比特誤差的 CPU 和邊緣設備
- 超低比特量化研究
選擇合適的模型格式
選擇正確的模型格式取決於您的硬件能力和內存限制。
BF16(Brain Float 16) - 若支持 BF16 加速則使用
- 一種 16 位浮點格式,專為更快的計算而設計,同時保留良好的精度。
- 提供與 FP32 相似的動態範圍,但內存使用更低。
- 如果您的硬件支持 BF16 加速(請檢查設備規格),建議使用。
- 與 FP32 相比,適用於具有減少內存佔用的高性能推理。
使用場景:
- 您的硬件具有原生 BF16 支持(例如,較新的 GPU、TPU)。
- 您希望在節省內存的同時獲得更高的精度。
- 您計劃將模型重新量化為另一種格式。
避免使用場景:
- 您的硬件不支持 BF16(可能會回退到 FP32 並運行較慢)。
- 您需要與缺乏 BF16 優化的舊設備兼容。
F16(Float 16) - 比 BF16 更廣泛支持
- 一種 16 位浮點格式,精度較高,但取值範圍比 BF16 小。
- 適用於大多數支持 FP16 加速的設備(包括許多 GPU 和一些 CPU)。
- 數值精度略低於 BF16,但通常足以進行推理。
使用場景:
- 您的硬件支持 FP16 但不支持 BF16。
- 您需要在速度、內存使用和準確性之間取得平衡。
- 您在 GPU 或其他針對 FP16 計算優化的設備上運行。
避免使用場景:
- 您的設備缺乏原生 FP16 支持(可能會比預期運行更慢)。
- 您有內存限制。
量化模型(Q4_K、Q6_K、Q8 等) - 用於 CPU 和低 VRAM 推理
量化可在儘可能保持準確性的同時減小模型大小和內存使用。
- 低比特模型(Q4_K) → 最適合最小內存使用,可能精度較低。
- 高比特模型(Q6_K、Q8_0) → 準確性更好,需要更多內存。
使用場景:
- 您在 CPU 上運行推理,需要優化的模型。
- 您的設備具有低 VRAM,無法加載全精度模型。
- 您希望在保持合理準確性的同時減少內存佔用。
避免使用場景:
- 您需要最高準確性(全精度模型更適合)。
- 您的硬件有足夠的 VRAM 用於更高精度的格式(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 或低 VRAM 設備 | 最適合內存受限的環境 |
Q6_K | 中 | 中等 | 內存更多的 CPU | 在量化的同時具有更好的準確性 |
Q8_0 | 高 | 中等 | 有足夠 VRAM 的 CPU 或 GPU | 量化模型中準確性最高 |
IQ3_XS | 非常低 | 非常低 | 超低內存設備 | 極端內存效率和低準確性 |
Q4_0 | 低 | 低 | ARM 或低內存設備 | llama.cpp 可針對 ARM 設備進行優化 |
包含文件及詳情
Phi-4-mini-reasoning-bf16.gguf
- 模型權重以 BF16 保存。
- 如果您想將模型重新量化為不同格式,請使用此文件。
- 如果您的設備支持 BF16 加速,效果最佳。
Phi-4-mini-reasoning-f16.gguf
- 模型權重以 F16 存儲。
- 如果您的設備支持 FP16,尤其是在 BF16 不可用時使用。
Phi-4-mini-reasoning-bf16-q8_0.gguf
- 輸出和嵌入保持為 BF16。
- 所有其他層量化為 Q8_0。
- 如果您的設備支持 BF16 並且您想要量化版本,請使用。
Phi-4-mini-reasoning-f16-q8_0.gguf
- 輸出和嵌入保持為 F16。
- 所有其他層量化為 Q8_0。
Phi-4-mini-reasoning-q4_k.gguf
- 輸出和嵌入量化為 Q8_0。
- 所有其他層量化為 Q4_K。
- 適用於內存有限的 CPU 推理。
Phi-4-mini-reasoning-q4_k_s.gguf
- 最小的 Q4_K 變體,以準確性為代價使用更少的內存。
- 最適合極低內存設置。
Phi-4-mini-reasoning-q6_k.gguf
- 輸出和嵌入量化為 Q8_0。
- 所有其他層量化為 Q6_K。
Phi-4-mini-reasoning-q8_0.gguf
- 完全 Q8 量化的模型,以獲得更好的準確性。
- 需要更多內存,但提供更高的精度。
Phi-4-mini-reasoning-iq3_xs.gguf
- IQ3_XS 量化,針對極端內存效率進行了優化。
- 最適合超低內存設備。
Phi-4-mini-reasoning-iq3_m.gguf
- IQ3_M 量化,提供中等塊大小以獲得更好的準確性。
- 適用於低內存設備。
Phi-4-mini-reasoning-q4_0.gguf
- 純 Q4_0 量化,針對 ARM 設備進行了優化。
- 最適合低內存環境。
- 為了更好的準確性,建議使用 IQ4_NL。
模型測試
如果您發現這些模型有用,請點擊“點贊”!同時,幫助我測試我的支持量子安全檢查的 AI 網絡監控助手: 免費網絡監控器
測試方法
選擇一個 AI 助手類型:
TurboLLM
(GPT-4o-mini)HugLLM
(Hugginface 開源)TestLLM
(僅實驗性 CPU)
測試內容
我正在突破用於 AI 網絡監控的小型開源模型的極限,具體包括:
- 針對即時網絡服務進行函數調用
- 模型可以多小,同時仍能處理:
- 自動 Nmap 掃描
- 量子就緒檢查
- 網絡監控任務
TestLLM - 當前實驗模型(llama.cpp 在 2 個 CPU 線程上)
- 零配置設置
- 加載時間約 30 秒(推理速度慢,但無 API 成本)
- 尋求幫助! 如果您對邊緣設備 AI 感興趣,讓我們一起合作!
其他助手
- TurboLLM - 使用 gpt-4o-mini 進行:
- 創建自定義 cmd 處理器以在免費網絡監控代理上運行 .net 代碼
- 即時網絡診斷和監控
- 安全審計
- 滲透測試 (Nmap/Metasploit)
- 通過登錄或下載我們集成了 AI 助手的免費網絡監控代理獲取更多令牌
- HugLLM - 最新的開源模型:
- 在 Hugging Face 推理 API 上運行
示例命令
"Give me info on my websites SSL certificate"
"Check if my server is using quantum safe encyption for communication"
"Run a comprehensive security audit on my server"
"Create a cmd processor to .. (what ever you want)"
注意,您需要安裝免費網絡監控代理才能運行 .net 代碼。這是一個非常靈活和強大的功能,請謹慎使用!
預期用途
主要用例
Phi-4-mini-reasoning 專為在內存/計算受限環境和延遲受限場景下解決多步驟、邏輯密集的數學問題而設計。一些用例包括正式證明生成、符號計算、高級文字問題以及廣泛的數學推理場景。這些模型在跨步驟保持上下文、應用結構化邏輯以及在需要深入分析思維的領域提供準確、可靠的解決方案方面表現出色。
用例考慮
此模型僅針對數學推理進行了設計和測試,並非專門為所有下游用途設計或評估。開發人員在選擇用例時,應考慮語言模型的常見限制以及不同語言之間的性能差異,並在特定下游用例中使用之前評估和緩解準確性、安全性和公平性問題,特別是在高風險場景中。開發人員應瞭解並遵守與其用例相關的適用法律或法規(包括但不限於隱私、貿易合規法律等)。
發佈說明
Phi-4-mini-reasoning 的此版本解決了用戶反饋和市場對緊湊型推理模型的需求。它是一個基於變壓器的緊湊型語言模型,針對數學推理進行了優化,旨在在計算或延遲受限的環境中提供高質量的逐步問題解決能力。該模型使用來自更強大模型(更大、更智能、更準確且更擅長遵循指令)的合成數學數據進行微調,從而提高了推理性能。Phi-4-mini-reasoning 在推理能力和效率之間取得了平衡,使其可能適用於教育應用、嵌入式輔導以及在邊緣或移動系統上的輕量級部署。如果發現 Phi-4-mini-reasoning 存在關鍵問題,請通過 MSRC 研究人員門戶或 secure@microsoft.com 及時報告。
模型質量
為了瞭解其能力,將 38 億參數的 Phi-4-mini-reasoning 模型與一組模型在各種推理基準上進行了比較。模型質量的高級概述如下:
模型 | AIME | MATH-500 | GPQA Diamond |
---|---|---|---|
o1-mini* | 63.6 | 90.0 | 60.0 |
DeepSeek-R1-Distill-Qwen-7B | 53.3 | 91.4 | 49.5 |
DeepSeek-R1-Distill-Llama-8B | 43.3 | 86.9 | 47.3 |
Bespoke-Stratos-7B* | 20.0 | 82.0 | 37.8 |
OpenThinker-7B* | 31.3 | 83.0 | 42.4 |
Llama-3.2-3B-Instruct | 6.7 | 44.4 | 25.3 |
Phi-4-Mini (基礎模型,38 億) | 10.0 | 71.8 | 36.9 |
Phi-4-mini-reasoning (38 億) | 57.5 | 94.6 | 52.0 |
總體而言,38 億參數的模型在多語言理解和推理能力方面達到了與更大模型相似的水平。然而,它仍然受到其大小的根本限制,對於某些任務,該模型沒有足夠的容量來存儲太多事實知識,因此用戶可能會遇到事實錯誤。但是,通過為 Phi-4 集成搜索引擎,特別是在 RAG 設置下使用模型時,可能可以解決這種弱點。
💻 使用示例
基礎用法
分詞器
Phi-4-mini-reasoning 支持最多 200064
個令牌的詞彙表大小。分詞器文件 已經提供了可用於下游微調的佔位符令牌,但也可以擴展到模型的詞彙表大小。
輸入格式
鑑於訓練數據的性質,Phi-4-mini-instruct 模型最適合使用特定格式的提示。以下是兩種主要格式:
聊天格式
此格式用於一般對話和指令:
<|system|>Your name is Phi, an AI math expert developed by Microsoft.<|end|><|user|>How to solve 3*x^2+4*x+5=1?<|end|><|assistant|>
使用 transformers 進行推理
Phi-4-mini-reasoning 已集成到 transformers
的 4.51.3
版本中。可以使用 pip list | grep transformers
驗證當前的 transformers
版本。Python 3.8 和 3.10 效果最佳。所需包列表如下:
flash_attn==2.7.4.post1
torch==2.5.1
transformers==4.51.3
accelerate==1.3.0
Phi-4-mini-reasoning 也可在 Azure AI Studio 中使用。
示例代碼
在獲得 Phi-4-mini-instruct 模型檢查點後,用戶可以使用以下示例代碼進行推理:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
torch.random.manual_seed(0)
model_id = "microsoft/Phi-4-mini-reasoning"
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="cuda",
torch_dtype="auto",
trust_remote_code=True,
)
tokenizer = AutoTokenizer.from_pretrained(model_id)
messages = [{
"role": "user",
"content": "How to solve 3*x^2+4*x+5=1?"
}]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_dict=True,
return_tensors="pt",
)
outputs = model.generate(
**inputs.to(model.device),
max_new_tokens=32768,
temperature=0.8,
top_p=0.95,
do_sample=True,
)
outputs = tokenizer.batch_decode(outputs[:, inputs["input_ids"].shape[-1]:])
print(outputs[0])
🔧 技術細節
模型架構
- 架構:Phi-4-mini-reasoning 與 Phi-4-Mini 具有相同的架構,有 38 億參數,是一個密集的僅解碼器 Transformer 模型。與 Phi-3.5-Mini 相比,Phi-4-Mini 的主要變化是 200K 詞彙表、分組查詢注意力以及共享輸入和輸出嵌入。
- 輸入:文本。最適合使用聊天格式的提示。
- 上下文長度:128K 令牌
- GPU:128 個 H100 - 80G
- 訓練時間:2 天
- 訓練數據:1500 億令牌
- 輸出:生成的文本
- 訓練時間:2024 年 2 月
- 狀態:這是一個基於離線數據集訓練的靜態模型,公開可用數據的截止日期為 2025 年 2 月。
- 支持語言:英語
- 發佈日期:2025 年 4 月
訓練數據集
文檔未詳細提及訓練數據集的具體信息。
📄 許可證
本項目採用 MIT 許可證,詳情請見 許可證鏈接。



