title: "Mistral Large 4をAPIと自前vLLMで評価するための準備メモ(コスト試算・テスト設計つき)"
tags:
- AI
- LLM
- Mistral
- vLLM
- 評価
private: false
---
この記事の位置づけ
Zennの記事では、Mistral Large 4のモデル構成と公式ベンチマークの読み方を扱った。本記事は、それを受けて「実際に評価するとき、何を準備するか」を、手順とTipsにまとめた実践メモである。
筆者の作業環境にはGPUがなく、モデルは動かしていない。 コマンドはモデルカードの記載(※1)、価格は公式発表(※2)の転記で、すべて未検証である。コスト試算の計算だけは、筆者が数値を代入して確認した。
前提:公式が示している数字
| 項目 | 値 | 出典 |
|---|---|---|
| 入力価格 | 0.70ドル / 100万トークン | ※2 |
| キャッシュ入力 | 0.07ドル / 100万トークン | ※2 |
| 出力価格 | 2.10ドル / 100万トークン | ※2 |
| コンテキスト | 1M | ※1 |
| 推論モード | Low / Medium / High(既定) | ※2 |
| ライセンス | 修正MIT(MaaS事業は別契約) | ※1、※2 |
Step 1:コストを先に見積もる
評価を始める前に、ざっくりした月額を出しておく。たとえば、次の条件を仮定する(数値は筆者の仮定で、実測ではない)。
- 1日1,000リクエスト、30日
- 1リクエストの入力が3,000トークン(うち2,000トークンがキャッシュに乗る)
- 出力が800トークン
計算は次のとおり。
- 通常の入力:1,000トークン × 30,000回 = 3,000万トークン → 0.70 × 30 = 21.0ドル
- キャッシュ入力:2,000トークン × 30,000回 = 6,000万トークン → 0.07 × 60 = 4.2ドル
- 出力:800トークン × 30,000回 = 2,400万トークン → 2.10 × 24 = 50.4ドル
合計は約75.6ドル/月となる。この条件では、出力トークンのコストが最も大きいことが分かる。推論モードをHighにすると、思考の分だけ出力が増える可能性があるため、モード別の実測が必要である(公式ブログには、モード別のトークン量の数値はない・※2)。
Step 2:まずAPIで試す
MistralのAPIは、OpenAI互換の呼び出し方もできるとは限らない。公式のドキュメントで、エンドポイントとモデル名を確認してほしい。OpenRouter経由であれば、OpenAI互換のクライアントで呼べる(※2)。
評価用のスクリプトの骨格を示す。Python 3.11、openai パッケージを想定した例で、BASE_URL とモデル名は各自の提供元に合わせて置き換える。
import os, time, json
from openai import OpenAI
client = OpenAI(base_url=os.environ["BASE_URL"], api_key=os.environ["API_KEY"])
MODEL = os.environ["MODEL"] # 提供元ごとの正式名を確認すること
def run(case):
t0 = time.time()
r = client.chat.completions.create(
model=MODEL,
messages=[{"role": "user", "content": case["prompt"]}],
max_tokens=1024,
)
return {
"id": case["id"],
"latency_s": round(time.time() - t0, 2),
"in_tokens": r.usage.prompt_tokens,
"out_tokens": r.usage.completion_tokens,
"answer": r.choices[0].message.content,
}
cases = [json.loads(l) for l in open("cases.jsonl", encoding="utf-8")]
results = [run(c) for c in cases]
json.dump(results, open("results.json", "w", encoding="utf-8"), ensure_ascii=False, indent=2)
トークン数と遅延を必ず記録しておくと、Step 1の試算を実測に置き換えられる。
Step 3:テストセットの作り方
公式ベンチマークは自社発表で、評価条件が不明である(※2)。だからこそ、自分のデータで測る。最低限、次の観点を入れたい。
- 日本語の業務文書:要約、抽出、敬語のトーン。
- 長文脈:数十万トークンの文書から、末尾近くの事実を引き出す。1Mという数字は、検索精度を保証しない。
- ツール呼び出し:スキーマ遵守、引数の誤り、無限ループの有無。
- 拒否の挙動:正当な依頼を、不必要に断らないか。
- 推論モード別:同じ入力を、Low、Medium、Highで実行し、品質とトークン量を比べる。
採点は、できれば正解が機械的に決まる課題(抽出、分類、コードのテスト通過)を中心にする。主観評価の課題は、2人以上で採点し、ばらつきを見る。
Step 4:自前運用を検討するとき(モデルカード記載・未検証)
モデルカードは、8GPUの1ノード(テンソル並列8)を前提にしている(※1)。最小VRAMは明記されていない。起動例は次のとおりである。
docker run --gpus all -p 8000:8000 vllm/vllm-openai:mistral-large-4 \
--model mistralai/Mistral-Large-4-1T-A52B \
--tensor-parallel-size 8 \
--tool-call-parser mistral \
--reasoning-parser mistral \
--enable-auto-tool-choice \
--gpu-memory-utilization 0.85
投機的デコーディングを使う場合は、--speculative-config '{"method": "dspark", "num_speculative_tokens": 3}' を足す。モデルカードは最大1.9倍のスループット向上と記載しているが、ハードウェアとワークロードに依存する(※1)。
SGLangを使う場合は、lmsysorg/sglang:mistral-large-4 のイメージと、--tp-size 8、--mem-fraction-static 0.85 などのオプションが案内されている。Blackwell GPUなら、NVFP4版のチェックポイントもある。
自前運用の損益分岐を考える
APIの月額が、Step 1のように数十ドルから数百ドルの規模なら、8GPUノードを自前で持つ理由は、コストではなくなる。自前運用を選ぶ理由は、データを外に出せない、レイテンシを制御したい、ファインチューニングしたい、といった要件側にある。
ハマりそうな点(予想)
実行していないので、あくまで予想である。
- 提供元ごとに、モデル名とパラメータの扱いが違う可能性がある。
- 推論モードの指定方法は、提供元や呼び出し方式で異なるかもしれない。公式のドキュメントで確認が必要。
- 1Mコンテキストでは、リクエスト単価が急に上がる。入力の長さに上限を設けておく。
- 公開直後は、vLLMやSGLangのイメージが更新される可能性が高い。タグを固定して再現性を保つ。
評価の基準を先に決める
最後に、採用判断の基準を、評価の前に決めておくことを勧める。たとえば「自社の日本語テストで、現行モデルの合格率を5ポイント以上上回り、1件あたりのコストが1.5倍以内」といった形である。数値は一例で、組織ごとに決めればよい。結果を見てから基準を決めると、都合のよい解釈になりやすい。
まとめ
Mistral Large 4の評価は、(1) コストの先行試算、(2) APIでの実測、(3) 自前のテストセット、(4) 必要なら自前運用、の順で進めるのが無理がない。公式ベンチマークは自社発表なので、参考値にとどめる。本記事のコマンドは公式記載の転記で未検証であり、実環境での確認が必要である。
※本記事の記載内容は筆者個人の見解であり、所属する会社や組織の立場や方針とは一切関係ありません。
筆者情報
【Tomcat-周】|AI/AX/AIセキュリティ専門家
AI戦略洞察、AI駆動開発の方法論設計と現場で回る仕組みづくりをしています。
noteで戦略洞察 / Zenn・Qiitaで技術・方法論を書いています。
AIセキュリティ・AIコンサル・AIエージェント開発・AI活用・AI駆動開発教育、AI人材育成サービスを一体で提供。
X: @ZY20240528
LinkedIn: tomcat-zhou
Facebook: zhou yi
note: tomcat-周
Zen: tomcat-周
参考資料
タグ
AI LLM Mistral vLLM 評価 コスト試算 OpenAI互換 Python