模型概述
模型特點
模型能力
使用案例
🚀 Llama-3.1-Nemotron-70B-Instruct-HF GGUF模型
Llama-3.1-Nemotron-70B-Instruct-HF GGUF模型是NVIDIA定製的大語言模型,旨在提升大語言模型對用戶查詢生成回覆的有效性。該模型在多個評估指標上表現出色,具有多種量化格式,能適應不同硬件和內存條件。
🚀 快速開始
你可以使用HuggingFace Transformers庫來使用該模型,需要2塊或更多80GB的GPU(NVIDIA Ampere或更新版本),並至少有150GB的可用磁盤空間用於下載。
此代碼已在Transformers v4.44.0、torch v2.4.0和2塊A100 80GB GPU上進行了測試,但任何支持meta-llama/Llama-3.1-70B-Instruct
的設置也應支持此模型。如果你遇到問題,可以考慮執行pip install -U transformers
。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF"
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.bfloat16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "How many r in strawberry?"
messages = [{"role": "user", "content": prompt}]
tokenized_message = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt", return_dict=True)
response_token_ids = model.generate(tokenized_message['input_ids'].cuda(),attention_mask=tokenized_message['attention_mask'].cuda(), max_new_tokens=4096, pad_token_id = tokenizer.eos_token_id)
generated_tokens =response_token_ids[:, len(tokenized_message['input_ids'][0]):]
generated_text = tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)[0]
print(generated_text)
# See response at top of model card
✨ 主要特性
超低比特量化與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 = 困惑度(越低越好)
- Δ 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(腦浮點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設備進行優化 |
📦 安裝指南
文檔未提及具體安裝步驟,可參考快速開始部分的代碼示例進行使用。
💻 使用示例
基礎用法
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF"
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.bfloat16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "How many r in strawberry?"
messages = [{"role": "user", "content": prompt}]
tokenized_message = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt", return_dict=True)
response_token_ids = model.generate(tokenized_message['input_ids'].cuda(),attention_mask=tokenized_message['attention_mask'].cuda(), max_new_tokens=4096, pad_token_id = tokenizer.eos_token_id)
generated_tokens =response_token_ids[:, len(tokenized_message['input_ids'][0]):]
generated_text = tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)[0]
print(generated_text)
# See response at top of model card
📚 詳細文檔
包含的文件及詳情
Llama-3.1-Nemotron-70B-Instruct-HF-bf16.gguf
- 模型權重以BF16保存。
- 如果你想將模型重新量化為不同格式,請使用此文件。
- 如果你的設備支持BF16加速,則最佳。
Llama-3.1-Nemotron-70B-Instruct-HF-f16.gguf
- 模型權重以F16存儲。
- 如果你的設備支持FP16,特別是當BF16不可用時使用。
Llama-3.1-Nemotron-70B-Instruct-HF-bf16-q8_0.gguf
- 輸出和嵌入層保持為BF16。
- 所有其他層量化為Q8_0。
- 如果你的設備支持BF16且你想要量化版本,請使用。
Llama-3.1-Nemotron-70B-Instruct-HF-f16-q8_0.gguf
- 輸出和嵌入層保持為F16。
- 所有其他層量化為Q8_0。
Llama-3.1-Nemotron-70B-Instruct-HF-q4_k.gguf
- 輸出和嵌入層量化為Q8_0。
- 所有其他層量化為Q4_K。
- 適用於內存有限的CPU推理。
Llama-3.1-Nemotron-70B-Instruct-HF-q4_k_s.gguf
- 最小的Q4_K變體,以犧牲準確性為代價使用更少的內存。
- 最適合極低內存設置。
Llama-3.1-Nemotron-70B-Instruct-HF-q6_k.gguf
- 輸出和嵌入層量化為Q8_0。
- 所有其他層量化為Q6_K。
Llama-3.1-Nemotron-70B-Instruct-HF-q8_0.gguf
- 完全Q8量化的模型,以獲得更好的準確性。
- 需要更多內存,但提供更高的精度。
Llama-3.1-Nemotron-70B-Instruct-HF-iq3_xs.gguf
- IQ3_XS量化,針對極端內存效率進行了優化。
- 最適合超低內存設備。
Llama-3.1-Nemotron-70B-Instruct-HF-iq3_m.gguf
- IQ3_M量化,提供中等塊大小以獲得更好的準確性。
- 適用於低內存設備。
Llama-3.1-Nemotron-70B-Instruct-HF-q4_0.gguf
- 純Q4_0量化,針對ARM設備進行了優化。
- 最適合低內存環境。
- 若追求更高準確性,優先選擇IQ4_NL。
測試LLM相關
如果你覺得這些模型有用,請點擊“點贊”!幫助測試我的人工智能網絡監控助手,進行量子就緒安全檢查: 👉 免費網絡監控器
測試方法
- 點擊聊天圖標(任何頁面右下角)
- 選擇一個AI助手類型:
TurboLLM
(GPT - 4 - mini)FreeLLM
(開源)TestLLM
(僅實驗性CPU)
測試內容
正在突破用於人工智能網絡監控的小型開源模型的極限,具體包括:
- 針對即時網絡服務的函數調用
- 模型可以多小,同時仍能處理:
- 自動化Nmap掃描
- 量子就緒檢查
- Metasploit集成
TestLLM – 當前實驗模型(llama.cpp在6個CPU線程上)
- ✅ 零配置設置
- ⏳ 30秒加載時間(推理慢,但無API成本)
- 🔧 尋求幫助! 如果你對邊緣設備人工智能感興趣,讓我們合作!
其他助手
🟢 TurboLLM – 使用gpt - 4 - mini進行:
- 即時網絡診斷
- 自動化滲透測試(Nmap/Metasploit)
- 🔑 通過下載我們的免費網絡監控代理獲得更多令牌
🔵 HugLLM – 開源模型(≈8B參數):
- 比TurboLLM多2倍的令牌
- 人工智能日誌分析
- 🌐 在Hugging Face推理API上運行
測試示例AI命令
"Give me info on my websites SSL certificate"
"Check if my server is using quantum safe encyption for communication"
"Run a quick Nmap vulnerability test"
模型概述
描述
Llama-3.1-Nemotron-70B-Instruct是NVIDIA定製的大語言模型,旨在提升大語言模型對用戶查詢生成回覆的有效性。
該模型在Arena Hard中達到85.0分,在AlpacaEval 2 LC中達到57.6分,在GPT - 4 - Turbo MT - Bench中達到8.98分,這些指標已知可預測LMSys Chatbot Arena Elo。
截至2024年10月1日,該模型在所有三個自動對齊基準測試中排名第一(AlpacaEval 2 LC的驗證標籤頁),領先於GPT - 4o和Claude 3.5 Sonnet等強大的前沿模型。
截至2024年10月24日,該模型在聊天機器人競技場排行榜上的Elo得分為1267(±7),排名第9,風格控制排名第26。
該模型使用RLHF(具體為REINFORCE)、Llama-3.1-Nemotron-70B-Reward和HelpSteer2 - 偏好提示在Llama-3.1-70B-Instruct模型上進行訓練作為初始策略。
Llama-3.1-Nemotron-70B-Instruct-HF已從Llama-3.1-Nemotron-70B-Instruct轉換而來,以支持在HuggingFace Transformers代碼庫中使用。請注意,評估結果可能與在NeMo - Aligner中評估的Llama-3.1-Nemotron-70B-Instruct略有不同,以下評估結果基於此。
可以在build.nvidia.com上免費嘗試託管推理,它帶有與OpenAI兼容的API接口。
評估指標
截至2024年10月1日,Llama-3.1-Nemotron-70B-Instruct在Arena Hard、AlpacaEval 2 LC(驗證標籤頁)和MT Bench(GPT - 4 - Turbo)上表現最佳。
模型 | Arena Hard | AlpacaEval | MT - Bench | 平均回覆長度 |
---|---|---|---|---|
詳情 | (95% CI) | 2 LC (SE) | (GPT - 4 - Turbo) | (MT - Bench的字符數) |
Llama-3.1-Nemotron-70B-Instruct | 85.0 (-1.5, 1.5) | 57.6 (1.65) | 8.98 | 2199.8 |
Llama-3.1-70B-Instruct | 55.7 (-2.9, 2.7) | 38.1 (0.90) | 8.22 | 1728.6 |
Llama-3.1-405B-Instruct | 69.3 (-2.4, 2.2) | 39.3 (1.43) | 8.49 | 1664.7 |
Claude-3-5-Sonnet-20240620 | 79.2 (-1.9, 1.7) | 52.4 (1.47) | 8.81 | 1619.9 |
GPT-4o-2024-05-13 | 79.3 (-2.1, 2.0) | 57.5 (1.47) | 8.74 | 1752.2 |
模型架構
屬性 | 詳情 |
---|---|
模型類型 | Transformer |
網絡架構 | Llama 3.1 |
輸入
屬性 | 詳情 |
---|---|
輸入類型 | 文本 |
輸入格式 | 字符串 |
輸入參數 | 一維(1D) |
其他輸入相關屬性 | 最大128k令牌 |
輸出
屬性 | 詳情 |
---|---|
輸出類型 | 文本 |
輸出格式 | 字符串 |
輸出參數 | 一維(1D) |
其他輸出相關屬性 | 最大4k令牌 |
軟件集成
屬性 | 詳情 |
---|---|
支持的硬件微架構兼容性 | NVIDIA Ampere、NVIDIA Hopper、NVIDIA Turing |
支持的操作系統 | Linux |
模型版本
v1.0
訓練與評估
對齊方法
- REINFORCE在NeMo Aligner中實現
數據集
屬性 | 詳情 |
---|---|
數據收集方法 | [混合:人工、合成] |
標註方法 | [人工] |
鏈接 | HelpSteer2 |
屬性(數量、數據集描述、傳感器等) | 21,362個提示 - 回覆對,用於使更多模型更符合人類偏好 - 具體來說,更有幫助、事實正確、連貫,並可根據複雜性和詳細程度進行定製。20,324個提示 - 回覆對用於訓練,1,038個用於驗證。 |
推理
屬性 | 詳情 |
---|---|
推理引擎 | Triton |
測試硬件 | H100、A100 80GB、A100 40GB |
倫理考慮
NVIDIA認為可信人工智能是一項共同責任,我們已經制定了政策和實踐,以支持廣泛的人工智能應用開發。當按照我們的服務條款下載或使用時,開發者應與支持的模型團隊合作,確保該模型滿足相關行業和用例的要求,並解決意外的產品濫用問題。有關該模型倫理考慮的更多詳細信息,請參閱模型卡片++可解釋性、偏差、安全與保障以及隱私子卡片。請在此報告安全漏洞或NVIDIA人工智能問題。
引用
如果你覺得這個模型有用,請引用以下文獻:
@misc{wang2024helpsteer2preferencecomplementingratingspreferences,
title={HelpSteer2-Preference: Complementing Ratings with Preferences},
author={Zhilin Wang and Alexander Bukharin and Olivier Delalleau and Daniel Egert and Gerald Shen and Jiaqi Zeng and Oleksii Kuchaiev and Yi Dong},
year={2024},
eprint={2410.01257},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2410.01257},
}



