概要

最近、ローカルLLMの性能が向上しており、商用のものと比べてもそれほど劣っているわけではないという情報を耳にしました。

もちろん、商用のものと比べれば多少は劣っているとは思いますが、Qwen3.5はGPT5.2と同程度の性能を持つという情報もあります。

今回は、MacでQwen3.5-35b-a3b等をローカルで動かして、Intellij IDEAで実際に使えるようにしてみました。

環境

  • Mac Studio M2 MAX 64GB
    • macOS Tahoe 26.3
  • Ollama 0.17.7
  • LLM
    • Qwen3.5-35b-a3b
    • Qwen3.5-4b-q4_K_M

やりたいこと

MacでローカルLLMを動かす方法はいくつかあります。 今回は、Ollamaを使うことにしました。 他にもMacであれば、MLXというApple公式のものもあるようですが、簡単に導入でき、Windows等でもなるべく使える知識を得たいということで、Ollamaを使うことにします。

利用するモデルは、Qwen3.5-35b-a3bです。 このモデルを選択した理由は、回答の精度がGTP5.2と同程度の性能を持つという情報があったからです。 また、私の利用するMacには64GBのユニファイドメモリを搭載しているため、35b程度であれば32GBのメモリがあれば良いらしく、おそらく動くだろうと判断しています。 モデルのパラメータ数が多いため、すぐの応答は期待できないと考えられます。 そのため、インラインコード補完など、すぐに応答が欲しい時のためにQwen3.5-4b-q4-K_Mも使います。

Ollamaのインストール

OllamaのインストールにはHomebrewを使います。

次のコマンドを実行して、Ollamaをインストールしてください。

brew install ollama

私の場合は、インストールしていたセキュリティ対策ソフトがOllamaをブロックしたため、インストールに失敗しました。 そのため、Ollamaをセキュリティ対策ソフトの信頼リストに追加してから、再度インストールしました。

次はOllamaを起動します。Ollamaを起動しないと、モデルのダウンロードもできないようなので先に起動しておきます。

ollama serve

起動後は、別にターミナルを立ち上げ直して、続きのコマンドを実行していきます。

次はモデルをダウンロードします。

ollama pull qwen3.5:35b-a3b
ollama pull qwen3.5:4b-q4_K_M

これで、ローカルでLLMを使えるようになりました。

テスト実行

エディタでLLMを利用する前に、コマンドからLLMを利用してみます。

ollama run qwen3.5:35b-a3b

実行後、適当なプロンプトを入力すると回答を返してくれます。

>>> 日本で一番高い山はどこですか?
Thinking...
Thinking Process:

1.  **Analyze the Request:**
    *   Question: "日本で一番高い山はどこですか?" (Where is the tallest mountain in Japan?)
    *   Language: Japanese.
    *   Intent: Factual query about Japanese geography.

2.  **Retrieve Knowledge:**
    *   Fact: The highest mountain in Japan is Mount Fuji (富士山).
    *   Elevation: 3,776 meters (above sea level).
    *   Location: Between Shizuoka and Yamanashi prefectures.

3.  **Formulate the Answer:**
    *   Direct answer: 富士山 (Mount Fuji).
    *   Additional details (optional but helpful): Height (3,776m), location (Shizuoka/Yamanashi).
    *   Tone: Polite and informative.

4.  **Drafting the Response (Internal Monologue/Trial):**
    *   *Option 1:* 富士山です。(Too short)
    *   *Option 2:* 日本で一番高い山は富士山です。標高は 3,776 メートルです。(Good)
    *   *Option 3 (Polite):* 日本の最高峰は富士山です。静岡県と山梨県の県境にあります。(Better)

5.  **Final Polish (Japanese):**
    *   "日本で一番高い山は**富士山**(ふじさん)です。"
    *   Add height: "標高は 3,776 メートルです。"
    *   Add location: "静岡県と山梨県の県境に位置しています。"

