🚀 Llama-3.1-Nemotron-Nano-4B-v1.1 GGUFモデル
Llama-3.1-Nemotron-Nano-4B-v1.1は、大規模言語モデル(LLM)で、nvidia/Llama-3.1-Minitron-4B-Width-Baseを派生元としています。このモデルは、モデルの精度と効率を向上させ、推論やチャットなどのタスクに適しています。
✨ 主要特性
モデル生成詳細
このモデルは、llama.cpp のコミット 92ecdcc0
を使用して生成されました。
超低ビット量子化(IQ-DynamicGate、1 - 2ビット)
最新の量子化方法では、超低ビットモデル(1 - 2ビット)に対して「精度適応型量子化」を導入しています。このアプローチは、層ごとの戦略を用いて、極限のメモリ効率を維持しながら精度を保持します。
ベンチマークコンテキスト
すべてのテストは、Llama-3-8B-Instruct を使用して行われました。
- 標準のパープレキシティ評価パイプライン
- 2048トークンのコンテキストウィンドウ
- すべての量子化で同じプロンプトセット
方法
- 動的精度割り当て
- 最初と最後の25%の層 → IQ4_XS(選択された層)
- 真ん中の50% → IQ2_XXS/IQ3_S(効率を向上)
- 重要コンポーネントの保護
- 埋め込み層と出力層はQ5_Kを使用
- 標準の1 - 2ビット量子化と比較して、エラー伝播を38%削減
量子化性能比較(Llama-3-8B)
量子化 |
標準PPL |
DynamicGate PPL |
ΔPPL |
標準サイズ |
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 |
これらのモデルを使用するタイミング
- GPU VRAMにモデルを収める場合
- メモリに制約のあるデプロイメント
- 1 - 2ビットの誤差を許容できるCPUやエッジデバイス
- 超低ビット量子化の研究
適切なモデル形式の選択
モデル形式の選択は、ハードウェア能力とメモリ制約に依存します。
BF16(Brain Float 16) - BF16アクセラレーションが利用可能な場合に使用
- 高速な計算を目的とした16ビット浮動小数点数形式で、良好な精度を維持します。
- FP32と同様のダイナミックレンジを提供し、メモリ使用量が少ないです。
- ハードウェアがBF16アクセラレーションをサポートしている場合に推奨(デバイスの仕様を確認)。
- FP32と比較して、メモリ使用量を削減した高性能推論に最適。
F16(Float 16) - BF16よりも広くサポートされている
- 16ビット浮動小数点数形式で、高い精度を持ち、多くのデバイスでサポートされています。
- BF16よりも値の範囲が狭いですが、推論には一般的に十分です。
量子化モデル(Q4_K、Q6_K、Q8など) - CPUと低VRAM推論用
量子化は、モデルサイズとメモリ使用量を削減しながら、可能な限り精度を維持します。
超低ビット量子化(IQ3_XS、IQ3_S、IQ3_M、Q4_K、Q4_0)
これらのモデルは、極限のメモリ効率を追求しており、低電力デバイスや大規模デプロイメントに適しています。
モデル形式選択の概要表
モデル形式 |
精度 |
メモリ使用量 |
デバイス要件 |
最適な使用ケース |
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デバイス用に最適化 |
📦 インストール
このセクションでは、モデルのインストールに関する情報は提供されていません。
💻 使用例
基本的な使用法
「Reasoning On」の例
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 = "on"
print(pipeline([{"role": "system", "content": f"detailed thinking {thinking}"}, {"role": "user", "content": "Solve x*(sin(x)+2)=0"}]))
「Reasoning Off」の例
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 = "off"
print(pipeline([{"role": "system", "content": f"detailed thinking {thinking}"}, {"role": "user", "content": "Solve x*(sin(x)+2)=0"}]))
「Reasoning Off」で事前にアシスタントの応答を設定する例
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 = "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サーバーをツールコールサポートで起動する例
#!/bin/bash
CWD=$(pwd)
PORT=5000
git clone https://huggingface.co/nvidia/Llama-3.1-Nemotron-Nano-4B-v1.1
docker run -it -p $PORT:$PORT -v $CWD/nvidia/Llama-3.1-Nemotron-Nano-4B-v1.1:/model vllm/vllm-openai:v0.6.6 --model /model --port $PORT
📚 詳細ドキュメント
含まれるファイルと詳細
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デバイス用に最適化されています。低メモリ環境に最適です。
モデルのテストについて
もしこれらのモデルが役に立った場合は、「いいね」をクリックしていただけると助かります。また、量子対応のセキュリティチェックを備えたAIパワードのネットワークモニターアシスタントのテストにもご協力いただけると幸いです。
テスト方法
- AIアシスタントのタイプを選択:
TurboLLM
(GPT-4o-mini)
HugLLM
(Hugginfaceオープンソース)
TestLLM
(実験的なCPU専用)
テスト内容
- 小規模なオープンソースモデルを用いたAIネットワークモニタリングの限界を追求:
- ライブネットワークサービスに対する関数呼び出し
- 以下のタスクを処理できる最小のモデルサイズを検討:
- 自動化されたNmapスキャン
- 量子対応チェック
- ネットワークモニタリングタスク
他のアシスタント
- TurboLLM:gpt-4o-miniを使用し、カスタムコマンドプロセッサの作成、リアルタイムネットワーク診断、セキュリティ監査、ペネトレーションテストなどのタスクを実行します。
- 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)"
🔧 技術詳細
モデルアーキテクチャ
- アーキテクチャタイプ:密なデコーダーのみのTransformerモデル
- ネットワークアーキテクチャ:Llama 3.1 Minitron Width 4B Base
入力
- 入力タイプ:テキスト
- 入力形式:文字列
- 入力パラメータ:一次元(1D)
- 入力に関連するその他のプロパティ:最大131,072トークンのコンテキスト長
出力
- 出力タイプ:テキスト
- 出力形式:文字列
- 出力パラメータ:一次元(1D)
- 出力に関連するその他のプロパティ:最大131,072トークンのコンテキスト長
モデルバージョン
1.1(2025年5月20日)
ソフトウェア統合
- ランタイムエンジン:NeMo 24.12
- 推奨ハードウェアマイクロアーキテクチャ互換性:
- NVIDIA Hopper
- NVIDIA Ampere
📄 ライセンス
このモデルの使用は、NVIDIA Open Model License によって管理されています。追加情報については、Llama 3.1 Community License Agreement を参照してください。このモデルはLlamaを使用して構築されています。
モデル開発者:NVIDIA
モデル作成日:2024年8月から2025年5月の間で学習
データの新鮮さ:事前学習データのカットオフは2023年6月です。