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?

ローカル LLM バイブコーディング:Gemma4/Qwen3.6 + Zed

1
Posted at

概要

ローカル環境で LLM を立ち上げ、コードエディタ Zed と連携させた際の記録。

以前の記事 大規模言語モデル Llama 4 を AlmaLinux 8.10 にインストール では、AlmaLinux 8.10 上で llama.cpp を用いてローカル LLM を動かす方法をまとめた。

今回はその続編として、Qwen3.6 27B Q8_0 GGUF および Gemma4 31B Q8 GGUF をローカル環境で動かした。また、コードエディタ Zed とローカル LLM を連携させて使用する方法についても記載した。

AI エージェントなどと組み合わせて計算化学用途に使う場合、今回試した範囲では Qwen3.6 よりも Gemma4 の方が適している印象。特に Gaussian16 の入力ファイル作成や計算化学に関する基本的な知識については、Gemma4 の方が安定している。

一方で、コーディング用途については、どちらのモデルがより適しているかはまだ検討中。

<注意>様々なモデルを試しながら記事を書いたため、モデルのバージョンの不整合がある。モデルパラメータ数や量子化が異なっている。

検証環境

OS: AlmaLinux 8.10
CPU: Ryzen Threadripper 3990X 64-Core
RAM: 128 GB
GPU: RTX A6000 + RTX 5000 Ada
VRAM: 合計 約 80 GB

Zed は MacBook Pro (macOS Tahoe 26.2) で使用

設定方法

以前の記事で設定した llama.cpp はバージョンが古かったため、まず llama.cpp をアップグレードした。

その際、古い GCC ではビルド時にエラーが出たため、GCC 12 に切り替えてから llama.cpp を再ビルドした。

Gemma4 のインストールと起動

Hugging Face で gemma4 gguf などのキーワードで検索する。

gemma4_検索.jpg

自分の持っている VRAM サイズに収まる最適なモデルを選択する。

gemma4_models.jpg

モデルをダウンロードする。

gemma4_download.jpg

ダウンロードボタンを右クリックし、クリーンリンクをコピーする。
一番最後の ?download=true という文字列を削除し、以下のコマンドでダウンロードする。

cd /home/models
wget https://huggingface.co/unsloth/gemma-4-31B-it-GGUF/resolve/main/gemma-4-31B-it-UD-Q8_K_XL.gguf

以下のコマンドで Gemma4 を起動し、localhost:8888 に Webブラウザでアクセスする。

llama-server   -m /home/models/gemma-4-31B-it-UD-Q8_K_XL.gguf  --host 127.0.0.1  --port 8888  --n-gpu-layers 99  --ctx-size 32768  --reasoning-budget 16384  --chat-template-kwargs '{"enable_thinking": false}' --jinja

reasoning-budget オプションを設定しないと、延々と思考し続けてしまう。例えば、「このモデルには何年何月までの情報が入っていますか?」という質問への回答に 5 分近くかかっていた。

一方で、--reasoning-budget を 512 程度に設定すると回答は早いが回答の質が良くなかった。今回の検証環境では 16384 とした。

以下のような画面が表示される。

local_LLM.jpg

Qwen3.6 のインストールと起動

同様に huggingFace から Qwen のモデルをダウンロードする。

wget https://huggingface.co/gghfez/Qwen3.6-27B-Q8_0-GGUF/resolve/main/qwen3.6-27b-q8_0.gguf

以下のコマンドで Qwen3.6 を起動し、localhost:8888 に Webブラウザでアクセスする。

llama-server   -m /home/models/Qwen3.6-27B-UD-Q8_K_XL.gguf   --host 127.0.0.1   --port 8888   --n-gpu-layers 99   --ctx-size 32768   --reasoning-budget 16384  --chat-template-kwargs '{"enable_thinking": false}' --jinja

雑感

Gaussian16 の input ファイルの作成については、Qwen3.6 は足りない知識が多く、物足りない感じがした。一方で、Gemma4 は必要な知識は有している印象を受けた。しかし、最新版の ChatGPT5.5 には到底及ばない。

有機化学に関する質問に対しては、どちらのモデルもきちんと回答できていたので、考察や計算結果のまとめに使える可能性を感じた。

ちなみに以前の記事でインストールした llama scout 17B は、gemma4 や Qwen3.6 に比べると圧倒的に力不足な印象を受けた。

Zed とローカル LLM の連携

VS Code や Zed などのコードエディタをクラウド型 AI API と連携させると、短時間で大量のトークンを消費して利用上限に達したり、従量課金により使用料金が高額になったりする場合がある。

一方、ローカル LLM を用いる場合は、研究室内のサーバー上でモデルを実行するため、外部 API の利用料金を気にせずに使用できる。また、コードや研究データを外部サービスに送信せずに利用できるため、情報管理の面でも利点がある。

本項目では、ローカル LLM を systemd 経由で起動し、その後 MacBook Pro 上の Zed から API 経由で接続する。

