koide 6364d215c6
All checks were successful
Deploy Docusaurus Site / deploy (push) Successful in 29s
Add: DGX SparkでClaude Codeをローカルモデルで動かす
2026-02-19 13:01:22 +00:00

6.4 KiB
Raw Blame History

sidebar_position, title, description, hide_table_of_contents, displayed_sidebar
sidebar_position title description hide_table_of_contents displayed_sidebar
4 DGX SparkでClaude Codeをローカルモデルで動かす DGX Spark上でQwen3-Coder-Next-FP8をvLLM経由でClaude Codeのバックエンドとして使う方法 false null

DGX SparkでClaude Codeをローカルモデルで動かす

概要

Claude Codeをローカルで動かすメリット

  • プライバシー: コードがクラウドに送信されない
  • コスト: API料金不要
  • 速度: ネットワーク遅延なし

この記事では、DGX Spark上でQwen3-Coder-Next-FP8を使ってClaude Codeを動かす方法を解説する。

構成

┌─────────────────────────────────────────────────────┐
│ DGX Spark                                           │
│                                                     │
│  ┌─────────────┐    ┌──────────────────┐           │
│  │ Claude Code │───▶│ claude-code-proxy│           │
│  └─────────────┘    │ (port 8082)      │           │
│                     └────────┬─────────┘           │
│                              │                      │
│                              ▼                      │
│                     ┌──────────────────┐           │
│                     │ vLLM Server      │           │
│                     │ (port 8000)      │           │
│                     │ Qwen3-Coder-Next │           │
│                     └──────────────────┘           │
└─────────────────────────────────────────────────────┘

なぜプロキシが必要?

  • Claude Code → Anthropic Messages API
  • vLLM → OpenAI互換API

フォーマットが異なるため、claude-code-proxyで変換する。

前提条件

  • DGX Spark128GB統合メモリ
  • Docker
  • Node.js 22+

Step 1: vLLMで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 \
  --served-model-name qwen3-coder-next \
  --max-model-len 32768 \
  --max-num-seqs 32 \
  --gpu-memory-utilization 0.85 \
  --enable-auto-tool-choice \
  --tool-call-parser qwen3_xml \
  --trust-remote-code

重要なパラメータ

パラメータ 説明
--served-model-name qwen3-coder-next モデル名(/を含めない)
--enable-auto-tool-choice - Tool Calling有効化
--tool-call-parser qwen3_xml Qwen3専用パーサー(重要!)

:::danger tool-call-parserに注意 --tool-call-parser hermes ではなく qwen3_xml を使うこと! hermesだとTool Callingのフォーマットが崩れてClaude Codeが止まる。 :::

起動確認

# ヘルスチェック
curl http://localhost:8000/health

# モデル一覧
curl http://localhost:8000/v1/models

初回起動は約10分かかる45GBのモデルをロード

Step 2: claude-code-proxyをセットアップ

インストール

# リポジトリをクローン
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

動作確認

curl http://localhost:8082/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: dummy" \
  -d '{"model": "claude-3-5-sonnet-20241022", "max_tokens": 100, "messages": [{"role": "user", "content": "Hello"}]}'

Step 3: Claude Codeを起動

:::tip ANTHROPIC_AUTH_TOKEN ANTHROPIC_AUTH_TOKEN設定しないこと! 両方設定するとAuth conflictエラーが出る。 :::

ANTHROPIC_BASE_URL=http://localhost:8082 \
ANTHROPIC_API_KEY=dummy \
claude

シェル設定に追加(推奨)

alias claude-local='ANTHROPIC_BASE_URL=http://localhost:8082 ANTHROPIC_API_KEY=dummy claude'

パフォーマンス

項目
プロンプト処理 ~1900 tokens/s
生成速度 ~6 tokens/s
メモリ使用量 ~84GB / 119GB
KVキャッシュ 26GB32Kコンテキスト

動作確認済み機能

  • チャット応答
  • ストリーミング
  • Tool CallingBash実行、ファイル操作
  • 日本語対応

トラブルシューティング

Tool Callingで止まる

原因: --tool-call-parser の設定が間違っている

# ❌ 間違い
--tool-call-parser hermes

# ✅ 正解
--tool-call-parser qwen3_xml

Auth conflict エラー

Auth conflict: Both a token (ANTHROPIC_AUTH_TOKEN) and an API key (ANTHROPIC_API_KEY) are set.

対処:

unset ANTHROPIC_AUTH_TOKEN

文字化け

LANG=en_US.UTF-8 claude

vLLMが404を返す

vLLMはAnthropic API未実装のため、claude-code-proxyを使う。

まとめ

DGX SparkでClaude Codeをローカルモデルで動かすポイント

  1. vLLM + Qwen3-Coder-Next-FP8を起動
  2. --tool-call-parser qwen3_xml を使う(重要!)
  3. claude-code-proxyでAPI変換
  4. ANTHROPIC_AUTH_TOKENは設定しない

これでプライベートなコーディング環境の完成!🎉

参考リンク


この記事は2026年2月時点の情報です。