license: mit
library_name: transformers
datasets:
- PrimeIntellect/verifiable-coding-problems
- likaixin/TACO-verified
- livecodebench/code_generation_lite
language:
- en
base_model:
- deepseek-ai/DeepSeek-R1-Distill-Qwen-14B
pipeline_tag: text-generation
DeepCoder-14B-Preview GGUFモデル
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)
量子化 |
標準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 |
凡例:
- 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 VRAMにモデルを収める場合
✔ メモリ制約のあるデプロイメント
✔ 1-2ビット誤差を許容できるCPUおよびエッジデバイス
✔ 超低ビット量子化の研究
適切なモデルフォーマットの選択
適切なモデルフォーマットの選択は、ハードウェア能力とメモリ制約に依存します。
BF16 (Brain Float 16) – BF16アクセラレーションが利用可能な場合に使用
- 高速計算のために設計された16ビット浮動小数点形式で、良好な精度を保持。
- FP32と同様のダイナミックレンジを提供しつつ、メモリ使用量を低減。
- ハードウェアがBF16アクセラレーションをサポートしている場合に推奨(デバイス仕様を確認)。
- FP32と比較してメモリフットプリントを削減した高性能推論に最適。
📌 BF16を使用する場合:
✔ ハードウェアがネイティブでBF16をサポート(例: 新しいGPU、TPU)。
✔ より高い精度が必要でメモリを節約したい場合。
✔ モデルを別のフォーマットに再量子化する計画がある場合。
📌 BF16を避ける場合:
❌ ハードウェアがBF16をサポートしていない(FP32にフォールバックし遅くなる可能性)。
❌ BF16最適化を欠く古いデバイスとの互換性が必要な場合。
F16 (Float 16) – BF16より広くサポート
- 16ビット浮動小数点の高精度形式だが、BF16より値の範囲が狭い。
- FP16アクセラレーションをサポートするほとんどのデバイス(多くのGPUや一部のCPU)で動作。
- BF16よりわずかに数値精度が低いが、一般的に推論には十分。
📌 F16を使用する場合:
✔ ハードウェアがFP16をサポートするがBF16をサポートしない場合。
✔ 速度、メモリ使用量、精度のバランスが必要な場合。
✔ GPUやFP16計算に最適化されたデバイスで実行する場合。
📌 F16を避ける場合:
❌ デバイスがネイティブFP16サポートを欠く(予想より遅くなる可能性)。
❌ メモリ制約がある場合。
量子化モデル(Q4_K, Q6_K, Q8など) – CPU & 低VRAM推論用
量子化はモデルサイズとメモリ使用量を削減しつつ、可能な限り精度を維持。
- 低ビットモデル(Q4_K) → 最小メモリ使用に最適、精度は低め。
- 高ビットモデル(Q6_K, Q8_0) → 精度向上、より多くのメモリを必要。
📌 量子化モデルを使用する場合:
✔ CPUで推論を実行し最適化モデルが必要な場合。
✔ デバイスのVRAMが低く、完全精度モデルをロードできない場合。
✔ 合理的な精度を保ちつつメモリフットプリントを削減したい場合。
📌 量子化モデルを避ける場合:
❌ 最大精度が必要な場合(完全精度モデルが適している)。
❌ ハードウェアがより高精度フォーマット(BF16/F16)に十分なVRAMを持つ場合。
超低ビット量子化(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: ARMデバイス向けに最適化された純粋な4ビット量子化。
- 使用例: 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デバイス向けに最適化 |
含まれるファイルと詳細
DeepCoder-14B-Preview-bf16.gguf
- モデル重みをBF16で保持。
- モデルを別のフォーマットに再量子化したい場合に使用。
- デバイスがBF16アクセラレーションをサポートする場合に最適。
DeepCoder-14B-Preview-f16.gguf
- モデル重みをF16で保存。
- 特にBF16が利用できない場合、デバイスがFP16をサポートする場合に使用。
DeepCoder-14B-Preview-bf16-q8_0.gguf
- 出力&埋め込み層はBF16のまま。
- 他のすべての層はQ8_0に量子化。
- デバイスがBF16をサポートし量子化版が必要な場合に使用。
DeepCoder-14B-Preview-f16-q8_0.gguf
- 出力&埋め込み層はF16のまま。
- 他のすべての層はQ8_0に量子化。
DeepCoder-14B-Preview-q4_k.gguf
- 出力&埋め込み層はQ8_0に量子化。
- 他のすべての層はQ4_Kに量子化。
- メモリが限られたCPU推論に適している。
DeepCoder-14B-Preview-q4_k_s.gguf
- 最小のQ4_Kバリアントで、精度を犠牲にしてメモリ使用量を削減。
- 非常に低メモリ環境に最適。
DeepCoder-14B-Preview-q6_k.gguf
- 出力&埋め込み層はQ8_0に量子化。
- 他のすべての層はQ6_Kに量子化。
DeepCoder-14B-Preview-q8_0.gguf
- 完全にQ8量子化されたより高精度なモデル。
- より多くのメモリを必要とするが高い精度を提供。
DeepCoder-14B-Preview-iq3_xs.gguf
- IQ3_XS量子化で、極端なメモリ効率のために最適化。
- 超低メモリデバイスに最適。
DeepCoder-14B-Preview-iq3_m.gguf
- IQ3_M量子化で、より良い精度のための中ブロックサイズを提供。
- 低メモリデバイスに適している。
DeepCoder-14B-Preview-q4_0.gguf
- Q4_0純粋量子化で、ARMデバイス向けに最適化。
- 低メモリ環境に最適。
- より良い精度が必要な場合はIQ4_NLを推奨。
🚀 これらのモデルが役立つ場合
❤ 役に立ったら「いいね」をクリックしてください!
量子対応セキュリティチェックを備えたAI駆動ネットワークモニターアシスタントのテストに協力ください:
👉 無料ネットワークモニター
💬 テスト方法:
- チャットアイコンをクリック(全ページ右下)
- AIアシスタントタイプを選択:
TurboLLM
(GPT-4-mini)
FreeLLM
(オープンソース)
TestLLM
(実験的CPU専用)
テスト内容
AIネットワーク監視のための小型オープンソースモデルの限界に挑戦中、具体的には:
- ライブネットワークサービスに対する関数呼び出し
- 自動化されたNmapスキャンを処理できるモデルの最小サイズ
- 量子対応チェック
- Metasploit統合
🟡 TestLLM – 現在の実験モデル(llama.cpp on 6 CPUスレッド):
- ✅ ゼロ設定セットアップ
- ⏳ 30秒ロード時間(低速推論だがAPIコスト無し)
- 🔧 協力求む! エッジデバイスAIに興味あれば協力しましょう!
他のアシスタント
🟢 TurboLLM – gpt-4-miniを使用:
🔵 HugLLM – オープンソースモデル(≈8Bパラメータ):
- TurboLLM比2倍以上のトークン
- AI駆動ログ分析
- 🌐 Hugging Face推論APIで動作
💡 テスト用AIコマンド例:
"ウェブサイトのSSL証明書情報を教えて"
"サーバーが量子安全暗号を使用しているか確認して"
"Nmap脆弱性テストを実行して"