🚀 nvidiaのOpenReasoning - Nemotron - 1.5BのLlamacpp imatrix量子化
このプロジェクトは、nvidiaのOpenReasoning - Nemotron - 1.5Bモデルを量子化したものです。量子化には llama.cpp のリリース b5934 を使用しています。
🚀 クイックスタート
量子化情報
- 量子化者: bartowski
- パイプラインタグ: text - generation
- ベースモデル: nvidia/OpenReasoning - Nemotron - 1.5B
- ベースモデル関係: 量子化済み
実行方法
- LM Studioで実行: LM Studio でこれらの量子化モデルを実行できます。
- llama.cppで直接実行: llama.cpp または他のllama.cppベースのプロジェクトで直接実行できます。
プロンプトフォーマット
<|im_start|>system
{system_prompt}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant
✨ 主な機能
- 多様な量子化形式: 様々な量子化形式(Q2_K、Q3_K、Q4_K、Q5_K、Q6_K、Q8_0、IQ3、IQ4など)が用意されており、ユーザーのハードウェア環境や性能要件に合わせて選択できます。
- オンラインリパッキング: Q4_0などの量子化形式では、ARMやAVXマシンでの性能向上のためにオンラインリパッキングが自動的に行われます。
📦 インストール
huggingface - cliを使用したダウンロード
まず、huggingface - cliがインストールされていることを確認してください。
pip install -U "huggingface_hub[cli]"
特定のファイルをダウンロードするには、以下のコマンドを実行します。
huggingface-cli download bartowski/nvidia_OpenReasoning-Nemotron-1.5B-GGUF --include "nvidia_OpenReasoning-Nemotron-1.5B-Q4_K_M.gguf" --local-dir ./
モデルが50GB以上の場合は、複数のファイルに分割されています。すべてのファイルをローカルフォルダにダウンロードするには、以下のコマンドを実行します。
huggingface-cli download bartowski/nvidia_OpenReasoning-Nemotron-1.5B-GGUF --include "nvidia_OpenReasoning-Nemotron-1.5B-Q8_0/*" --local-dir ./
💻 使用例
基本的な使用法
上記のインストール手順に従ってモデルをダウンロードした後、LM Studioまたはllama.cppでモデルを実行できます。
📚 ドキュメント
ファイル選択のガイド
詳細はこちらをクリック
Artefact2による様々な性能を示すチャート付きの素晴らしい解説記事が こちら にあります。
まず、実行できるモデルのサイズを判断する必要があります。これには、持っているRAMおよび/またはVRAMの容量を調べる必要があります。
モデルをできるだけ高速に実行したい場合は、モデル全体をGPUのVRAMに収めることが望ましいです。GPUの総VRAMよりも1 - 2GB小さいファイルサイズの量子化形式を選択してください。
最高の品質を求める場合は、システムRAMとGPUのVRAMを合計し、その合計よりも1 - 2GB小さいファイルサイズの量子化形式を選択してください。
次に、'I - 量子化'または'K - 量子化'を使用するかを決定する必要があります。
あまり深く考えたくない場合は、K - 量子化のいずれかを選択してください。これらは 'QX_K_X' 形式(Q5_K_Mなど)です。
もっと詳細に調べたい場合は、この非常に便利な機能チャートを確認できます。
llama.cpp feature matrix
基本的に、Q4以下を目指していて、cuBLAS(Nvidia)またはrocBLAS(AMD)を使用している場合は、I - 量子化を検討する必要があります。これらはIQX_X形式(IQ3_Mなど)で、新しく、サイズに対してより良い性能を提供します。
これらのI - 量子化はCPUでも使用できますが、同等のK - 量子化よりも遅くなります。したがって、速度と性能のトレードオフを決定する必要があります。
ARM/AVX情報
以前は、Q4_0_4_4/4_8/8_8をダウンロードし、ARMおよびAVXマシンでの性能を向上させるために、メモリ内で重みをインターリーブしていました。
しかし、現在は重みの「オンラインリパッキング」と呼ばれる機能があります。詳細は このPR を参照してください。Q4_0を使用し、ハードウェアが重みのリパッキングによって恩恵を受ける場合、自動的に実行されます。
llama.cppビルド b4282 以降は、Q4_0_X_Xファイルを実行できなくなり、代わりにQ4_0を使用する必要があります。
さらに、このPR により、ARM用に重みをリパッキングするIQ4_NLを使用すると、少し品質を向上させることができます(現在は4_4のみ)。読み込み時間は長くなる可能性がありますが、全体的な速度が向上します。
Q4_0_X_X情報(非推奨)を表示するにはクリック
このセクションは、オンラインリパッキングでQ4_0を使用することによる潜在的な性能向上を示すために残しています。
AVX2システム(EPYC7702)でのベンチマークを表示するにはクリック
モデル |
サイズ |
パラメータ |
バックエンド |
スレッド |
テスト |
t/s |
% (vs Q4_0) |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
pp512 |
204.03 ± 1.03 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
pp1024 |
282.92 ± 0.19 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
pp2048 |
259.49 ± 0.44 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
tg128 |
39.12 ± 0.27 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
tg256 |
39.31 ± 0.69 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
tg512 |
40.52 ± 0.03 |
100% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
pp512 |
301.02 ± 1.74 |
147% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
pp1024 |
287.23 ± 0.20 |
101% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
pp2048 |
262.77 ± 1.81 |
101% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
tg128 |
18.80 ± 0.99 |
48% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
tg256 |
24.46 ± 3.04 |
83% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
tg512 |
36.32 ± 3.59 |
90% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
pp512 |
271.71 ± 3.53 |
133% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
pp1024 |
279.86 ± 45.63 |
100% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
pp2048 |
320.77 ± 5.00 |
124% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
tg128 |
43.51 ± 0.05 |
111% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
tg256 |
43.35 ± 0.09 |
110% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
tg512 |
42.60 ± 0.31 |
105% |
Q4_0_8_8は、プロンプト処理に大きな向上、テキスト生成に小さな向上をもたらします。
埋め込み/出力重み
一部の量子化形式(Q3_K_XL、Q4_K_Lなど)は、標準的な量子化方法で、埋め込みおよび出力重みが通常のデフォルト値ではなくQ8_0に量子化されています。
🔧 技術詳細
- 量子化方法: llama.cppのb5934リリースを使用して量子化を行っています。
- データセット: 量子化に使用するデータセットは こちら から取得しています。
📄 ライセンス
ドキュメント内にライセンス情報は記載されていません。
クレジット
- kalomazeとDampfには、imatrixキャリブレーションデータセットの作成における支援に感謝します。
- ZeroWwには、埋め込み/出力の実験のインスピレーションを提供してくれたことに感謝します。
- LM Studioには、このプロジェクトの支援に感謝します。
サポートしたい場合は、こちらのko - fiページを訪問してください: https://ko-fi.com/bartowski