4ヶ月前のOpenHands実験から時間も経ったので、コーティングエージェントで使えるローカルLLMでそれなりに使えるものがないかなと探してみたところ、 今日の時点ではQwen3.6-27Bが良いらしいということわかったので、試してみました。
利用するのは- llama.cpp
- Claude Code
llama.cppの準備
https://github.com/ggml-org/llama.cpp からコードを取得します。今回は rev. f71af352a52b8efe824c7a698d0632afa4794c01 を使いました。cloneしたときの最新版です。 今回は https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md を読んで、GPU対応のllama.cppをビルドしました。 ビルド環境にCUDA関連のツールが必要なので、NVidiaの「CUDA Toolkit 13.3 Downloads」ページから「deb (network)」を選んで、記載されている方法でインストールしました。 OpenBLASもUbuntu24.04の標準パッケージをインストールした上で、以下のコマンドでビルドしました。
cmake -B build -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS -DGGML_CUDA=ON -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc -DCMAKE_CUDA_ARCHITECTURES="120" -DCUDAToolkit_ROOT=usr/local/cuda cmake --build build --config Release -j 8その後、実行すればLLMの準備は完了です。
export LLAMA_CACHE="model-cache/unsloth/Qwen3.6-27B-MTP-GGUF"
build/bin/llama-server \
-hf unsloth/Qwen3.6-27B-MTP-GGUF:UD-Q2_K_XL \
-ngl 99 --fit on -c 65536 -fa on -np 1 \
--spec-type draft-mtp --spec-draft-n-max 2 \
--host 0.0.0.0 \
--cache-type-k q4_0 \
--cache-type-v q4_0
GPUのメモリは16GBあるのですが、Q2にして、かつ、cache-typeをq4_0にしないと、コンテキスト長を65536まで伸ばせませんでした。131072だとメモリ不足で落ちます。
98304でもギリギリ動くようです。
Claude Codeの準備
Claude CodeはDockerコンテナ内で動かします。
FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
curl \
ca-certificates \
gnupg \
nodejs \
npm \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /workspace
RUN npm install -g @anthropic-ai/claude-code
ビルドは
docker build -f Dockerfile -t claude-code .で行い、起動は
touch .bash_history # 不要かも? docker run -it --rm \ --name claude-code \ -v "$(pwd)/workspace:/workspace" \ -v "$(pwd)/.claude-home:/root/.claude" \ -v "$(pwd)/.bash_history:/root/.bash_history" \ -e ANTHROPIC_API_KEY=llamacpp \ -e ANTHROPIC_AUTH_TOKEN=llamacpp \ -e ANTHROPIC_BASE_URL=http://xxx.xxx.xxx.xxx:8080 \ -e ANTHROPIC_MODEL=qwen3.6-27b \ -w /workspace \ --gpus all \ claude-codeで行います。ANTHROPIC_BASE_URLの部分は実行環境のホストのIPアドレスを指定します。たぶん 127.0.0.1では動きません。 Dockerコンテナ内に入るので、そこで、claudeとタイプすればあとは普通に使えます。 ただし、Claude CodeがWebサーチできないので、なにか設定が抜けているかもしれません。 実験したときのClaude Codeはv2.1.168でした。
使ってみると?
思ってたより普通に動きます。難しいことはできないかもしれませんが、
- マンデルブロ集合を計算してASCIIで描画する。C++で書いて、cmakeでビルド環境まで作成
- Pytorchを使ってMNISTのモデルを作って学習し、評価する。Pytorchの環境だけは通常のpip installでは適切なバージョンをインストールできなかったので、手動で作成