From b9fceb0517662cba9a43429ca24d379b07582d14 Mon Sep 17 00:00:00 2001 From: koide Date: Thu, 19 Feb 2026 13:25:41 +0000 Subject: [PATCH] =?UTF-8?q?Update:=20Claude=20Code=E8=A8=98=E4=BA=8B?= =?UTF-8?q?=E3=82=92note=E5=90=91=E3=81=91=E3=81=AB=E3=83=AA=E3=83=A9?= =?UTF-8?q?=E3=82=A4=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dgx-spark-claude-code-local/index.md | 227 ++++++++++++------ 1 file changed, 155 insertions(+), 72 deletions(-) diff --git a/docs-tech/dgx-spark-claude-code-local/index.md b/docs-tech/dgx-spark-claude-code-local/index.md index 702e19f..75fd7b8 100644 --- a/docs-tech/dgx-spark-claude-code-local/index.md +++ b/docs-tech/dgx-spark-claude-code-local/index.md @@ -1,58 +1,124 @@ --- sidebar_position: 4 title: DGX SparkでClaude Code + Qwen3-Coder-Nextをローカル実行する -description: DGX Spark上でQwen3-Coder-Next-FP8をvLLM経由でClaude Codeのバックエンドとして使う方法(200Kコンテキスト対応) +description: Claude Codeを完全ローカル化!Qwen3-Coder-Next(80B MoE)で動かす方法を解説 hide_table_of_contents: false displayed_sidebar: null --- -# DGX SparkでClaude Code + Qwen3-Coder-Nextをローカル実行する +# DGX SparkでClaude Codeを完全ローカル化!Qwen3-Coder-Nextで動かしてみた -## 概要 +## はじめに -Claude Codeをローカルで動かすメリット: +**Claude Code**、使ってますか? -- **プライバシー**: コードがクラウドに送信されない -- **コスト**: API料金不要 -- **速度**: ネットワーク遅延なし +Anthropic公式のターミナルベースAIコーディングアシスタント。ファイルを読んで、コードを書いて、コマンドを実行して...まるで優秀なペアプログラマーがそばにいるような体験ができます。 -この記事では、DGX Spark上でQwen3-Coder-Next-FP8を使ってClaude Codeを動かす方法を解説する。 +ただ、1つ気になることが。 -## ワンライナーセットアップ +**「自分のコード、全部クラウドに送ってるんだよな...」** + +企業の機密コードや、個人的なプロジェクトを扱うとき、ちょっと気になりませんか? + +そこで今回は、**Claude Codeを完全ローカルで動かす**方法を紹介します。 + +## 何ができるようになるの? + +- ✅ **プライバシー保護** - コードがクラウドに送られない +- ✅ **API料金ゼロ** - 月額課金から解放 +- ✅ **200Kトークン対応** - 大規模なコードベースも一度に読める +- ✅ **オフライン動作** - ネット環境がなくてもOK + +## 必要なもの + +今回使うのは **NVIDIA DGX Spark**。 + +:::note +同じ手順は他のNVIDIA GPU搭載マシンでも応用できます(VRAMは多めに必要)。 +::: + +### DGX Sparkとは? + +NVIDIAの「デスクトップAIワークステーション」です。 + +| スペック | 値 | +|---------|-----| +| GPU | NVIDIA GB10(Blackwell世代) | +| メモリ | **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(推論時アクティブ) | +| アーキテクチャ | MoE(Mixture of Experts) | +| 最大コンテキスト | 1Mトークン | +| 特徴 | コーディング特化 | + +**MoE(Mixture of Experts)** がポイント。80Bパラメータでも、推論時は3Bしか使わないので高速です。 + +FP8量子化版を使うことで、メモリ使用量は約45GB。DGX Sparkの128GBなら余裕です。 + +## ワンライナーで全自動セットアップ ```bash curl -sL https://docs.techswan.online/scripts/dgx-spark-claude-code.sh | bash ``` -:::tip -初回はモデルロードに約10分かかる。スクリプトは完了まで待機する。 -::: +これだけ!約10分待つと環境が整います。 -## 構成 +以下は手動でやりたい人向けの解説です。 -``` -┌─────────────────────────────────────────────────────┐ -│ DGX Spark │ -│ │ -│ ┌─────────────┐ ┌──────────────────┐ │ -│ │ Claude Code │───▶│ claude-code-proxy│ │ -│ └─────────────┘ │ (port 8082) │ │ -│ └────────┬─────────┘ │ -│ │ │ -│ ▼ │ -│ ┌──────────────────┐ │ -│ │ vLLM Server │ │ -│ │ (port 8000) │ │ -│ │ Qwen3-Coder-Next │ │ -│ └──────────────────┘ │ -└─────────────────────────────────────────────────────┘ -``` +--- ## 手動セットアップ -### Step 1: vLLMでQwen3-Coder-Next-FP8を起動 +### Step 1: vLLMでモデルを起動 -```bash title="vLLM起動(200Kコンテキスト)" +```bash title="vLLM起動コマンド" docker run -d --name qwen3-coder-next-fp8 \ --gpus all \ -p 8000:8000 \ @@ -69,28 +135,31 @@ docker run -d --name qwen3-coder-next-fp8 \ --trust-remote-code ``` -### 重要なパラメータ +#### 重要なポイント -| パラメータ | 値 | 説明 | +| オプション | 値 | 説明 | |-----------|-----|------| -| `--max-model-len` | `200000` | 200Kコンテキスト | -| `--max-num-seqs` | `8` | 同時リクエスト数(メモリ節約) | -| `--tool-call-parser` | `qwen3_xml` | **Qwen3専用パーサー** | +| `--max-model-len` | 200000 | 200Kトークンまで対応 | +| `--max-num-seqs` | 8 | 同時リクエスト数(メモリ節約) | +| `--tool-call-parser` | **qwen3_xml** | ⚠️ これ超重要! | :::danger tool-call-parserに注意 -`--tool-call-parser hermes` ではなく **`qwen3_xml`** を使うこと! -hermesだとTool Callingのフォーマットが崩れてClaude Codeが止まる。 +`--tool-call-parser` を間違えると、Claude Codeのファイル操作やコマンド実行が動きません。**必ず `qwen3_xml`** を指定してください。 ::: -### Step 2: claude-code-proxyをセットアップ +初回起動は約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 -``` -```bash title=".env作成" +# 依存関係インストール +pip install -r requirements.txt --user + +# 設定ファイル作成 cat > .env << 'EOF' OPENAI_BASE_URL=http://localhost:8000/v1 OPENAI_API_KEY=dummy @@ -100,9 +169,8 @@ SMALL_MODEL=qwen3-coder-next REQUEST_TIMEOUT=300 MAX_TOKENS_LIMIT=8192 EOF -``` -```bash +# 起動 python start_proxy.py ``` @@ -114,59 +182,74 @@ ANTHROPIC_API_KEY=dummy \ claude ``` -:::tip ANTHROPIC_AUTH_TOKEN -`ANTHROPIC_AUTH_TOKEN` は**設定しない**こと!両方設定するとAuth conflictエラーが出る。 +:::warning ANTHROPIC_AUTH_TOKEN +`ANTHROPIC_AUTH_TOKEN` は設定しないでください。両方設定するとエラーになります。 ::: -### シェル設定に追加(推奨) +### 便利なエイリアス設定 -```bash title="~/.bashrc" +```bash title="~/.bashrc に追加" alias claude-local='ANTHROPIC_BASE_URL=http://localhost:8082 ANTHROPIC_API_KEY=dummy claude' ``` +これで `claude-local` と打つだけでOK! + ## パフォーマンス | 項目 | 値 | |------|-----| -| プロンプト処理 | ~2300 tokens/s | -| 生成速度 | ~20-30 tokens/s | -| メモリ使用量 | ~84GB / 119GB | -| 最大コンテキスト | **200K tokens** | -| 同時リクエスト | 8 | +| プロンプト処理 | ~2300 tokens/秒 | +| 生成速度 | ~20-30 tokens/秒 | +| 最大コンテキスト | 200K tokens | +| メモリ使用量 | 約84GB | -## トラブルシューティング +Anthropic APIに比べると生成速度は遅めですが、ローカルで完結する安心感は大きいです。 -### Tool Callingで止まる +## ハマったポイント -```bash -# ❌ 間違い ---tool-call-parser hermes +### 1. Tool Callingで止まる -# ✅ 正解 ---tool-call-parser qwen3_xml +最初、ファイル操作しようとすると固まりました。 + +**原因**: `--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. ``` -### Auth conflict エラー +**解決**: `ANTHROPIC_AUTH_TOKEN` を設定しない(または `unset ANTHROPIC_AUTH_TOKEN`) -```bash -unset ANTHROPIC_AUTH_TOKEN -``` +### 3. max_tokensエラー -### max_tokens エラー +入力が長すぎると、出力用のトークン枠がなくなってエラーに。 -入力が長すぎて出力枠がない場合、プロキシの `MAX_TOKENS_LIMIT` を下げる。 +**解決**: vLLMの `--max-model-len` を増やす(今回は200Kに設定) ## まとめ -1. **vLLM** + **Qwen3-Coder-Next-FP8**を起動(200K対応) -2. **`--tool-call-parser qwen3_xml`** を使う -3. **claude-code-proxy**でAPI変換 -4. **`ANTHROPIC_AUTH_TOKEN`は設定しない** +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 Claude Code統合](https://docs.vllm.ai/en/latest/serving/integrations/claude_code/) +- [vLLM公式ドキュメント](https://docs.vllm.ai/) - [claude-code-proxy](https://github.com/fuergaosi233/claude-code-proxy) +- [Qwen3-Coder-Next-FP8(Hugging Face)](https://huggingface.co/Qwen/Qwen3-Coder-Next-FP8) +- [DGX Spark Playbooks](https://build.nvidia.com/spark/) ---