モデル概要
モデル特徴
モデル能力
使用事例
ライセンス: apache-2.0 タグ:
- ファインチューニング済み パイプラインタグ: テキスト生成 新バージョン: mistralai/Mistral-7B-Instruct-v0.3 推論: true ウィジェット:
- メッセージ:
- 役割: ユーザー 内容: あなたの好きな調味料は何ですか?
追加ゲート付き説明: 当社があなたの個人データをどのように処理するかについて詳しく知りたい場合は、プライバシーポリシーをご確認ください。
Mistral-7B-Instruct-v0.2 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は0.2GBしか追加しないままでパープレキシティを36.9%削減
- ⚡ 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デバイス用に最適化できる |
含まれるファイルと詳細
Mistral-7B-Instruct-v0.2-bf16.gguf
- モデルの重みがBF16で保存されています。
- モデルを別の形式に再量子化したい場合に使用します。
- デバイスがBF16アクセラレーションをサポートしている場合に最適。
Mistral-7B-Instruct-v0.2-f16.gguf
- モデルの重みがF16で保存されています。
- デバイスがFP16をサポートしている場合、特にBF16が利用できない場合に使用します。
Mistral-7B-Instruct-v0.2-bf16-q8_0.gguf
- 出力と埋め込みはBF16のままです。
- 他のすべてのレイヤーはQ8_0に量子化されています。
- デバイスがBF16をサポートしていて、量子化バージョンが必要な場合に使用します。
Mistral-7B-Instruct-v0.2-f16-q8_0.gguf
- 出力と埋め込みはF16のままです。
- 他のすべてのレイヤーはQ8_0に量子化されています。
Mistral-7B-Instruct-v0.2-q4_k.gguf
- 出力と埋め込みはQ8_0に量子化されています。
- 他のすべてのレイヤーはQ4_Kに量子化されています。
- 限られたメモリでのCPU推論に適しています。
Mistral-7B-Instruct-v0.2-q4_k_s.gguf
- 最小のQ4_Kバリアントで、精度を犠牲にしてメモリ使用量を削減します。
- 非常に低メモリのセットアップに最適。
Mistral-7B-Instruct-v0.2-q6_k.gguf
- 出力と埋め込みはQ8_0に量子化されています。
- 他のすべてのレイヤーはQ6_Kに量子化されています。
Mistral-7B-Instruct-v0.2-q8_0.gguf
- 完全にQ8に量子化されたモデルで、より高い精度を提供します。
- より多くのメモリを必要としますが、より高い精度を提供します。
Mistral-7B-Instruct-v0.2-iq3_xs.gguf
- IQ3_XS量子化で、極端なメモリ効率に最適化されています。
- 超低メモリデバイスに最適。
Mistral-7B-Instruct-v0.2-iq3_m.gguf
- IQ3_M量子化で、精度向上のための中サイズのブロックサイズを提供。
- 低メモリデバイスに適しています。
Mistral-7B-Instruct-v0.2-q4_0.gguf
- 純粋なQ4_0量子化で、ARMデバイス用に最適化されています。
- 低メモリ環境に最適。
- より高い精度が必要な場合はIQ4_NLを選択してください。
🚀 これらのモデルが役立つと思ったら
❤ 役に立った場合は「いいね」をクリックしてください!
量子対応セキュリティチェック付きのAI搭載ネットワークモニターアシスタントのテストを手伝ってください:
👉 無料ネットワークモニター
💬 テスト方法:
- チャットアイコン (どのページの右下にもあります) をクリック
- AIアシスタントのタイプを選択:
TurboLLM
(GPT - 4 - mini)FreeLLM
(オープンソース)TestLLM
(実験的なCPU専用)
テスト内容
私はAIネットワークモニタリング用の小さなオープンソースモデルの限界を追求しています。具体的には:
- 実際のネットワークサービスに対する関数呼び出し
- モデルがどれだけ小さくなっても対応できるか:
- 自動化されたNmapスキャン
- 量子対応チェック
- Metasploit統合
🟡 TestLLM – 現在の実験的なモデル (6つのCPUスレッドでllama.cpp):
- ✅ ゼロコンフィグレーションセットアップ
- ⏳ 30秒のロード時間 (推論は遅いがAPIコストはかからない)
- 🔧 協力者募集中! エッジデバイスAIに興味がある方、一緒に協力しましょう!
その他のアシスタント
🟢 TurboLLM – gpt - 4 - miniを使用して:
- リアルタイムネットワーク診断
- 自動化された侵入テスト (Nmap/Metasploit)
- 🔑 無料ネットワークモニターエージェントをダウンロードすることで、より多くのトークンを取得できます。
🔵 HugLLM – オープンソースモデル (≈80億パラメータ):
- TurboLLMの2倍のトークン
- AI搭載ログ分析
- 🌐 Hugging Face推論APIで動作
💡 テストするAIコマンドの例:
"私のウェブサイトのSSL証明書に関する情報を教えて"
"私のサーバーが通信に量子セキュアな暗号化を使用しているか確認して"
"クイックなNmap脆弱性テストを実行して"
Mistral - 7B - Instruct - v0.2のモデルカード
mistral_common
を使ったエンコードとデコード
from mistral_common.tokens.tokenizers.mistral import MistralTokenizer
from mistral_common.protocol.instruct.messages import UserMessage
from mistral_common.protocol.instruct.request import ChatCompletionRequest
mistral_models_path = "MISTRAL_MODELS_PATH"
tokenizer = MistralTokenizer.v1()
completion_request = ChatCompletionRequest(messages=[UserMessage(content="機械学習を一言で説明して")])
tokens = tokenizer.encode_chat_completion(completion_request).tokens
mistral_inference
を使った推論
from mistral_inference.transformer import Transformer
from mistral_inference.generate import generate
model = Transformer.from_folder(mistral_models_path)
out_tokens, _ = generate([tokens], model, max_tokens=64, temperature=0.0, eos_id=tokenizer.instruct_tokenizer.tokenizer.eos_id)
result = tokenizer.decode(out_tokens[0])
print(result)
hugging faceのtransformers
を使った推論
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("mistralai/Mistral-7B-Instruct-v0.2")
model.to("cuda")
generated_ids = model.generate(tokens, max_new_tokens=1000, do_sample=True)
# mistralトークナイザーでデコード
result = tokenizer.decode(generated_ids[0].tolist())
print(result)
[!TIP]
transformers
トークナイザーを修正して、mistral_common
の参照実装と同じ結果を得るためのPRは大歓迎です!
Mistral - 7B - Instruct - v0.2大規模言語モデル (LLM) は、Mistral - 7B - v0.2を命令に合わせてファインチューニングしたバージョンです。
Mistral - 7B - v0.2は、Mistral - 7B - v0.1と比べて以下の変更があります。
- 32kのコンテキストウィンドウ (v0.1では8kのコンテキスト)
- Rope - theta = 1e6
- スライディングウィンドウアテンションなし
このモデルの詳細については、論文と[リリースブログ記事](https://mistral.ai/news/la - plateforme/)をご覧ください。
命令形式
命令に合わせたファインチューニングを活用するためには、プロンプトを[INST]
と[/INST]
トークンで囲む必要があります。最初の命令は文頭IDで始める必要があります。次の命令はそうでなくても構いません。アシスタントの生成は文末トークンIDで終了します。
例:
text = "<s>[INST] あなたの好きな調味料は何ですか? [/INST]"
"Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!</s> "
"[INST] マヨネーズのレシピはありますか? [/INST]"
この形式は、apply_chat_template()
メソッドを通じてチャットテンプレートとして利用できます。
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "cuda" # モデルをロードするデバイス
model = AutoModelForCausalLM.from_pretrained("mistralai/Mistral-7B-Instruct-v0.2")
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.2")
messages = [
{"role": "user", "content": "あなたの好きな調味料は何ですか?"},
{"role": "assistant", "content": "Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!"},
{"role": "user", "content": "マヨネーズのレシピはありますか?"}
]
encodeds = tokenizer.apply_chat_template(messages, return_tensors="pt")
model_inputs = encodeds.to(device)
model.to(device)
generated_ids = model.generate(model_inputs, max_new_tokens=1000, do_sample=True)
decoded = tokenizer.batch_decode(generated_ids)
print(decoded[0])
トラブルシューティング
- 以下のエラーが表示された場合:
Traceback (most recent call last):
File "", line 1, in
File "/transformers/models/auto/auto_factory.py", line 482, in from_pretrained
config, kwargs = AutoConfig.from_pretrained(
File "/transformers/models/auto/configuration_auto.py", line 1022, in from_pretrained
config_class = CONFIG_MAPPING[config_dict["model_type"]]
File "/transformers/models/auto/configuration_auto.py", line 723, in getitem
raise KeyError(key)
KeyError: 'mistral'
ソースからtransformersをインストールすると問題が解決するはずです。 pip install git+https://github.com/huggingface/transformers
これはtransformers - v4.33.4以降では必要なくなります。
制限事項
Mistral 7B Instructモデルは、ベースモデルが簡単にファインチューニングされて魅力的な性能を達成できることを迅速に実証するものです。 このモデルにはモデレーションメカニズムがありません。モデルがきめ細かくガードレールを遵守し、モデレーションされた出力が必要な環境でのデプロイを可能にする方法について、コミュニティと協力することを楽しみにしています。
ミストラルAIチーム
アルバート・ジャン、アレクサンドル・サブライロール、アーサー・メンシュ、ブランシュ・サヴァリ、クリス・バムフォード、デヴェンドラ・シン・チャプロット、ディエゴ・デ・ラス・カサス、エマ・ブー・ハンナ、フロリアン・ブレサン、ジャンナ・レンジェル、ギヨーム・ブール、ギヨーム・ランプル、レリオ・レナール・ラヴォー、ルイ・テルノン、リュシル・ソニエ、マリー・アンヌ・ラショ、ピエール・ストック、テヴェン・ル・スコー、テオフィル・ジェルベ、チボー・ラヴリル、トーマス・ワン、ティモテ・ラクロア、ウィリアム・エル・セイエド。



