1
2

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(Qwen3)とVS Codeを連携してみた

Posted at

ローカルLLMでコーディング支援は出来るのか

GitHub Copilot, Cursor, Cline, Windsurfなどコーディング支援系AIサービスが多く登場しておりますが、セキュリティやコストの観点から業務への導入にはハードルを感じているプロジェクトもいまだ多くあるかと思われます。

ローカルLLMによるコーディング支援が可能になると、以下のメリットがあります。

  • 外部に情報を送信せずにローカルマシンで完結できる
  • インターネット接続不要
  • サブスクリプション費用不要
  • 必要に応じて、モデルの選択やカスタマイズができる

そこで、今回は最新モデルを使用したローカルLLMとVS Codeを連携し、どれだけ使えるかを実験してみます。

PCスペック

  • OS: Windows 11 64ビット (24H2, OS ビルド 26100.3915)
  • メモリ 16GB
  • 専用GPUなし

Ollama(オラマ)のインストール

OllamaはローカルでLLMを利用するためのオープンソースアプリケーションです。
image.png
上記リンクからOllamaのインストールができます。

Qwen3モデルのダウンロード

↑利用可能なモデル一覧が確認できます。
今回はアリババが2025/4/29に公開した最新モデルのQwen3をダウンロードしてみます。
モデルのパラメータ数が選択できますが、今回は4bのモデルで実験してみます。

下記コマンドにより、モデルがダウンロードされ、ダウンロード完了次第モデルが実行可能な状態になります。

ollama run qwen3:4b

http://localhost:11434/をブラウザから開くことで、Ollamaが起動しているかを確認できます。

コマンドラインからQwen3と対話してみる

デフォルトで Thinking Mode(推論モード) になっているため、前置きが長く、出力に時間がかかります。

>>> こんにちは
<think>
Okay, the user said "こんにちは" which is Japanese for "Hello". I need to respond in a friendly and welcoming manner. Since they might be a non-native speaker, I should keep the response simple and
positive. Maybe start with a greeting in Japanese, then a welcome message in English. I should also offer assistance and ask how I can help them today. Keep it conversational and open-ended to encourage
further interaction.
</think>

こんにちは!😊
ようこそ、ここに来てくれて本当にうれしいです。
どんなことをお手伝いできますか?
何か質問があれば、いつでもお気軽におねがいください!

30秒程度で返答されました。プロンプトの後ろに/nothinkまたは/no_thinkをつけることで、推論を行わないNon-Thinking Modeで出力されます。

>>> こんにちは /nothink
<think>

</think>

こんにちは!どうぞよろしくお願いします。何かお手伝いできますか?

こちらは5秒程度で出力されました。

今回コード補完やチャットに使用する際は推論を行わないNon-Thinking Modeで設定していきます。

VS Codeとの連携

  1. 拡張機能のContinueを入れる
    https://www.continue.dev/
  2. .continue\config.jsonに以下を記述する
{
  "models": [
    {
      "title": "qwen3:4b",
      "provider": "ollama",
      "model": "qwen3:4b",
      "systemMessage": "/nothink",
      "apiBase": "http://localhost:11434"
    }
  ],
  "tabAutocompleteModel": {
    "title": "qwen3:4b",
    "provider": "ollama",
    "model": "qwen3:4b",
    "systemMessage": "/nothink",
    "apiBase": "http://localhost:11434"
  }
}

上記でVS Code側の設定は完了です。

ゼロからゲームを作らせてみる

今回はじゃんけんゲームを作成してもらいました。
image.png
2分ほどで動作するコードを出力してくれました。
image.png
(実際にん手みたいな些細なミスあり)

既存のコードについて質問してみる

上記のじゃんけんゲームについて部分的に質問してみました。Continueではコードを範囲選択し、ctrl+Lでチャットにコードを追加できます。
image.png
1分半ほどで処理の説明を出してくれました。

既存のコードを修正してもらう

上記のじゃんけんゲームについて部分的に修正をしてみました。Continueではコードを範囲選択し、ctrl+Iでチャットにコードを追加し、編集を依頼できます。
image.png
要求に対して2分ほどでコードを修正してくれました。
image.png
ちゃんと動作もします

タブ補完をさせてみる

設定やPCスペックの問題かもしれませんが、コード補完の提案までにコーディングの手を1~2分止める必要があり、あまり実用的ではなさそうです。

使い物になるかどうか

ユースケース 評価 使用感
チャットによる対話 問題なく使用できる、少し出力が遅い(軽い要求なら1~2分)、物量の多いコードは同時に読み込ませられない
エディットモードによるコード修正 問題なく使用できる、少し出力が遅い(軽い要求なら1~2分)、コード範囲が広いと時間がかかる(100行のコードの修正に10 分かかった)
コードのタブ補完 1~2分コーディングの手を止めないとコードの提案がされない、提案の精度も少し微妙
エージェントモード (現状ローカルLLMでは使用できない) -

メモリを食うのがデメリット

4bのモデルだと、使用中はつねに3~4GBほどのメモリを占領するので、メモリに余裕がないPCだと動作が難しいです。

(追加実験)Qwen3:14bモデルでも同様の実験をしてみましたが。。

上記スペックのPCで動作するおそらく限界である14bのモデルでも実験してみました。
(噂では、14bのモデルでGPT-4oに匹敵する性能を持っているとのこと。)
14bのモデルは、メモリを10GB程度空けないと動作しませんでした。また、コードのエディットに30分程度要したり、PCのスペック不足のためかとても実用的な動作はしませんでした。

まとめ

GitHub CopilotやCursorで利用できる上位モデルを使用する場合と比較すると、まだまだ使い勝手が不十分なところもあります。

しかしながら、軽量な要求に限定すれば、ローカルLLMによるコーディングアシスタントは十分使い物になりました。
セキュリティやコストの観点から生成AIの利用が制限されるプロジェクトで、ローカルLLMを導入するのは大いに可能性を感じました。
さらにメモリやGPUを積んであるPCであれば、もっと大きいモデルをサクサク利用できるので、高スペックのPCや自前のサーバーで大きいLLMモデルをホストするのもありかもしれません。

1
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?