1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows 11でClaude Code + Ollama + Qwen 3.5をローカル実行する

1
Last updated at Posted at 2026-08-14

はじめに

Claude Codeを普段の開発だけでなく、インターネットへ接続できない環境やアクセスが制限された特定の地域からでも利用したいと考え、Windows 11環境上に

  • Claude Code
  • Ollama
  • Qwen 3.5

を構築し、ローカルLLMをClaude Codeのバックエンドとして利用できるか検証しました。

結論から話しますと、自分のローカルPC環境である Windows 11 + Radeon 680Mでも Claude Code + Ollama + Qwen 3.5は動作しましたが、自分の環境では Vulkan による100% GPU offload後もCPU推論より高速という結果にはなりませんでした。

今回の構成は以下の通りです。

AI_0008.png

構築そのものは比較的簡単だったものの、実際に試してみると以下の問題に遭遇しました。

  1. Claude Code CLIのインストールでエラー
  2. ollama launch claudeでは起動するがAPI Error
  3. Qwen 3.5単体でも非常に遅い
  4. OllamaがRadeon 680Mを使わずCPU推論していた
  5. Radeon 680MをVulkan経由で有効化
  6. 100% GPUにはなったが、必ずしも高速化しなかった

本記事では、単に「動いた」という結果だけではなく、ログを使って原因を切り分けた過程も含めて整理します。

実装環境

実装環境は以下の通りです。

項目 環境
OS Windows 11 Pro 25H2
CPU AMD Ryzen 7 7735HS
GPU AMD Radeon 680M相当の内蔵Radeon Graphics
メモリ 約32 GB
Ollama 0.32.9
Local LLM Qwen 3.5
モデル規模 約9.7B
Quantization Q4_K_M
Context Length 65536
Claude Code PowerShell

Qwen 3.5自体の最大Context Lengthは262144であり、Ollama上ではClaude Code利用を想定して65536に設定しました。

Claude Code CLIをWindowsへインストール

最初はAnthropicのNative InstallerをPowerShellから実行しました。

irm https://claude.ai/install.ps1 | iex

しかし、自分の環境ではPowerShellスクリプトではなくHTMLが返されました。その結果、

<script type="text/javascript">
var ...
||
&&

などのJavaScriptをPowerShellが解釈しようとしてParserErrorが発生しました。そこでWinGetに変更して、

winget install --id Anthropic.ClaudeCode -e

インストール後にPowerShellを開き直し、

claude --version

2.1.229 (Claude Code)

でClaude Code CLIが利用できることを確認しました。通常のClaude Codeはそのまま以下のコマンドを叩いて起動します。

claude

AI_0001.png

起動すると、Security guide を聞かれるので、1. を選択します。

AI_0002.png

Claude Codeが無事に起動されました。ここまではオンライン版のClaude Codeを単にPowerShellから利用している状態になります。

OllamaとQwen 3.5を導入

Ollamaをインストール後、

ollama pull qwen3.5

を実行します。モデルを確認すると、

architecture        qwen35
parameters          9.7B
context length      262144
quantization        Q4_K_M

となっていました。Capabilitiesには

completion
vision
tools
thinking

も含まれており、Claude Codeで重要となるTool Callingにも対応しています。Context LengthについてはOllamaの設定から64kへ変更しました。

AI_0003.png

Ollama単体の動作確認

まずClaude Codeを介さず、

ollama run qwen3.5

を実行します。試しに

1+1はいくつですか?

と質問したところ、最終的には

1+1 は 2 です。

と正常に回答されました。

AI_0007.png

上記の結果から、

Ollama -> Qwen 3.5

自体は正常に動作していることを確認できましたが、回答までに約1~2分かかりました。この時点で、モデル自体は正常に動作していますが推論の性能に問題があることが分かりました。

Anthropic互換APIを確認

Claude CodeとOllamaはAnthropic Messages API互換インターフェースを介して接続します。そこで、Claude Codeを使わず直接

http://localhost:11434/v1/messages

