模型概述
模型特點
模型能力
使用案例
🚀 Llama-3.1-Nemotron-Nano-4B-v1.1 GGUF模型
Llama-3.1-Nemotron-Nano-4B-v1.1是一款大語言模型,它基於特定技術優化,在準確性和效率間取得了良好平衡,適用於多種AI應用場景,如AI代理系統、聊天機器人等。
🚀 快速開始
推理模式控制
推理模式(開啟/關閉)通過系統提示進行控制,所有指令需包含在用戶提示中。
參數設置建議
- 推理開啟模式:建議將溫度設置為
0.6
,Top P設置為0.95
。 - 推理關閉模式:建議使用貪婪解碼。
代碼依賴
代碼需要 transformers
包版本為 4.44.2
或更高。
推理開啟示例
import torch
import transformers
model_id = "nvidia/Llama-3.1-Nemotron-Nano-4B-v1.1"
model_kwargs = {"torch_dtype": torch.bfloat16, "device_map": "auto"}
tokenizer = transformers.AutoTokenizer.from_pretrained(model_id)
tokenizer.pad_token_id = tokenizer.eos_token_id
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
tokenizer=tokenizer,
max_new_tokens=32768,
temperature=0.6,
top_p=0.95,
**model_kwargs
)
# Thinking can be "on" or "off"
thinking = "on"
print(pipeline([{"role": "system", "content": f"detailed thinking {thinking}"}, {"role": "user", "content": "Solve x*(sin(x)+2)=0"}]))
推理關閉示例
import torch
import transformers
model_id = "nvidia/Llama-3.1-Nemotron-Nano-4B-v1"
model_kwargs = {"torch_dtype": torch.bfloat16, "device_map": "auto"}
tokenizer = transformers.AutoTokenizer.from_pretrained(model_id)
tokenizer.pad_token_id = tokenizer.eos_token_id
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
tokenizer=tokenizer,
max_new_tokens=32768,
do_sample=False,
**model_kwargs
)
# Thinking can be "on" or "off"
thinking = "off"
print(pipeline([{"role": "system", "content": f"detailed thinking {thinking}"}, {"role": "user", "content": "Solve x*(sin(x)+2)=0"}]))
阻止模型思考示例
import torch
import transformers
model_id = "nvidia/Llama-3.1-Nemotron-Nano-4B-v1.1"
model_kwargs = {"torch_dtype": torch.bfloat16, "device_map": "auto"}
tokenizer = transformers.AutoTokenizer.from_pretrained(model_id)
tokenizer.pad_token_id = tokenizer.eos_token_id
# Thinking can be "on" or "off"
thinking = "off"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
tokenizer=tokenizer,
max_new_tokens=32768,
do_sample=False,
**model_kwargs
)
print(pipeline([{"role": "system", "content": f"detailed thinking {thinking}"}, {"role": "user", "content": "Solve x*(sin(x)+2)=0"}, {"role":"assistant", "content":"<think>\n</think>"}]))
運行支持工具調用的vLLM服務器
Llama-3.1-Nemotron-Nano-4B-v1.1支持工具調用。此HF倉庫託管了一個工具調用解析器以及Jinja格式的聊天模板,可用於啟動vLLM服務器。
以下是一個啟動支持工具調用的vLLM服務器的shell腳本示例。vllm/vllm-openai:v0.6.6
或更高版本應支持該模型。
#!/bin/bash
CWD=$(pwd)
PORT=5000
git clone https://huggingface.co/nvidia/Llama-3.1-Nemotron-Nano-4B-v1.1
docker run -it -
✨ 主要特性
模型生成細節
該模型使用 llama.cpp 在提交版本 92ecdcc0
時生成。
超低比特量化(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顯存
- 內存受限的部署
- 可容忍 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
- 需要在速度、內存使用和準確性之間取得平衡
- 在為FP16計算優化的GPU或其他設備上運行
避免使用場景:
- 設備缺乏原生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設備優化 |
📦 安裝指南
文檔未提及具體安裝步驟,暫無法提供。
💻 使用示例
基礎用法
import torch
import transformers
model_id = "nvidia/Llama-3.1-Nemotron-Nano-4B-v1.1"
model_kwargs = {"torch_dtype": torch.bfloat16, "device_map": "auto"}
tokenizer = transformers.AutoTokenizer.from_pretrained(model_id)
tokenizer.pad_token_id = tokenizer.eos_token_id
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
tokenizer=tokenizer,
max_new_tokens=32768,
temperature=0.6,
top_p=0.95,
**model_kwargs
)
# Thinking can be "on" or "off"
thinking = "on"
print(pipeline([{"role": "system", "content": f"detailed thinking {thinking}"}, {"role": "user", "content": "Solve x*(sin(x)+2)=0"}]))
高級用法
import torch
import transformers
model_id = "nvidia/Llama-3.1-Nemotron-Nano-4B-v1.1"
model_kwargs = {"torch_dtype": torch.bfloat16, "device_map": "auto"}
tokenizer = transformers.AutoTokenizer.from_pretrained(model_id)
tokenizer.pad_token_id = tokenizer.eos_token_id
# Thinking can be "on" or "off"
thinking = "off"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
tokenizer=tokenizer,
max_new_tokens=32768,
do_sample=False,
**model_kwargs
)
print(pipeline([{"role": "system", "content": f"detailed thinking {thinking}"}, {"role": "user", "content": "Solve x*(sin(x)+2)=0"}, {"role":"assistant", "content":"<think>\n</think>"}]))
📚 詳細文檔
模型概述
Llama-3.1-Nemotron-Nano-4B-v1.1是一個大語言模型(LLM),它是 nvidia/Llama-3.1-Minitron-4B-Width-Base 的衍生模型,該基礎模型由Llama 3.1 8B使用 特定的LLM壓縮技術 創建,在模型準確性和效率方面有所改進。它是一個經過後期訓練的推理模型,適用於推理、人類聊天偏好和任務,如RAG和工具調用。
該模型在單個RTX GPU上即可運行,支持128K的上下文長度,在模型準確性和效率之間實現了良好的平衡。
模型訓練
該模型經過多階段的後期訓練,以增強其推理和非推理能力。包括針對數學、代碼、推理和工具調用的有監督微調階段,以及使用獎勵感知偏好優化(RPO)算法的多個強化學習階段,用於聊天和指令跟隨。最終的模型檢查點是在合併最終的SFT和RPO檢查點後獲得的。
模型家族
該模型是Llama Nemotron系列的一部分,該系列的其他模型如下:
許可證
使用此模型受 NVIDIA開放模型許可證 約束。額外信息:Llama 3.1社區許可協議。該模型基於Llama構建。
模型開發者
NVIDIA
模型訓練時間
2024年8月至2025年5月
數據新鮮度
預訓練數據截止到2023年6月。
使用場景
適用於開發AI代理系統、聊天機器人、RAG系統和其他AI應用的開發者,也適用於典型的指令跟隨任務。該模型在模型準確性和計算效率之間取得了平衡,可在單個RTX GPU上本地使用。
發佈日期
2025年5月20日
參考文獻
- [2408.11796] LLM Pruning and Distillation in Practice: The Minitron Approach
- [2502.00203] Reward-aware Preference Optimization: A Unified Mathematical Framework for Model Alignment
- [2505.00949] Llama-Nemotron: Efficient Reasoning Models
模型架構
- 架構類型:密集解碼器Transformer模型
- 網絡架構:Llama 3.1 Minitron Width 4B Base
預期用途
Llama-3.1-Nemotron-Nano-4B-v1.1是一個通用的推理和聊天模型,旨在用於英語和編程語言。也支持其他非英語語言(德語、法語、意大利語、葡萄牙語、印地語、西班牙語和泰語)。
輸入
- 輸入類型:文本
- 輸入格式:字符串
- 輸入參數:一維(1D)
- 其他輸入相關屬性:上下文長度最大為131,072個令牌
輸出
- 輸出類型:文本
- 輸出格式:字符串
- 輸出參數:一維(1D)
- 其他輸出相關屬性:上下文長度最大為131,072個令牌
模型版本
1.1(2025年5月20日)
軟件集成
- 運行時引擎:NeMo 24.12
- 推薦的硬件微架構兼容性:
- NVIDIA Hopper
- NVIDIA Ampere
🔧 技術細節
模型生成
該模型使用 llama.cpp 在提交版本 92ecdcc0
時生成。
量化技術
採用了精度自適應量化方法,針對超低比特模型(1 - 2比特)進行優化。通過動態精度分配和關鍵組件保護,在保持高內存效率的同時提高了模型的準確性。在基準測試中,多個量化變體在困惑度和推理速度方面都有良好表現。
推理模式控制
推理模式(開啟/關閉)通過系統提示進行控制,用戶可以根據具體需求設置不同的參數,如溫度、Top P等,以實現不同的推理效果。
📄 許可證
使用此模型受 NVIDIA開放模型許可證 約束。額外信息:Llama 3.1社區許可協議。該模型基於Llama構建。
其他說明
模型文件說明
文件名 | 說明 |
---|---|
Llama-3.1-Nemotron-Nano-4B-v1.1-bf16.gguf |
模型權重保存為BF16格式。若需要將模型重新量化為其他格式,或設備支持BF16加速,可使用此文件。 |
Llama-3.1-Nemotron-Nano-4B-v1.1-f16.gguf |
模型權重保存為F16格式。若設備支持FP16,特別是BF16不可用時,可使用此文件。 |
Llama-3.1-Nemotron-Nano-4B-v1.1-bf16-q8_0.gguf |
輸出和嵌入層保持為BF16,其他層量化為Q8_0。適用於支持BF16且需要量化版本的設備。 |
Llama-3.1-Nemotron-Nano-4B-v1.1-f16-q8_0.gguf |
輸出和嵌入層保持為F16,其他層量化為Q8_0。 |
Llama-3.1-Nemotron-Nano-4B-v1.1-q4_k.gguf |
輸出和嵌入層量化為Q8_0,其他層量化為Q4_K。適合內存有限的CPU推理。 |
Llama-3.1-Nemotron-Nano-4B-v1.1-q4_k_s.gguf |
最小的Q4_K變體,以犧牲一定準確性為代價減少內存使用。適合極低內存設置。 |
Llama-3.1-Nemotron-Nano-4B-v1.1-q6_k.gguf |
輸出和嵌入層量化為Q8_0,其他層量化為Q6_K。 |
Llama-3.1-Nemotron-Nano-4B-v1.1-q8_0.gguf |
全Q8量化模型,準確性更高,但需要更多內存。 |
Llama-3.1-Nemotron-Nano-4B-v1.1-iq3_xs.gguf |
IQ3_XS量化,針對極端內存效率優化。適合超低內存設備。 |
Llama-3.1-Nemotron-Nano-4B-v1.1-iq3_m.gguf |
IQ3_M量化,提供中等塊大小以提高準確性。適合低內存設備。 |
Llama-3.1-Nemotron-Nano-4B-v1.1-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 進行以下操作:
- 創建自定義命令處理器,在免費網絡監控代理上運行 .net 代碼
- 即時網絡診斷和監控
- 安全審計
- 滲透測試(Nmap/Metasploit)
- 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 代碼,這是一個非常靈活和強大的功能,請謹慎使用!
支持與反饋
作者自行承擔創建這些模型文件的服務器費用、運行免費網絡監控服務的費用以及從Novita和OpenAI進行推理的費用。模型創建和免費網絡監控項目的所有代碼都是 開源的,歡迎使用。
如果您認可作者的工作,請考慮 請作者喝咖啡。您的支持有助於支付服務成本,並允許作者提高所有人的令牌限制。
作者也歡迎工作機會或贊助。感謝支持!



