All checks were successful
Deploy Docusaurus Site / deploy (push) Successful in 26s
174 lines
5.2 KiB
Markdown
174 lines
5.2 KiB
Markdown
---
|
||
sidebar_position: 4
|
||
title: DGX SparkでClaude Codeをローカルモデルで動かす
|
||
description: DGX Spark上でQwen3-Coder-Next-FP8をvLLM経由でClaude Codeのバックエンドとして使う方法(200Kコンテキスト対応)
|
||
hide_table_of_contents: false
|
||
displayed_sidebar: null
|
||
---
|
||
|
||
# DGX SparkでClaude Codeをローカルモデルで動かす
|
||
|
||
## 概要
|
||
|
||
Claude Codeをローカルで動かすメリット:
|
||
|
||
- **プライバシー**: コードがクラウドに送信されない
|
||
- **コスト**: API料金不要
|
||
- **速度**: ネットワーク遅延なし
|
||
|
||
この記事では、DGX Spark上でQwen3-Coder-Next-FP8を使ってClaude Codeを動かす方法を解説する。
|
||
|
||
## ワンライナーセットアップ
|
||
|
||
```bash
|
||
curl -sL https://docs.techswan.online/scripts/dgx-spark-claude-code.sh | bash
|
||
```
|
||
|
||
:::tip
|
||
初回はモデルロードに約10分かかる。スクリプトは完了まで待機する。
|
||
:::
|
||
|
||
## 構成
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────┐
|
||
│ DGX Spark │
|
||
│ │
|
||
│ ┌─────────────┐ ┌──────────────────┐ │
|
||
│ │ Claude Code │───▶│ claude-code-proxy│ │
|
||
│ └─────────────┘ │ (port 8082) │ │
|
||
│ └────────┬─────────┘ │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ ┌──────────────────┐ │
|
||
│ │ vLLM Server │ │
|
||
│ │ (port 8000) │ │
|
||
│ │ Qwen3-Coder-Next │ │
|
||
│ └──────────────────┘ │
|
||
└─────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## 手動セットアップ
|
||
|
||
### Step 1: vLLMでQwen3-Coder-Next-FP8を起動
|
||
|
||
```bash title="vLLM起動(200Kコンテキスト)"
|
||
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` | **Qwen3専用パーサー** |
|
||
|
||
:::danger tool-call-parserに注意
|
||
`--tool-call-parser hermes` ではなく **`qwen3_xml`** を使うこと!
|
||
hermesだとTool Callingのフォーマットが崩れてClaude Codeが止まる。
|
||
:::
|
||
|
||
### 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
|
||
```
|
||
|
||
```bash title=".env作成"
|
||
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
|
||
```
|
||
|
||
```bash
|
||
python start_proxy.py
|
||
```
|
||
|
||
### Step 3: Claude Codeを起動
|
||
|
||
```bash
|
||
ANTHROPIC_BASE_URL=http://localhost:8082 \
|
||
ANTHROPIC_API_KEY=dummy \
|
||
claude
|
||
```
|
||
|
||
:::tip ANTHROPIC_AUTH_TOKEN
|
||
`ANTHROPIC_AUTH_TOKEN` は**設定しない**こと!両方設定するとAuth conflictエラーが出る。
|
||
:::
|
||
|
||
### シェル設定に追加(推奨)
|
||
|
||
```bash title="~/.bashrc"
|
||
alias claude-local='ANTHROPIC_BASE_URL=http://localhost:8082 ANTHROPIC_API_KEY=dummy claude'
|
||
```
|
||
|
||
## パフォーマンス
|
||
|
||
| 項目 | 値 |
|
||
|------|-----|
|
||
| プロンプト処理 | ~2300 tokens/s |
|
||
| 生成速度 | ~20-30 tokens/s |
|
||
| メモリ使用量 | ~84GB / 119GB |
|
||
| 最大コンテキスト | **200K tokens** |
|
||
| 同時リクエスト | 8 |
|
||
|
||
## トラブルシューティング
|
||
|
||
### Tool Callingで止まる
|
||
|
||
```bash
|
||
# ❌ 間違い
|
||
--tool-call-parser hermes
|
||
|
||
# ✅ 正解
|
||
--tool-call-parser qwen3_xml
|
||
```
|
||
|
||
### Auth conflict エラー
|
||
|
||
```bash
|
||
unset ANTHROPIC_AUTH_TOKEN
|
||
```
|
||
|
||
### max_tokens エラー
|
||
|
||
入力が長すぎて出力枠がない場合、プロキシの `MAX_TOKENS_LIMIT` を下げる。
|
||
|
||
## まとめ
|
||
|
||
1. **vLLM** + **Qwen3-Coder-Next-FP8**を起動(200K対応)
|
||
2. **`--tool-call-parser qwen3_xml`** を使う
|
||
3. **claude-code-proxy**でAPI変換
|
||
4. **`ANTHROPIC_AUTH_TOKEN`は設定しない**
|
||
|
||
## 参考リンク
|
||
|
||
- [vLLM Claude Code統合](https://docs.vllm.ai/en/latest/serving/integrations/claude_code/)
|
||
- [claude-code-proxy](https://github.com/fuergaosi233/claude-code-proxy)
|
||
|
||
---
|
||
|
||
*この記事は2026年2月時点の情報です。*
|