ローカル LLM サーバーの systemd 化

まず、ローカル LLM を起動するサーバー上で、llama-serversystemd サービスとして登録する。

以下では、llama.cpp/root/workspace/llama.cpp/ にインストールされており、モデルファイルが /home/models/ に置かれている場合を例とする。

管理者権限で、vi /etc/systemd/system/llama-server.service でファイルを作成する。

[Unit]
Description=llama.cpp llama-server
After=network-online.target

[Service]
Type=simple
User=root
WorkingDirectory=/root
ExecStart=/root/workspace/llama.cpp/build/bin/llama-server -m /home/models/gemma-4-26B-A4B-it-UD-Q5_K_XL.gguf --host 0.0.0.0 --port 8888 --n-gpu-layers 99 --ctx-size 800000 --reasoning-budget 4 --reasoning off --jinja
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
オプション 意味
-m 使用する GGUF モデルファイルを指定する
--host 0.0.0.0 外部から接続できるように全てのネットワークインターフェースで待ち受ける
--port 8888 API サーバーのポート番号
--n-gpu-layers 99 可能な限り多くの層を GPU に載せる
--ctx-size 32768 コンテキスト長を指定する
--reasoning off reasoning mode を無効にする
--jinja チャットテンプレート処理を有効にする

サービスの起動

設定ファイルを作成したら、以下のコマンドで systemd に設定を反映する。

その後、設定を反映し、ローカル LLM を起動する。

sudo systemctl daemon-reload
sudo systemctl start llama-server.service

以下のコマンドで確認。

sudo systemctl status llama-server.service
curl http://127.0.0.1:8888/v1/models  # API の確認

MacBook Pro から接続するための SSH port forwarding

MacBook Pro 上の Zed から研究室内サーバーの llama-server に接続するには、SSH port forwarding を用いる。

MacBook Pro の ~/.ssh/config を編集する。

Host llama-server
    HostName your-login-server
    User your_user
    LocalForward 8888 127.0.0.1:8888

この場合、MacBook Pro の 127.0.0.1:8888 へのアクセスが、SSH 接続先サーバーの 127.0.0.1:8888 に転送される。

MacBook Pro での Zed の設定

⌘(command) + , で zed の設定画面を開く。
settings.json を以下のように編集する。

// Zed settings
//
// For information on how to configure Zed, see the Zed
// documentation: https://zed.dev/docs/configuring-zed
//
// To see all of Zed's default settings without changing your
// custom settings, run `zed: open default settings` from the
// command palette (cmd-shift-p / ctrl-shift-p)
{
  "proxy": "",
  "project_panel": {
    "dock": "left"
  },
  "outline_panel": {
    "dock": "left"
  },
  "collaboration_panel": {
    "dock": "left"
  },
  "agent": {
    "dock": "right",
    "favorite_models": [],
    "model_parameters": []
  },
  "git_panel": {
    "dock": "left"
  },
  "terminal": {
    "font_size": 18.0,
  },
  "base_keymap": "VSCode",
  "icon_theme": {
    "mode": "dark",
    "light": "Zed (Default)",
    "dark": "Zed (Default)",
  },
  "ui_font_size": 16,
  "buffer_font_size": 18.0,
  "theme": {
    "mode": "dark",
    "light": "One Light",
    "dark": "Ayu Dark",
  },
  "language_models": {
    "openai": {
      "api_url": "http://127.0.0.1:8888/v1",
      "available_models": [
        {
          "name": "gemma-4-26B-A4B-it-UD-Q5_K_XL.gguf",
          "display_name": "Local Gemma 4 26B",
          "max_tokens": 800000,
        },
      ],
    },
  },

  "assistant": {
    "default_model": {
      "provider": "openai",
      "model": "gemma-4-26B-A4B-it-UD-Q5_K_XL.gguf",
    },
  },
}

api_url には、SSH port forwarding 後に MacBook Pro からアクセスできる URL を指定する。ここでは、MacBook Pro の 127.0.0.1:8888 にアクセスすると、研究室内サーバーの llama-server に転送されるように設定している。

Zed 起動時の API key 設定

Zed から OpenAI 互換 API として llama-server に接続する場合、実際には OpenAI API key を使用しない。しかし、Zed 側が API key の存在を要求する場合がある。

そのため、ダミーの API key を環境変数として設定してから Zed を起動する。

OPENAI_API_KEY=dummy zed` 

毎回入力するのが面倒な場合は、~/.zshrc に以下を追記する。

export OPENAI_API_KEY=dummy

Zed Agent Window の表示

Zed で Agent Window を表示するには、以下のショートカットを用いる。

⌘(command) + shift + ?

または、画面左下のアイコンをクリックして表示してもよい。

Agent Window が表示されたら、使用するモデルとして Local Gemma 4 26B が選択できることを確認する。

Zed Agent Window の右下に Local Gemma 4 26B のように表示されていれば、ローカル LLM との連携は成功している。

Zed_AI_window.jpg

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?