note-articles/dgx-spark-minimax-m25-reap.md

277 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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-ExpertsMoEモデルです。Cerebras社がREAPRouter-weighted Expert Activation Pruning技術を適用し、オリジナルの230Bパラメータから172Bに軽量化したものが本モデルです。
### スペック
| 項目 | 値 |
|------|-----|
| 総パラメータ数 | 172B |
| アクティブパラメータ数 | 10B/トークン |
| レイヤー数 | 62 |
| エキスパート数 | 192256から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月時点の情報です。最新情報は各公式ドキュメントをご確認ください。*