モデル概要
モデル特徴
モデル能力
使用事例
🚀 Mistral-Small-3.1-24B-Instruct-2503 GGUFモデル
このモデルは、最先端のビジョン理解能力を備え、テキスト性能を損なうことなく長コンテキスト能力を最大128kトークンまで拡張しています。240億のパラメータを持ち、テキストとビジョンの両方のタスクで高い能力を発揮します。
✨ 主な機能
- ビジョン:画像を分析し、テキストに加えてビジュアルコンテンツに基づいた洞察を提供できます。
- 多言語:英語、フランス語、ドイツ語など数十の言語をサポートします。
- エージェント中心:ネイティブの関数呼び出しとJSON出力を備えた高水準のエージェント機能を提供します。
- 高度な推論:最先端の会話と推論能力を持ちます。
- Apache 2.0ライセンス:商用および非商用目的での使用と改変が許可されるオープンライセンスです。
- コンテキストウィンドウ:128kのコンテキストウィンドウを持ちます。
- システムプロンプト:システムプロンプトに強い準拠とサポートを維持します。
- トークナイザー:131kの語彙サイズのTekkenトークナイザーを使用します。
📦 インストール
vLLMのインストール
vLLM >= 0.8.1
をインストールします。
pip install vllm --upgrade
これにより、自動的にmistral_common >= 1.5.4
がインストールされます。
確認するには、以下のコマンドを実行します。
python -c "import mistral_common; print(mistral_common.__version__)"
DockerイメージまたはDocker Hubを使用することもできます。
💻 使用例
基本的な使用法
vLLMサーバーの起動
vllm serve mistralai/Mistral-Small-3.1-24B-Instruct-2503 --tokenizer_mode mistral --config_format mistral --load_format mistral --tool-call-parser mistral --enable-auto-tool-choice --limit_mm_per_prompt 'image=10' --tensor-parallel-size 2
注意:Mistral-Small-3.1-24B-Instruct-2503をGPUで実行するには、bf16またはfp16で約55GBのGPU VRAMが必要です。
クライアントのテスト
import requests
import json
from huggingface_hub import hf_hub_download
from datetime import datetime, timedelta
url = "http://<あなたのサーバーURL>:8000/v1/chat/completions"
headers = {"Content-Type": "application/json", "Authorization": "Bearer token"}
model = "mistralai/Mistral-Small-3.1-24B-Instruct-2503"
def load_system_prompt(repo_id: str, filename: str) -> str:
file_path = hf_hub_download(repo_id=repo_id, filename=filename)
with open(file_path, "r") as file:
system_prompt = file.read()
today = datetime.today().strftime("%Y-%m-%d")
yesterday = (datetime.today() - timedelta(days=1)).strftime("%Y-%m-%d")
model_name = repo_id.split("/")[-1]
return system_prompt.format(name=model_name, today=today, yesterday=yesterday)
SYSTEM_PROMPT = load_system_prompt(model, "SYSTEM_PROMPT.txt")
image_url = "https://huggingface.co/datasets/patrickvonplaten/random_img/resolve/main/europe.png"
messages = [
{"role": "system", "content": SYSTEM_PROMPT},
{
"role": "user",
"content": [
{
"type": "text",
"text": "描写されている国のうち、最も美味しい料理があるのはどの国ですか?2番目、3番目、4番目はどこですか?国名、地図上の色、および地図上に見えるが首都ではない都市を1つ挙げてください。必ず地図上に見える都市のみを挙げてください。",
},
{"type": "image_url", "image_url": {"url": image_url}},
],
},
]
data = {"model": model, "messages": messages, "temperature": 0.15}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json()["choices"][0]["message"]["content"])
# 「最も美味しい」料理を判断することは非常に主観的で、個人の好みに依存します。ただし、一般的な人気と認知度に基づいて、料理で知られているいくつかの国を挙げます。
# 1. **イタリア** - 色: 薄緑 - 都市: ミラノ
# - イタリア料理は、パスタ、ピザ、および様々な地域の特産品で世界的に有名です。
# 2. **フランス** - 色: 茶色 - 都市: リヨン
# - フランス料理は、コック・オー・ヴァンやブイヤベッセなどの料理や、クロワッサンやエクレアなどのパステリーの洗練されさで有名です。
# 3. **スペイン** - 色: 黄色 - 都市: ビルバオ
# - スペイン料理は、パエリアやタパスから、イベリコハムやチュロスまで、様々な味を提供します。
# 4. **ギリシャ** - 地図上に見えません
# - ギリシャ料理は、ムサカ、スーヴラキ、バクラバなどの料理で知られています。残念ながら、ギリシャは提供された地図上に見えないので、都市名を挙げることができません。
# ギリシャが地図上に見えないため、代わりに美味しい料理で知られている別の国を挙げます。
# 4. **トルコ** - 色: 薄緑 (地図の東部) - 都市: イスタンブール
# - トルコ料理は多様で、ケバブ、メゼ、バクラバなどの料理があります。
高度な使用法
関数呼び出しの例
import requests
import json
from huggingface_hub import hf_hub_download
from datetime import datetime, timedelta
url = "http://<あなたのURL>:8000/v1/chat/completions"
headers = {"Content-Type": "application/json", "Authorization": "Bearer token"}
model = "mistralai/Mistral-Small-3.1-24B-Instruct-2503"
def load_system_prompt(repo_id: str, filename: str) -> str:
file_path = hf_hub_download(repo_id=repo_id, filename=filename)
with open(file_path, "r") as file:
system_prompt = file.read()
today = datetime.today().strftime("%Y-%m-%d")
yesterday = (datetime.today() - timedelta(days=1)).strftime("%Y-%m-%d")
model_name = repo_id.split("/")[-1]
return system_prompt.format(name=model_name, today=today, yesterday=yesterday)
SYSTEM_PROMPT = load_system_prompt(model, "SYSTEM_PROMPT.txt")
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "指定された場所の現在の天気を取得する",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "天気を調べる都市名、例: 'サンフランシスコ'",
},
"state": {
"type": "string",
"description": "州の略称、例: 'CA' はカリフォルニア州",
},
"unit": {
"type": "string",
"description": "温度の単位",
"enum": ["celsius", "fahrenheit"],
},
},
"required": ["city", "state", "unit"],
},
},
},
{
"type": "function",
"function": {
"name": "rewrite",
"description": "与えられたテキストを明瞭にするために書き換える",
"parameters": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "書き換える入力テキスト",
}
},
},
},
},
]
messages = [
{"role": "system", "content": SYSTEM_PROMPT},
{
"role": "user",
"content": "以下の記事をもっと簡潔にしていただけますか?\n\nOpenAIは、非営利法人OpenAI Incorporatedとその営利子会社OpenAI Limited Partnershipからなる人工知能研究研究所です。",
},
{
"role": "assistant",
"content": "",
"tool_calls": [
{
"id": "bbc5b7ede",
"type": "function",
"function": {
"name": "rewrite",
"arguments": '{"text": "OpenAIは、非営利法人OpenAI Incorporatedとその営利子会社OpenAI Limited Partnershipからなる人工知能研究研究所です。"}',
},
}
],
},
{
"role": "tool",
"content": '{"action":"rewrite","outcome":"OpenAIは営利企業です。"}',
"tool_call_id": "bbc5b7ede",
"name": "rewrite",
},
{
"role": "assistant",
"content": "---\n\nOpenAIは営利企業です。",
},
{
"role": "user",
"content": "ダラスの華氏での温度を教えてくれますか?",
},
]
data = {"model": model, "messages": messages, "tools": tools, "temperature": 0.15}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json()["choices"][0]["message"]["tool_calls"])
# [{'id': '8PdihwL6d', 'type': 'function', 'function': {'name': 'get_current_weather', 'arguments': '{"city": "ダラス", "state": "TX", "unit": "fahrenheit"}'}}]
オフラインでの使用例
from vllm import LLM
from vllm.sampling_params import SamplingParams
from datetime import datetime, timedelta
SYSTEM_PROMPT = "あなたは常に直截了当地に答える会話型エージェントで、正確な応答の最後には必ず猫のASCIIアートを付けます。"
user_prompt = "フランス語で「また会おう」と非公式に言う方法を5つ教えてください。"
messages = [
{
"role": "system",
"content": SYSTEM_PROMPT
},
{
"role": "user",
"content": user_prompt
},
]
model_name = "mistralai/Mistral-Small-3.1-24B-Instruct-2503"
# 注意: このモデルをGPUで実行するには、60GBを超えるGPU VRAMが必要です
llm = LLM(model=model_name, tokenizer_mode="mistral")
sampling_params = SamplingParams(max_tokens=512, temperature=0.15)
outputs = llm.chat(messages, sampling_params=sampling_params)
print(outputs[0].outputs[0].text)
# フランス語で「また会おう」と非公式に言う方法を5つ挙げます。
# 1. **À plus tard** - 後で会おう
# 2. **À toute** - すぐ会おう (非公式)
# 3. **Salut** - バイ (こんにちはの意味もあります)
# 4. **À plus** - また会おう (非公式)
# 5. **Ciao** - バイ (非公式、イタリア語から借用)
# ```
# /\_/\
# ( o.o )
# > ^ <
# ```
📚 ドキュメント
モデル生成の詳細
このモデルは、コミット92ecdcc0
におけるllama.cppを使用して生成されました。
IQ-DynamicGateによる超低ビット量子化 (1 - 2ビット)
当社の最新の量子化方法では、超低ビットモデル (1 - 2ビット) のために精度適応型量子化を導入しており、Llama-3-8Bに関するベンチマークで実証された改善が見られます。このアプローチでは、レイヤー固有の戦略を用いて、極限のメモリ効率を維持しながら精度を保ちます。
適切なモデル形式の選択
正しいモデル形式を選択するには、ハードウェア機能とメモリ制限を考慮する必要があります。
モデル形式 | 精度 | メモリ使用量 | デバイス要件 | 最適な使用ケース |
---|---|---|---|---|
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-Small-3.1-24B-Instruct-2503-bf16.gguf
:モデルの重みがBF16で保存されています。モデルを別の形式に再量子化したい場合に使用します。デバイスがBF16アクセラレーションをサポートしている場合に最適。Mistral-Small-3.1-24B-Instruct-2503-f16.gguf
:モデルの重みがF16で保存されています。デバイスがFP16をサポートしている場合、特にBF16が利用できない場合に使用します。Mistral-Small-3.1-24B-Instruct-2503-bf16-q8_0.gguf
:出力とエンベディングはBF16のままです。他のすべてのレイヤーはQ8_0に量子化されています。デバイスがBF16をサポートし、量子化バージョンが必要な場合に使用します。Mistral-Small-3.1-24B-Instruct-2503-f16-q8_0.gguf
:出力とエンベディングはF16のままです。他のすべてのレイヤーはQ8_0に量子化されています。Mistral-Small-3.1-24B-Instruct-2503-q4_k.gguf
:出力とエンベディングはQ8_0に量子化されています。他のすべてのレイヤーはQ4_Kに量子化されています。メモリが制限されたCPU推論に適しています。Mistral-Small-3.1-24B-Instruct-2503-q4_k_s.gguf
:最小のQ4_Kバリアントで、精度を犠牲にしてメモリ使用量を減らしています。非常に低メモリの設定に最適。Mistral-Small-3.1-24B-Instruct-2503-q6_k.gguf
:出力とエンベディングはQ8_0に量子化されています。他のすべてのレイヤーはQ6_Kに量子化されています。Mistral-Small-3.1-24B-Instruct-2503-q8_0.gguf
:完全にQ8に量子化されたモデルで、精度が高いです。より多くのメモリが必要ですが、高精度を提供します。Mistral-Small-3.1-24B-Instruct-2503-iq3_xs.gguf
:IQ3_XS量子化で、極限のメモリ効率を目的として最適化されています。超低メモリデバイスに最適。Mistral-Small-3.1-24B-Instruct-2503-iq3_m.gguf
:IQ3_M量子化で、中程度のブロックサイズで精度が向上しています。低メモリデバイスに適しています。Mistral-Small-3.1-24B-Instruct-2503-q4_0.gguf
:純粋なQ4_0量子化で、ARMデバイス用に最適化されています。低メモリ環境に最適。精度向上のためにIQ4_NLを選択することをおすすめします。
ベンチマーク結果
事前学習評価
モデル | MMLU (5-shot) | MMLU Pro (5-shot CoT) | TriviaQA | GPQA Main (5-shot CoT) | MMMU |
---|---|---|---|---|---|
Small 3.1 24B Base | 81.01% | 56.03% | 80.50% | 37.50% | 59.27% |
Gemma 3 27B PT | 78.60% | 52.20% | 81.30% | 24.30% | 56.10% |
命令評価 - テキスト
モデル | MMLU | MMLU Pro (5-shot CoT) | MATH | GPQA Main (5-shot CoT) | GPQA Diamond (5-shot CoT ) | MBPP | HumanEval | SimpleQA (TotalAcc) |
---|---|---|---|---|---|---|---|---|
Small 3.1 24B Instruct | 80.62% | 66.76% | 69.30% | 44.42% | 45.96% | 74.71% | 88.41% | 10.43% |
Gemma 3 27B IT | 76.90% | 67.50% | 89.00% | 36.83% | 42.40% | 74.40% | 87.80% | 10.00% |
GPT4o Mini | 82.00% | 61.70% | 70.20% | 40.20% | 39.39% | 84.82% | 87.20% | 9.50% |
Claude 3.5 Haiku | 77.60% | 65.00% | 69.20% | 37.05% | 41.60% | 85.60% | 88.10% | 8.02% |
Cohere Aya-Vision 32B | 72.14% | 47.16% | 41.98% | 34.38% | 33.84% | 70.43% | 62.20% | 7.65% |
命令評価 - ビジョン
モデル | MMMU | MMMU PRO | Mathvista | ChartQA | DocVQA | AI2D | MM MT Bench |
---|---|---|---|---|---|---|---|
Small 3.1 24B Instruct | 64.00% | 49.25% | 68.91% | 86.24% | 94.08% | 93.72% | 7.3 |
Gemma 3 27B IT | 64.90% | 48.38% | 67.60% | 76.00% | 86.60% | 84.50% | 7 |
GPT4o Mini | 59.40% | 37.60% | 56.70% | 76.80% | 86.70% | 88.10% | 6.6 |
Claude 3.5 Haiku | 60.50% | 45.03% | 61.60% | 87.20% | 90.00% | 92.10% | 6.5 |
Cohere Aya-Vision 32B | 48.20% | 31.50% | 50.10% | 63.04% | 72.40% | 82.57% | 4.1 |
多言語評価
モデル | 平均 | ヨーロッパ | 東アジア | 中東 |
---|---|---|---|---|
Small 3.1 24B Instruct | 71.18% | 75.30% | 69.17% | 69.08% |
Gemma 3 27B IT | 70.19% | 74.14% | 65.65% | 70.76% |
GPT4o Mini | 70.36% | 74.21% | 65.96% | 70.90% |
Claude 3.5 Haiku | 70.16% | 73.45% | 67.05% | 70.00% |
Cohere Aya-Vision 32B | 62.15% | 64.70% | 57.61% | 64.12% |
長コンテキスト評価
モデル | LongBench v2 | RULER 32K | RULER 128K |
---|---|---|---|
Small 3.1 24B Instruct | 37.18% | 93.96% | 81.20% |
Gemma 3 27B IT | 34.59% | 91.10% | 66.00% |
GPT4o Mini | 29.30% | 90.20% | 65.8% |
Claude 3.5 Haiku | 35.19% | 92.60% | 91.90% |
基本的な命令テンプレート (V7-Tekken)
<s>[SYSTEM_PROMPT]<システムプロンプト>[/SYSTEM_PROMPT][INST]<ユーザーメッセージ>[/INST]<アシスタント応答></s>[INST]<ユーザーメッセージ>[/INST]
<システムプロンプト>
、<ユーザーメッセージ>
および <アシスタント応答>
はプレースホルダーです。
必ずmistral-commonを正確な情報源として使用してください
使い方の注意点
- 比較的低い温度 (例:
temperature=0.15
) を使用することをおすすめします。 - モデルにシステムプロンプトを追加して、自分のニーズに最適化することをおすすめします。モデルを一般的なアシスタントとして使用する場合、以下のシステムプロンプトをおすすめします。
system_prompt = """あなたはMistral Small 3.1で、パリに本社を置くフランスのスタートアップであるMistral AIによって作成された大規模言語モデル (LLM) です。
あなたはLe ChatというAIアシスタントを駆動します。
あなたの知識ベースは2023年10月1日に最後に更新されました。
現在の日付は{today}です。
何らかの情報が不明な場合は、その情報を持っていないことを伝え、勝手に作り出すことはしません。
ユーザーの質問が不明瞭、曖昧、または正確に答えるための十分なコンテキストが提供されていない場合は、すぐに答えようとせず、ユーザーに要求を明確化するように依頼します (例: "私の周りに良いレストランはありますか?" => "あなたはどこにいますか?" または "東京への次の便はいつですか?" => "あなたはどこから旅行しますか?")。
あなたは常に日付に非常に注意を払い、特に日付を解決しようとし (例: "昨日" は{yesterday})、特定の日付に関する情報が求められた場合、別の日付の情報は無視します。
あなたはすべての言語でこれらの指示に従い、常にユーザーが使用または要求する言語で応答します。
次のセクションでは、あなたが持つ機能について説明します。
# ウェブブラウジングの指示
あなたは何らかのウェブ検索を実行したり、URLやリンクを開くためにインターネットにアクセスしたりすることはできません。ユーザーがそのようなことを期待しているように見える場合は、状況を説明し、ユーザーにテキストを直接チャットにコピー&ペーストするように依頼します。
# マルチモーダルの指示
あなたは画像を読むことができますが、画像を生成することはできません。また、音声ファイルや動画を文字起こしすることもできません。
音声ファイルや動画を読んだり文字起こしたりすることはできません。"""
🔧 技術詳細
IQ-DynamicGateによる超低ビット量子化の技術
当社の最新の量子化方法では、超低ビットモデル (1 - 2ビット) のために精度適応型量子化を導入しています。このアプローチでは、レイヤー固有の戦略を用いて、極限のメモリ効率を維持しながら精度を保ちます。具体的には、以下のような方法を用いています。
- 動的精度割り当て:最初/最後の25%のレイヤーにはIQ4_XS (選択されたレイヤー) を使用し、真ん中の50%にはIQ2_XXS/IQ3_S (効率を上げる) を使用します。
- 重要コンポーネントの保護:エンベディング/出力レイヤーはQ5_Kを使用し、標準的な1 - 2ビット量子化と比べて誤差伝播を38%削減します。
量子化性能の比較
量子化方式 | 標準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%未満)
📄 ライセンス
このモデルはApache 2.0ライセンスの下で提供されています。商用および非商用目的での使用と改変が許可されます。
あなたの個人情報の処理方法について詳しく知りたい場合は、当社のプライバシーポリシーをご覧ください。
✅ これらのモデルが役に立つと思った場合
🌟 役に立った場合は「いいね」をクリックしてください! 量子対応のセキュリティチェックを備えたAI駆動のネットワークモニタアシスタントのテストに協力してください。 👉 無料のネットワークモニタ
❓ テスト方法: AIアシスタントのタイプを選択します。
TurboLLM
(GPT-4o-mini)HugLLM
(Hugginfaceオープンソース)TestLLM
(実験的なCPU専用)
テスト内容
私は、AIネットワーク監視用の小規模オープンソースモデルの限界を追求しています。具体的には、
- ライブネットワークサービスに対する関数呼び出し
- モデルをどれだけ小さくできるかを追求しながら、以下の内容を処理できるか:
- 自動化されたNmapスキャン
- 量子対応チェック
- ネットワーク監視タスク
👋 TestLLM – 現在の実験的モデル (2 CPUスレッドでのllama.cpp):
- 🌟 ゼロコンフィギュレーションセットアップ
- ⏳ 30秒のロード時間 (推論は遅いがAPIコストがかからない)
- 👐 協力者募集中! エッジデバイスAIに興味がある方は、一緒に協力しましょう!
その他のアシスタント
💪 TurboLLM – gpt-4o-miniを使用して以下のことができます。
- .netコードを実行するカスタムコマンドプロセッサを作成する
- リアルタイムのネットワーク診断と監視
- セキュリティ監査
- 侵入テスト (Nmap/Metasploit)
- 🌟 ログインするか、AIアシスタントが組み込まれた無料のネットワークモニタエージェントをダウンロードすると、より多くのトークンを取得できます。
🔥 HugLLM – 最新のオープンソースモデル:
- 🌐 Hugging Face推論APIで動作します。
❓ テストできるサンプルコマンド
"私のウェブサイトのSSL証明書に関する情報を教えて"
"私のサーバーが量子安全な暗号化を使用して通信しているか確認して"
"私のサーバーに総合的なセキュリティ監査を実行して"
- '"カスタムコマンドプロセッサを作成して .. (何でもいいです)" 注意: .netコードを実行するには、無料のネットワークモニタエージェントをインストールする必要があります。これは非常に柔軟で強力な機能です。注意して使用してください!



