koide 8a5a873587
All checks were successful
Deploy Docusaurus Site / deploy (push) Successful in 26s
Update: Claude Code記事を200K対応に更新 + ワンライナー追加
2026-02-19 13:13:39 +00:00

174 lines
5.2 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をローカルモデルで動かす
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月時点の情報です。*