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

7.5 KiB
Raw Blame History

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. システムアップデート

sudo apt update && sudo apt upgrade -y

2. Python環境の準備

# 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のインストール

# 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. 関連パッケージ

pip install transformers accelerate huggingface_hub

モデルのダウンロード

Hugging Face CLIでダウンロード

# ログイン(初回のみ)
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

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 メモリ使用率上限

メモリ節約版(長文不要な場合)

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でテスト

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クライアント

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)

パフォーマンスチューニング

推奨設定

# 環境変数で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メモリ不足エラー

# 対策1: シーケンス数を減らす
--max-num-seqs 32

# 対策2: コンテキスト長を短く
--max-model-len 16384

# 対策3: メモリ使用率を下げる
--gpu-memory-utilization 0.80

CUDA illegal memory access エラー

# CUDAグラフモードを変更
--compilation-config "{\"cudagraph_mode\": \"PIECEWISE\"}"

出力が文字化け/破損する

# vLLMを最新のnightlyに更新
pip install -U vllm --extra-index-url https://wheels.vllm.ai/nightly

重要な注意点

Thinkingトークンの扱い

MiniMax-M2.5は interleaved thinking model です。出力に含まれる <think>...</think> タグは、履歴として次のリクエストに含める必要があります。

# ❌ NGパターンthinkingを削除
content = response.replace(r'<think>.*?</think>', '')

# ✅ OKパターンそのまま保持
history.append({"role": "assistant", "content": response})

まとめ

DGX Sparkデュアル構成256GBがあれば、最新のMiniMax-M2.5-REAP-172Bが快適に動作します。オープンソースモデルとしてはトップクラスのコーディング・エージェント性能を持つこのモデル、ぜひ試してみてください。

参考リンク


この記事は2026年2月時点の情報です。最新情報は各公式ドキュメントをご確認ください。