へリクエストを送信しました。PowerShellでは以下のように確認しました。

$body = @{
    model = "qwen3.5"
    max_tokens = 256
    messages = @(
        @{
            role = "user"
            content = "Hello. Reply only with OK."
        }
    )
} | ConvertTo-Json -Depth 10

続けて、

Invoke-RestMethod `
    -Uri "http://localhost:11434/v1/messages" `
    -Method Post `
    -ContentType "application/json" `
    -Headers @{
        "x-api-key" = "ollama"
        "anthropic-version" = "2023-06-01"
    } `
    -Body $body

出力結果について、正常に

OK

が返ってきました。したがって、下図のように

AI_0015.png

の接続も正常であることが分かります。

Claude CodeをQwen 3.5で起動

ローカルLLMを利用する場合は

$env:CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC="1"
ollama launch claude --model qwen3.5

を実行します。

AI_0004.png

画像にもありますように、

claude.ai connectors are disabled because ANTHROPIC_API_KEY or another auth source is set and ...

というメッセージが表示されました。

最初は何かのエラーかと思いましたが、Ollamaを利用する場合はClaude Codeの認証先が通常のclaude.aiではなくOllama側へ切り替わるため、今回のローカルLLMの利用では致命的な問題ではないことを確認しました。

なので、通常のClaude Code利用とローカル環境でのClaude Code利用は、

オンライン環境:
    claude

ローカル環境:
    ollama launch claude --model qwen3.5

と分けて利用すればよいです。

Claude CodeでAPI Errorが発生

次に、さっそくClaude Code上で、

1+1はいくつですか?

と質問すると、しばらく待った後に API Error

AI_0005.png

となりました。。。そこでOllamaのログを調査することにしました。以下のコマンドをまず叩きます。

Get-Content "$env:LOCALAPPDATA\Ollama\server.log" -Tail 100

すると、ログからClaude CodeからQwen 3.5へ送信されていた入力は、

task.n_tokens = 33058

でした。つまり、ユーザーが入力した文章は1行だけでも、Claude Code内部では

AI_0014.png

がまとめてモデルへ渡されるため、約33000 tokenもの巨大なプロンプトになっていたのです。

実はGPUが使われていなかった!

そこで以下のコマンドを叩きました。

ollama ps

最初の状態は、

NAME              PROCESSOR    CONTEXT
qwen3.5:latest    100% CPU     65536

でした。PROCESSOR 列をよくよく見ると、Qwen 3.5を完全にCPUだけで動かしていました。実測の生成速度はおよそ

5.3 token/sec

程度であり、一方Claude Codeからは約33000 tokenのPromptが送られました。そのため、下図のように

AI_0009.png

という状態になっていたと考えられます。

Radeon 680MはOllamaから認識されていた

ローカル環境で使われているGPUについて調べるために以下のコマンドを叩きました。

Get-CimInstance Win32_VideoController | Select-Object Name, AdapterRAM, PNPDeviceID, DriverVersion

出力結果から

AMD Radeon(TM) Graphics

が確認できました。さらにOllamaのログを見ますと、

AMD driver is too old.
Update your AMD driver to enable GPU inference.

という警告とともに、

dropping integrated GPU;
to enable, set OLLAMA_IGPU_ENABLE=1

というログが見つかりました。つまり、このことから 「OllamaがGPUを認識できない」のではなく、

Radeon iGPUを認識 -> integrated GPUなのでデフォルトでは除外

という状態だったことが分かりました。

Radeon 680MをVulkan経由で有効化

Vulkanは、GPUのグラフィックス処理や汎用計算機能を利用するための低レベルAPIです。Ollamaでは、WindowsおよびLinux環境でVulkanを介したGPUアクセラレーションを利用できます。

今回使用するRadeon 680Mについては、OllamaからVulkan Compute Deviceとして利用できる可能性があるため、Vulkan backendを有効化してGPU推論を試しました。

そこでOllamaを一度終了し、新しいPowerShellから以下を設定しました。

$env:OLLAMA_IGPU_ENABLE="1"
$env:OLLAMA_VULKAN="1"
$env:OLLAMA_DEBUG="INFO"
$env:OLLAMA_CONTEXT_LENGTH="65536"

その後、以下のコマンドを実行しました。

ollama serve

この状態ではOllamaのログに

library=Vulkan
description="AMD Radeon(TM) Graphics"
type=iGPU
total="16.4 GiB"
available="15.6 GiB"

と表示されました。つまりRadeon 680MをVulkan Compute Deviceとして利用できています。

Qwen 3.5を完全にGPUへoffloadできた!

さらにログを確認すると、

offloading output layer to GPU
offloading 32 repeating layers to GPU
offloaded 34/34 layers to GPU

となりました。つまりQwen 3.5について、モデルレイヤーはすべてRadeon側へoffloadされました。メモリ使用量も、

Model Buffer     約4.7 GiB
KV Cache         約2.0 GiB
Compute Buffer   約640 MiB

となっています。64k Contextについても、

n_ctx = 65536

として確保されています。実行中に別のPowerShellから ollama ps を確認したところ、

NAME              SIZE      PROCESSOR    CONTEXT
qwen3.5:latest    8.1 GB    100% GPU     65536

となっていました。これでGPU利用そのものには成功しました。

GPUを使えば速くなる!…とは限らなかった

ここが今回最も意外だった結果でした。CPU推論時の生成速度はおよそ

5.3 token/sec

でした。一方Radeon 680MをVulkan経由で100% GPU利用した状態では、

prompt eval : 約4.44 token/sec
generation  : 約4.14 token/sec

という計測結果でした。「1+1はいくつですか?」という非常に単純な質問にもかかわらず、

495 generated tokens
total time = 約123.6秒

でした。比較結果は以下の通りです。

実行方式 Generation速度
CPU 約5.3 token/sec
Radeon 680M / Vulkan 約4.14 token/sec

今回の環境ではGPU化によって高速化するどころか、逆に生成速度が低下しました。つまり、GPUで実行しているからと言ってCPUより高速であることは言えません。

考察

GPUを使えば早くなると考えていた

ローカル環境のGPUの仕様を調べると、Radeon 680MはディスクリートGPUではなく、CPUとメインメモリを共有するiGPUでした。そのため、

AI_0010.png

という構成になっています。また、NVIDIAの高性能GPUのように、

AI_0011.png

を持つ構成とは異なります。LLM推論では単純な演算性能だけでなく、

  • メモリ帯域
  • モデルデータ転送
  • KV Cacheアクセス
  • Backend実装
  • Kernel最適化
  • Driver
  • Quantization

などが大きく影響すると考えられます。また、Ollamaのログには依然として

AMD driver is too old.

という警告も残っています。そのため今回の結果だけから、Radeon 680Mは常にCPUより遅いように思われます。

AI_0012.png

少なくとも上図のような組み合わせでは、GPU化による速度化の改善は確認できませんでした。

Thinkingのコストも大きい

Qwen 3.5はThinking対応モデル「1+1はいくつですか?」という質問でも、答えは 2 だけですが、内部では数百トークン規模の推論が生成されていました。GPUテストでは最終的に495 トークンを生成しています。したがって、

1+1

の回答に2分かかったからといって、

2という文字を生成するのに2分必要

という意味ではないです。Thinkingを含めて大量のtokenを生成していることも、体感速度を大幅に低下させていることの一つの要因だと考えられます。

Claude Codeの--bare オプションを使う

ローカルLLMの場合は、Claude Codeの初期コンテキストをできるだけ減らす方がよいと考えました。そこで、

ollama launch claude --model qwen3.5 -- --bare

を利用することにします。この --bare オプションはClaude Codeの各種追加機能を抑えて、ファイル操作やShellなど最低限の機能を中心に利用できます。実行結果は以下の通りです。

AI_0006.png

まとめ

今回の検証で分かったことは、Claude Code + Ollama自体は動作可能であることです。Anthropic互換APIを利用して、

Claude Code -> Ollama -> Qwen 3.5

という構成はWindows 11でも構築できました。また、Radeon 680MでQwen 3.5 9Bを利用すると、

Model
約5 GB

KV Cache
約2 GB

その他Compute Buffer
約1 GB前後

を必要とします。そこで、

ollama pull qwen3.5:4b

として4Bモデルも候補になります。

Claude Codeでは単純なチャットよりTool Calling能力が重要なので、小さくしすぎるとAgent性能が低下する可能性があります。

今回の検証を踏まえ、次は以下を比較したいと思います。

条件 比較内容
Qwen 3.5 9B / CPU ここを基準にする
Qwen 3.5 9B / Radeon 680M 今回の計測結果
Qwen 3.5 4B / CPU 今後測定
Qwen 3.5 4B / Radeon 680M 今後測定
Thinking ON/OFF 速度差
Claude Code通常モード コンテキストのサイズ
Claude Code --bare コンテキストの削減効果
Context 64k 現在
Context縮小 Claude Codeで実用可能か

また特に、下図のようなコンポーネント

AI_0013.png

を揃えて測定すると、Radeon 680MクラスのノートPCでClaude Codeをローカル実行する際の一つの目安になると考えています。

参考文献

本記事の検証および技術仕様の確認にあたり、以下の公式ドキュメントを参照しました。

Claude Code

  1. Anthropic, Claude Code - Advanced setup
    Windowsネイティブ環境の対応状況、Native Installer、WinGetによるインストール方法などを参照
    https://code.claude.com/docs/en/installation
  2. Anthropic, Claude Code - Quickstart
    Windows PowerShellでのインストール方法、およびClaude Codeの基本的な起動方法を参照
    https://code.claude.com/docs/en/quickstart
  3. Anthropic, Claude Code - Troubleshoot installation and login
    Native Installer実行時にHTMLが返される場合の原因と、WinGetを利用する代替手段について参照
    https://code.claude.com/docs/en/troubleshoot-install

Ollama / Claude Code連携

  1. Ollama, Claude Code - Ollama Documentation
    ollama launch claude--modelによるモデル指定、Qwen 3.5の利用、およびClaude Codeでは64k tokens以上のContext Lengthが推奨されることを参照
    https://docs.ollama.com/integrations/claude-code
  2. Ollama, Anthropic compatibility
    Ollamaが提供するAnthropic Messages API互換インターフェース、および /v1/messages エンドポイントの仕様を参照
    https://docs.ollama.com/api/anthropic-compatibility
  3. Ollama, Context length
    Claude CodeなどのAgent / Coding Toolで利用するContext Lengthの設定方法を参照
    https://docs.ollama.com/context-length

GPU / Vulkan

  1. Ollama, Hardware support
    OllamaにおけるGPUアクセラレーション、およびExperimental機能として提供されているVulkan backendの仕様を参照
    https://docs.ollama.com/gpu
  2. Ollama GitHub Repository
    integrated GPUの扱いや OLLAMA_IGPU_ENABLE に関する実装を確認する際に参照
    https://github.com/ollama/ollama

Qwen 3.5

  1. Ollama, Qwen 3.5 Model Library
    Qwen 3.5のモデルサイズ、パラメータ数、Quantization、Context Length、Tool CallingおよびThinking対応状況を参照
    https://ollama.com/library/qwen3.5

AMD Radeon 680M / ROCm

  1. AMD, AMD Ryzen 7 7735HS
    Ryzen 7 7735HSに搭載されるAMD Radeon 680Mのハードウェア仕様を参照
    https://www.amd.com/ja/products/processors/laptop/ryzen/7000-series/amd-ryzen-7-7735hs.html
  2. AMD ROCm Documentation, System requirements for Windows
    Windows環境におけるROCm / HIP SDKの正式対応GPUを確認する際に参照
    https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/shared/hipsdk/reference/system-requirements.html
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?