koide 8c109a1d9a
All checks were successful
Deploy Docusaurus Site / deploy (push) Successful in 28s
Add: OGPバナー画像自動生成 (node-canvas) + 全記事一括生成
2026-02-28 01:03:39 +00:00

281 lines
9.9 KiB
Markdown
Raw Permalink 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: 4
title: DGX SparkでClaude Code + Qwen3-Coder-Nextをローカル実行する
description: Claude Codeを完全ローカル化Qwen3-Coder-Next80B MoEで動かす方法を解説
hide_table_of_contents: false
displayed_sidebar: null
image: ./banner.png
---
# DGX SparkでClaude Codeを完全ローカル化Qwen3-Coder-Nextで動かしてみた
## はじめに
**Claude Code**、使ってますか?
Anthropic公式のターミナルベースAIコーディングアシスタント。ファイルを読んで、コードを書いて、コマンドを実行して...まるで優秀なペアプログラマーがそばにいるような体験ができます。
ただ、1つ気になることが。
**「自分のコード、全部クラウドに送ってるんだよな...」**
企業の機密コードや、個人的なプロジェクトを扱うとき、ちょっと気になりませんか?
そこで今回は、**Claude Codeを完全ローカルで動かす**方法を紹介します。
## Ollama Launchとの比較
Claude Codeをローカルで動かす方法は他にもあります。代表的なのが**Ollama Launch**。
| 項目 | この記事の方法 | Ollama Launch |
|------|---------------|---------------|
| **セットアップ** | 複雑vLLM + プロキシ) | **簡単** |
| **推論速度** | **速い20-30 tok/s** | 遅め |
| **対応モデル** | 様々 | GGUF量子化モデル |
| **コンテキスト長** | **200K対応** | モデル依存 |
| **必要スペック** | 高DGX Spark等 | 低〜中 |
:::tip どちらを選ぶ?
- **手軽に試したい** → Ollama Launch
- **本格的に使いたい・速度重視** → この記事の方法
:::
この記事の方法は**セットアップが複雑**ですが、vLLMの最適化により**推論速度が速く**、並列稼働も可能になります。
## 何ができるようになるの?
-**プライバシー保護** - コードがクラウドに送られない
-**API料金ゼロ** - 月額課金から解放
-**200Kトークン対応** - 大規模なコードベースも一度に読める
-**オフライン動作** - ネット環境がなくてもOK
## 必要なもの
今回使うのは **NVIDIA DGX Spark**
:::note
同じ手順は他のNVIDIA GPU搭載マシンでも応用できますVRAMは多めに必要
:::
### DGX Sparkとは
NVIDIAの「デスクトップAIワークステーション」です。
| スペック | 値 |
|---------|-----|
| GPU | NVIDIA GB10Blackwell世代 |
| メモリ | **128GB統合メモリ** |
| サイズ | Mac Studioくらい |
| 価格 | 約50万円〜 |
128GBの統合メモリがポイント。普通のGPUだとVRAM 24GBとかですが、DGX Sparkは128GB全部をモデルに使えます。
## 構成図
```text
┌─────────────────────────────────────────────────────┐
│ あなたのPC / DGX Spark │
│ │
│ ┌─────────────┐ │
│ │ Claude Code │ ← いつものClaude Code │
│ │ (Terminal) │ │
│ └──────┬──────┘ │
│ │ Anthropic API形式 │
│ ▼ │
│ ┌──────────────────┐ │
│ │ claude-code-proxy│ ← API形式を変換 │
│ │ (port 8082) │ │
│ └────────┬─────────┘ │
│ │ OpenAI API形式 │
│ ▼ │
│ ┌──────────────────┐ │
│ │ vLLM │ ← 推論エンジン │
│ │ (port 8000) │ │
│ │ │ │
│ │ ┌──────────────┐ │ │
│ │ │Qwen3-Coder- │ │ ← 80Bパラメータの │
│ │ │ Next-FP8 │ │ コーディングモデル │
│ │ └──────────────┘ │ │
│ └──────────────────┘ │
└─────────────────────────────────────────────────────┘
```
### なぜプロキシが必要?
Claude CodeはAnthropic独自のAPI形式を使います。一方、vLLMはOpenAI互換API。
この2つを繋ぐために **claude-code-proxy** を間に挟みます。
## 使用するモデルQwen3-Coder-Next
今回使うのは **Qwen3-Coder-Next-FP8**
| 項目 | 値 |
|------|-----|
| 開発 | Alibaba Cloud |
| パラメータ | 80B総数/ 3B推論時アクティブ |
| アーキテクチャ | MoEMixture of Experts |
| 最大コンテキスト | 1Mトークン |
| 特徴 | コーディング特化 |
**MoEMixture of Experts** がポイント。80Bパラメータでも、推論時は3Bしか使わないので高速です。
FP8量子化版を使うことで、メモリ使用量は約45GB。DGX Sparkの128GBなら余裕です。
## ワンライナーで全自動セットアップ
```bash
curl -sL https://docs.techswan.online/scripts/dgx-spark-claude-code.sh | bash
```
これだけ約10分待つと環境が整います。
以下は手動でやりたい人向けの解説です。
---
## 手動セットアップ
### Step 1: vLLMでモデルを起動
```bash title="vLLM起動コマンド"
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 \
--served-model-name qwen3-coder-next \
--max-model-len 200000 \
--max-num-seqs 8 \
--gpu-memory-utilization 0.85 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_xml \
--trust-remote-code
```
#### 重要なポイント
| オプション | 値 | 説明 |
|-----------|-----|------|
| `--max-model-len` | 200000 | 200Kトークンまで対応 |
| `--max-num-seqs` | 8 | 同時リクエスト数(メモリ節約) |
| `--tool-call-parser` | **qwen3_xml** | ⚠️ これ超重要! |
:::danger tool-call-parserに注意
`--tool-call-parser` を間違えると、Claude Codeのファイル操作やコマンド実行が動きません。**必ず `qwen3_xml`** を指定してください。
:::
初回起動は約10分かかります45GBのモデルをダウンロードロード
### Step 2: claude-code-proxyを起動
```bash
# クローン
git clone https://github.com/fuergaosi233/claude-code-proxy.git
cd claude-code-proxy
# 依存関係インストール
pip install -r requirements.txt --user
```
`.env` ファイルを作成:
```ini title=".env"
OPENAI_BASE_URL=http://localhost:8000/v1
OPENAI_API_KEY=dummy
BIG_MODEL=qwen3-coder-next
MIDDLE_MODEL=qwen3-coder-next
SMALL_MODEL=qwen3-coder-next
REQUEST_TIMEOUT=300
MAX_TOKENS_LIMIT=8192
```
プロキシを起動:
```bash
python start_proxy.py
```
### Step 3: Claude Codeを起動
```bash
ANTHROPIC_BASE_URL=http://localhost:8082 \
ANTHROPIC_API_KEY=dummy \
claude
```
:::warning ANTHROPIC_AUTH_TOKEN
`ANTHROPIC_AUTH_TOKEN` は設定しないでください。両方設定するとエラーになります。
:::
### 便利なエイリアス設定
```bash title="~/.bashrc に追加"
alias claude-local='ANTHROPIC_BASE_URL=http://localhost:8082 ANTHROPIC_API_KEY=dummy claude'
```
これで `claude-local` と打つだけでOK
## パフォーマンス
| 項目 | 値 |
|------|-----|
| プロンプト処理 | ~2300 tokens/秒 |
| 生成速度 | ~20-30 tokens/秒 |
| 最大コンテキスト | 200K tokens |
| メモリ使用量 | 約84GB |
Anthropic APIに比べると生成速度は遅めですが、ローカルで完結する安心感は大きいです。
## ハマったポイント
### 1. Tool Callingで止まる
最初、ファイル操作しようとすると固まりました。
**原因**: `--tool-call-parser hermes` を使っていた
**解決**: `--tool-call-parser qwen3_xml` に変更
Qwen3系モデルは独自のTool Callingフォーマットを使うので、専用のパーサーが必要です。
### 2. Auth conflictエラー
```text
Auth conflict: Both a token (ANTHROPIC_AUTH_TOKEN) and an API key (ANTHROPIC_API_KEY) are set.
```
**解決**: `ANTHROPIC_AUTH_TOKEN` を設定しない(または `unset ANTHROPIC_AUTH_TOKEN`
### 3. max_tokensエラー
入力が長すぎると、出力用のトークン枠がなくなってエラーに。
**解決**: vLLMの `--max-model-len` を増やす今回は200Kに設定
## まとめ
DGX SparkでClaude Codeをローカル化できました
**ポイントまとめ**
1. **vLLM + Qwen3-Coder-Next-FP8** でモデルを動かす
2. **claude-code-proxy** でAPI形式を変換
3. `--tool-call-parser qwen3_xml` を忘れずに!
4. `ANTHROPIC_AUTH_TOKEN` は設定しない
セットアップは複雑ですが、一度動けば**速くて安定**。完全ローカルでClaude Codeが動く喜び、ぜひ体験してみてください。
## 参考リンク
- [vLLM公式ドキュメント](https://docs.vllm.ai/)
- [claude-code-proxy](https://github.com/fuergaosi233/claude-code-proxy)
- [Qwen3-Coder-Next-FP8Hugging Face](https://huggingface.co/Qwen/Qwen3-Coder-Next-FP8)
- [DGX Spark Playbooks](https://build.nvidia.com/spark/)
---
*この記事は2026年2月時点の情報です。*