koide b9fceb0517
All checks were successful
Deploy Docusaurus Site / deploy (push) Successful in 28s
Update: Claude Code記事をnote向けにリライト
2026-02-19 13:25:41 +00:00

257 lines
8.9 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: 4
title: DGX SparkでClaude Code + Qwen3-Coder-Nextをローカル実行する
description: Claude Codeを完全ローカル化Qwen3-Coder-Next80B MoEで動かす方法を解説
hide_table_of_contents: false
displayed_sidebar: null
---
# DGX SparkでClaude Codeを完全ローカル化Qwen3-Coder-Nextで動かしてみた
## はじめに
**Claude Code**、使ってますか?
Anthropic公式のターミナルベースAIコーディングアシスタント。ファイルを読んで、コードを書いて、コマンドを実行して...まるで優秀なペアプログラマーがそばにいるような体験ができます。
ただ、1つ気になることが。
**「自分のコード、全部クラウドに送ってるんだよな...」**
企業の機密コードや、個人的なプロジェクトを扱うとき、ちょっと気になりませんか?
そこで今回は、**Claude Codeを完全ローカルで動かす**方法を紹介します。
## 何ができるようになるの?
-**プライバシー保護** - コードがクラウドに送られない
-**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全部をモデルに使えます。
## 構成図
```
┌─────────────────────────────────────────────────────┐
│ あなたの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
# 設定ファイル作成
cat > .env << 'EOF'
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
EOF
# 起動
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エラー
```
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月時点の情報です。*