Add: DGX SparkでMiniMax-M2.5-REAP-172Bを動かす記事
This commit is contained in:
commit
bfdf6227f9
276
dgx-spark-minimax-m25-reap.md
Normal file
276
dgx-spark-minimax-m25-reap.md
Normal file
@ -0,0 +1,276 @@
|
|||||||
|
# DGX Sparkで最新LLM「MiniMax-M2.5-REAP-172B」を動かしてみた
|
||||||
|
|
||||||
|
## はじめに
|
||||||
|
|
||||||
|
NVIDIA DGX Sparkは、デスクトップサイズでありながら最大200Bパラメータ(デュアル構成で405B)のAIモデルを動かせる小型AIワークステーションです。今回は、2026年2月にリリースされたばかりの最新モデル「**MiniMax-M2.5-REAP-172B-A10B**」をDGX Sparkデュアル構成(256GB統合メモリ)で動かす手順を紹介します。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## MiniMax-M2.5-REAP-172Bとは?
|
||||||
|
|
||||||
|
MiniMax-M2.5は、中国MiniMax社が開発したコーディング・エージェント特化のMixture-of-Experts(MoE)モデルです。Cerebras社がREAP(Router-weighted Expert Activation Pruning)技術を適用し、オリジナルの230Bパラメータから172Bに軽量化したものが本モデルです。
|
||||||
|
|
||||||
|
### スペック
|
||||||
|
|
||||||
|
| 項目 | 値 |
|
||||||
|
|------|-----|
|
||||||
|
| 総パラメータ数 | 172B |
|
||||||
|
| アクティブパラメータ数 | 10B/トークン |
|
||||||
|
| レイヤー数 | 62 |
|
||||||
|
| エキスパート数 | 192(256から25%削減)|
|
||||||
|
| コンテキスト長 | 196,608トークン |
|
||||||
|
| ライセンス | Modified MIT |
|
||||||
|
|
||||||
|
### なぜREAP版がおすすめ?
|
||||||
|
|
||||||
|
- **ほぼ無劣化で25%軽量化**: HumanEval等のベンチマークでオリジナルと同等性能
|
||||||
|
- **vLLMネイティブ対応**: パッチ不要でそのまま動く
|
||||||
|
- **256GBメモリで十分動作**: オリジナル230B版では厳しいVRAM要件をクリア
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 動作環境
|
||||||
|
|
||||||
|
### DGX Spark デュアル構成
|
||||||
|
|
||||||
|
| 項目 | スペック |
|
||||||
|
|------|----------|
|
||||||
|
| アーキテクチャ | NVIDIA Grace Blackwell (GB10) |
|
||||||
|
| GPU | Blackwell GPU × 2 |
|
||||||
|
| メモリ | 256GB統合メモリ(LPDDR5x)|
|
||||||
|
| ストレージ | 4TB NVMe × 2 |
|
||||||
|
| ネットワーク | ConnectX-7 (クラスタ間接続) |
|
||||||
|
|
||||||
|
※ 単体構成(128GB)の場合は、より小さいREAP-139B版か量子化版を検討してください。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 環境構築
|
||||||
|
|
||||||
|
### 1. システムアップデート
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt update && sudo apt upgrade -y
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Python環境の準備
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Python 3.11推奨
|
||||||
|
sudo apt install python3.11 python3.11-venv python3-pip -y
|
||||||
|
|
||||||
|
# 仮想環境作成
|
||||||
|
python3.11 -m venv ~/minimax-env
|
||||||
|
source ~/minimax-env/bin/activate
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. vLLMのインストール
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# nightlyビルド推奨(最新モデル対応)
|
||||||
|
pip install -U vllm --extra-index-url https://wheels.vllm.ai/nightly
|
||||||
|
|
||||||
|
# または検証済みバージョン
|
||||||
|
export VLLM_COMMIT=dea63512bb9bdf7521d591546c52138d9d79e8ce
|
||||||
|
pip install vllm \
|
||||||
|
--torch-backend=auto \
|
||||||
|
--extra-index-url https://wheels.vllm.ai/${VLLM_COMMIT}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. 関連パッケージ
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install transformers accelerate huggingface_hub
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## モデルのダウンロード
|
||||||
|
|
||||||
|
### Hugging Face CLIでダウンロード
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# ログイン(初回のみ)
|
||||||
|
huggingface-cli login
|
||||||
|
|
||||||
|
# モデルダウンロード(約330GB、時間かかります)
|
||||||
|
huggingface-cli download cerebras/MiniMax-M2.5-REAP-172B-A10B \
|
||||||
|
--local-dir ~/models/MiniMax-M2.5-REAP-172B-A10B
|
||||||
|
```
|
||||||
|
|
||||||
|
### ダウンロード時間の目安
|
||||||
|
|
||||||
|
| 回線速度 | 所要時間 |
|
||||||
|
|---------|---------|
|
||||||
|
| 1Gbps | 約45分 |
|
||||||
|
| 10Gbps | 約5分 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## モデルの起動
|
||||||
|
|
||||||
|
### 基本起動コマンド(デュアル構成・256GB)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
vllm serve cerebras/MiniMax-M2.5-REAP-172B-A10B \
|
||||||
|
--tensor-parallel-size 2 \
|
||||||
|
--tool-call-parser minimax_m2 \
|
||||||
|
--reasoning-parser minimax_m2_append_think \
|
||||||
|
--trust-remote-code \
|
||||||
|
--enable-auto-tool-choice \
|
||||||
|
--max-model-len 65536 \
|
||||||
|
--gpu-memory-utilization 0.90
|
||||||
|
```
|
||||||
|
|
||||||
|
### パラメータ解説
|
||||||
|
|
||||||
|
| パラメータ | 説明 |
|
||||||
|
|-----------|------|
|
||||||
|
| `--tensor-parallel-size 2` | 2台のSparkでテンソル並列 |
|
||||||
|
| `--tool-call-parser minimax_m2` | MiniMax専用ツールコールパーサー |
|
||||||
|
| `--reasoning-parser minimax_m2_append_think` | thinking出力を履歴に保持 |
|
||||||
|
| `--max-model-len 65536` | 最大コンテキスト長(64K)|
|
||||||
|
| `--gpu-memory-utilization 0.90` | メモリ使用率上限 |
|
||||||
|
|
||||||
|
### メモリ節約版(長文不要な場合)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
vllm serve cerebras/MiniMax-M2.5-REAP-172B-A10B \
|
||||||
|
--tensor-parallel-size 2 \
|
||||||
|
--tool-call-parser minimax_m2 \
|
||||||
|
--reasoning-parser minimax_m2_append_think \
|
||||||
|
--trust-remote-code \
|
||||||
|
--enable-auto-tool-choice \
|
||||||
|
--max-model-len 16384 \
|
||||||
|
--max-num-seqs 32 \
|
||||||
|
--gpu-memory-utilization 0.85
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 動作確認
|
||||||
|
|
||||||
|
### OpenAI互換APIでテスト
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl http://localhost:8000/v1/chat/completions \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{
|
||||||
|
"model": "cerebras/MiniMax-M2.5-REAP-172B-A10B",
|
||||||
|
"messages": [
|
||||||
|
{"role": "user", "content": "Pythonでフィボナッチ数列を生成する関数を書いて"}
|
||||||
|
],
|
||||||
|
"temperature": 1.0,
|
||||||
|
"top_p": 0.95,
|
||||||
|
"top_k": 40
|
||||||
|
}'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Pythonクライアント
|
||||||
|
|
||||||
|
```python
|
||||||
|
from openai import OpenAI
|
||||||
|
|
||||||
|
client = OpenAI(
|
||||||
|
base_url="http://localhost:8000/v1",
|
||||||
|
api_key="dummy" # vLLMはAPIキー不要
|
||||||
|
)
|
||||||
|
|
||||||
|
response = client.chat.completions.create(
|
||||||
|
model="cerebras/MiniMax-M2.5-REAP-172B-A10B",
|
||||||
|
messages=[
|
||||||
|
{"role": "user", "content": "SWE-benchスタイルのバグ修正タスクをシミュレートして"}
|
||||||
|
],
|
||||||
|
temperature=1.0,
|
||||||
|
top_p=0.95
|
||||||
|
)
|
||||||
|
|
||||||
|
print(response.choices[0].message.content)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## パフォーマンスチューニング
|
||||||
|
|
||||||
|
### 推奨設定
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 環境変数でCUDAグラフ最適化
|
||||||
|
export VLLM_ATTENTION_BACKEND=FLASHINFER
|
||||||
|
|
||||||
|
# DeepGEMMを有効化(要インストール)
|
||||||
|
./tools/install_deepgemm.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### 期待されるスループット
|
||||||
|
|
||||||
|
| 設定 | Input/Output | スループット |
|
||||||
|
|------|-------------|-------------|
|
||||||
|
| TP=2, 64K context | 2048/1024 | ~100 tok/s |
|
||||||
|
| TP=2, 16K context | 2048/1024 | ~150 tok/s |
|
||||||
|
|
||||||
|
※ 実測値は環境により変動します
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## トラブルシューティング
|
||||||
|
|
||||||
|
### OOM(メモリ不足)エラー
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 対策1: シーケンス数を減らす
|
||||||
|
--max-num-seqs 32
|
||||||
|
|
||||||
|
# 対策2: コンテキスト長を短く
|
||||||
|
--max-model-len 16384
|
||||||
|
|
||||||
|
# 対策3: メモリ使用率を下げる
|
||||||
|
--gpu-memory-utilization 0.80
|
||||||
|
```
|
||||||
|
|
||||||
|
### CUDA illegal memory access エラー
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# CUDAグラフモードを変更
|
||||||
|
--compilation-config "{\"cudagraph_mode\": \"PIECEWISE\"}"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 出力が文字化け/破損する
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# vLLMを最新のnightlyに更新
|
||||||
|
pip install -U vllm --extra-index-url https://wheels.vllm.ai/nightly
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 重要な注意点
|
||||||
|
|
||||||
|
### Thinkingトークンの扱い
|
||||||
|
|
||||||
|
MiniMax-M2.5は **interleaved thinking model** です。出力に含まれる `<think>...</think>` タグは、履歴として次のリクエストに含める必要があります。
|
||||||
|
|
||||||
|
```python
|
||||||
|
# ❌ NGパターン:thinkingを削除
|
||||||
|
content = response.replace(r'<think>.*?</think>', '')
|
||||||
|
|
||||||
|
# ✅ OKパターン:そのまま保持
|
||||||
|
history.append({"role": "assistant", "content": response})
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## まとめ
|
||||||
|
|
||||||
|
DGX Sparkデュアル構成(256GB)があれば、最新のMiniMax-M2.5-REAP-172Bが快適に動作します。オープンソースモデルとしてはトップクラスのコーディング・エージェント性能を持つこのモデル、ぜひ試してみてください。
|
||||||
|
|
||||||
|
### 参考リンク
|
||||||
|
|
||||||
|
- [MiniMax-M2.5-REAP-172B (Hugging Face)](https://huggingface.co/cerebras/MiniMax-M2.5-REAP-172B-A10B)
|
||||||
|
- [MiniMax-M2 公式リポジトリ (GitHub)](https://github.com/MiniMax-AI/MiniMax-M2)
|
||||||
|
- [vLLM MiniMax-M2 デプロイガイド](https://docs.vllm.ai/projects/recipes/en/latest/MiniMax/MiniMax-M2.html)
|
||||||
|
- [REAP論文 (arXiv)](https://arxiv.org/abs/2510.13999)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*この記事は2026年2月時点の情報です。最新情報は各公式ドキュメントをご確認ください。*
|
||||||
Loading…
x
Reference in New Issue
Block a user