6.  **Final Output Construction:**
    日本で一番高い山は**富士山**(ふじさん)です。
    標高は 3,776 メートルで、静岡県と山梨県の県境に位置しています。

7.  **Review against constraints:** The user asked a simple question. A concise, accurate answer is best.

8.  **Final Output:** (See actual response)
    日本で一番高い山は**富士山**(ふじさん)です。
    標高は 3,776 メートルで、静岡県と山梨県の県境に位置しています。
    (Keep it simple and direct).

    *Self-Correction during output generation:* Just giving the name is enough, but adding height adds 
value. Let's provide a clear, polite sentence.

    "日本で一番高い山は富士山です。" (Simple)
    "日本の最高峰は富士山で、標高 3,776 メートルです。" (More precise)

    Let's go with the standard informative response.

    **Final Answer:**
    日本で一番高い山は**富士山**(ふじさん)です。
    標高は 3,776 メートルで、静岡県と山梨県の県境に位置しています。

    (Wait, I should check if there are any nuances. No, it's a straightforward fact.)

    Let's write the response.cw
...done thinking.

日本で一番高い山は**富士山**(ふじさん)です。

標高は 3,776 メートルで、静岡県と山梨県の県境に位置しています。

>>> /bye

プロンプトが少し意地悪で、「一番高い山はどこですか」と、高い山は何かを聞くのではなく、場所を聞いています。適切に回答してくれているようです。

終了する場合は/byeと入力します。

IntelliJ IDEAでの設定方法

OllamaでローカルLLMを動かすことができました。 次は、IDEで利用してみます。

設定の手順は次のとおりです。

最初にIntelliJ IDEAを起動します。

起動後、メニューバーの「設定」を選択します。

screenshot1.png

その後、「ツール」>「AI Assistant」>「モデル & APIキー」へ進みます。

設定項目の中に、「サードパーティAIプロバイダー」という項目があるので、次のように設定します。

  • プロバイダー: Ollama
  • URL: http://localhost:11434

screenshot2.png

これで、チャット上でローカルLLMが使えるようになりました。

さらに、コード補完やコミットメッセージの生成等でもローカルLLMを使えるようにします。

「モデルの割り当て」を変更して、qwen3.5:4b-q4_K_Mを使うように設定しました。

qwen3.5:35b-a3bを使うように設定しても良いのですが、コード補完等では高速な応答の方が嬉しいため4bのモデルを利用します。

しかし、今回この設定を行った後にコミットメッセージの生成をやってみたのですが、うまく動作しませんでした。 そのため、コア機能は未選択にしました。

最後に「OK」ボタンを押して設定を保存します。

これで基本的な設定は終わりなのですが、チャットでローカルLLMを使った際に回答がとても遅いです。 そのため、チャットの設定で「コードベースモードを有効にする」のチェックを外しました。 こうすることで、直接CLIを利用しているのと同じくらいの速度で回答してくれるようになりました。

screenshot3.png

これでIDEの設定は終わりです。

使用感

現在、実際にローカルLLMを使っています。 ただ、利用期間が短いため良し悪しはよく分かっていません。 ローカルLLMのメリットとして、セキュリティや無制限というものがあるので、それらを求める場合には良い選択肢だと思っています。 欠点としては、回答が遅いです。クラウド上のもっと性能の良いコンピュータで処理する方が早いということがよく分かりました。

私が現在契約しているコーディングAIは、JetBrains AIしかありません。 JetBrains AIは、すぐにクレジットが枯渇する印象なので、ローカルLLMと併用して使っていければと思っています。

さいごに

Ollamaを使っているためか、かなり簡単にローカルLLMを導入できました。 パソコンのスペックにも左右されるため、Macでメモリをたくさん積んでいたり、WindowsやLinuxでもVRAMの多いGPUを搭載していたりする場合は、導入を検討しても良さそうです。

こんなに導入が簡単ならば、次に購入するパソコンには128GBのメモリを搭載して、もっとパラメータ数の多いモデルを動かして快適に開発していくというのもありかなと思います。