koide fd7fe6f991
All checks were successful
Deploy Docusaurus Site / deploy (push) Successful in 26s
Add: DGX SparkでQwen3-Coder-Next(80B MoE)を動かす
2026-02-19 11:31:37 +00:00

237 lines
6.1 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.

---
sidebar_position: 3
title: DGX SparkでQwen3-Coder-Next80B MoEを動かす
description: NVIDIA DGX Sparkの128GB統合メモリでQwen3-Coder-Next80B MoEをFP8量子化で動かす方法を解説
hide_table_of_contents: false
displayed_sidebar: null
---
# DGX SparkでQwen3-Coder-Nextを動かす
## はじめに
**DGX Spark**はNVIDIAのデスクトップAIワークステーション。Grace BlackwellGB10アーキテクチャで、**128GB統合メモリ**を持つ。この記事では、最新の**Qwen3-Coder-Next**80B-A3B MoEをDGX Spark単体で動かす方法を解説する。
### 対象読者
- DGX Sparkを持っている
- 大規模LLMをローカルで動かしたい
- コーディング用のAIモデルを探している
### Qwen3-Coder-Nextとは
Qwen3-Coder-Nextは2026年2月にリリースされたMixture of ExpertsMoEコーディングモデル
| 項目 | 値 |
|-----|-----|
| 総パラメータ | 80B800億 |
| アクティブパラメータ | 3B30億 |
| アーキテクチャ | Mamba + Transformer ハイブリッド |
| コンテキスト長 | 最大1M tokens |
MoE構造により、80Bパラメータでありながら推論時は3Bしかアクティブにならないため、効率的。
## ワンライナーでセットアップ
```bash
curl -sL https://docs.techswan.online/scripts/dgx-spark-qwen3-coder.sh | bash
```
:::tip 初回起動
モデルダウンロード約45GB+ ロードで15-20分かかる。`docker logs -f qwen3-coder-next-fp8` で進捗確認。
:::
## 重要:コンテナ選定
:::danger NGCコンテナ必須
DGX Sparkでは必ずNGC公式コンテナを使う。pipインストールや野良ビルドは、ドライバー互換性問題を引き起こす。
:::
```bash
# ❌ やってはいけない
pip install vllm
# ✅ 正解NGC公式コンテナ
docker pull nvcr.io/nvidia/vllm:25.11-py3
```
## 量子化の選択
### BF16は無理
80BモデルをBF1616bitで動かすには約160GBのメモリが必要。DGX Sparkの128GBでは足りない。
```
torch.OutOfMemoryError: CUDA out of memory.
GPU 0 has a total capacity of 119.64 GiB of which 994.07 MiB is free.
```
### FP8を使う
**FP8版**`Qwen/Qwen3-Coder-Next-FP8`を使えば、約45GBで収まる。
| 量子化 | メモリ | DGX Spark単体 |
|--------|--------|--------------|
| BF16 | ~160GB | ❌ |
| FP8 | ~45GB | ✅ |
| NVFP4 | ~25GB | ✅ |
## 手動セットアップ
### 起動コマンド
```bash title="Qwen3-Coder-Next-FP8 起動"
docker run -d --name qwen3-coder-next-fp8 \
--gpus all \
-p 8000:8000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--ipc=host \
nvcr.io/nvidia/vllm:25.11-py3 \
vllm serve Qwen/Qwen3-Coder-Next-FP8 \
--max-model-len 32768 \
--max-num-seqs 32 \
--gpu-memory-utilization 0.85 \
--trust-remote-code
```
### パラメータ解説
| パラメータ | 値 | 説明 |
|-----------|-----|------|
| `--gpus all` | - | 全GPU使用 |
| `--ipc=host` | - | 共有メモリ設定(必須) |
| `--max-model-len` | 32768 | 最大コンテキスト長 |
| `--max-num-seqs` | 32 | 同時リクエスト数 |
| `--gpu-memory-utilization` | 0.85 | GPUメモリ使用率 |
| `--trust-remote-code` | - | カスタムコード許可 |
## 起動ログの確認
### 正常な起動シーケンス
```bash
docker logs -f qwen3-coder-next-fp8
```
1. **モデルダウンロード**初回のみ、約45GB
2. **Safetensorsロード**40シャード、約10分
3. **KVキャッシュ確保**
4. **CUDAグラフキャプチャ**
5. **API起動完了**
```
INFO: Application startup complete.
```
### 進捗確認
```bash
# ダウンロード進捗
du -sh ~/.cache/huggingface/hub/models--Qwen--Qwen3-Coder-Next-FP8
# ロード進捗(ログに表示)
Loading safetensors checkpoint shards: 62% Completed | 25/40
```
## 推論テスト
### ヘルスチェック
```bash
curl http://localhost:8000/health
```
### チャット
```bash
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen3-Coder-Next-FP8",
"messages": [
{"role": "user", "content": "Pythonでフィボナッチ数列を生成する関数を書いて"}
],
"max_tokens": 500
}'
```
## トラブルシューティング
### OOMメモリ不足
:::warning 症状
```
CUDA out of memory. Tried to allocate X GiB.
```
:::
**対処:**
1. FP8/NVFP4量子化版を使う
2. `--max-model-len`を減らす32768 → 16384
3. `--gpu-memory-utilization`を減らす0.85 → 0.75
4. 他のプロセスを停止
### メモリリーク
**症状:** OOM後に空きメモリが減ったまま
**対処:**
```bash
# 全コンテナ停止
docker stop $(docker ps -q)
# メモリ確認
free -h
```
### gpu-memory-utilizationエラー
**症状:**
```
ValueError: Free memory on device (94.25/119.64 GiB) is less than desired GPU memory utilization
```
**対処:**
```bash
# 他のプロセスがGPUを使用中
# 全コンテナを停止してからリトライ
docker stop $(docker ps -q)
```
## スペック情報
### 起動後のメモリ使用量
```
Mem: 119Gi total, 84Gi used, 21Gi free
```
### KVキャッシュ
```
Available KV cache memory: 26.23 GiB
GPU KV cache size: 286,144 tokens
Maximum concurrency for 32,768 tokens per request: 32.91x
```
## まとめ
DGX SparkでQwen3-Coder-Next80B MoEを動かすポイント
1. **NGC公式コンテナ**を使う(`nvcr.io/nvidia/vllm:25.11-py3`
2. **FP8量子化版**を使うBF16は128GBに収まらない
3. **初回起動は時間がかかる**(ダウンロード + ロードで15-20分
4. **メモリ競合に注意**他のプロセスがGPUを使っているとOOM
FP8で45GB程度なので、32Kコンテキストで余裕をもって動作する。コーディング用途に最適
## 参考リンク
- [Qwen3-Coder-Next HuggingFace](https://huggingface.co/Qwen/Qwen3-Coder-Next-FP8)
- [DGX Spark Playbooks](https://build.nvidia.com/spark/)
- [vLLM Documentation](https://docs.vllm.ai/)
---
*この記事は2026年2月時点の情報です。*