📝

ローカルLLMで完全無料のバイブコーディングするMAC環境を構築、運用のコツも紹介

に公開

はじめに

ずっとwindows派だった私がついにmacを導入しました。理由としてはiosアプリを作ってビルドして公開したいからというものです。一方で、購入したmac miniですが、まさかのVRAMとして最大18GB割り当てることができました。そのため、google coalb等で使えるT4 GPUくらいかそれ以上のスペックがあります。windows PCでもゲーミングデスクトップ等複数所有していますが、ここまで性能はよくありません。今までCursor等のお世話にずっとなっていたのですが、これを機に開発環境を完全ローカルに移してみることをトライしました。

対象者

•とにかく無料を貫きたい人
•セキュリティに関わるファイルを扱うためにローカルLLMを使いたい人
•.envなど外部に流出可能性のあるファイルがあるが、いちいちバイブコーディングの度に管理したくない人
•外部のAPIに依存したくない or 抵抗がある人

今回用意するもの

・LMstudio (Ollamaでもok)
・Cline (ContinueやRoo codeでもよい)
・Xcode (これは後述)

今回の環境

Mac mini M4pro 24GB 512GB

環境構築

LLM studioの導入と設定

LM Studioのダウンロードは下記からできます。
https://lmstudio.ai
LM Studioをインストールしたら、虫眼鏡マークからモデルを選択しダウンロードします。GPT-OSS-20Bだと12GBくらいストレージが必要です。

LLM studioはollamaと同様に、導入したローカルLLMをopenAI apiライク(互換)のapiサーバーとして立ち上げることができます。ターミナルのタブから動作可能で、Status Runnnigになっているとサーバーが起動します。

ここで公開したURLとポートを忘れないようにしておきましょう。塗りつぶし部分はご自身のパソコンのIPアドレスです。

普段は私はollamaを使用していますが、ollamaよりも公開して利用するまでが楽なので結構良いツールだなと思いました。

Clineの導入と設定

導入方法は下記を参照ください。VS Code拡張機能として導入します。
https://zenn.dev/chameleonmeme/articles/1c09e8f856c36b
ここからは簡単。
Cline側がクライアントになるので、URLとポートを記載するだけ!

実際に動作すると下記のようになります。

いい感じで動いています。

実はXcode×ローカルLLMでバイブコーディングできる!

Xcodeで扱う言語といえばswiftになると思うので、人によって用途はかなり限定的になると想定されますが、実はバイブコーディングができます笑
https://developer.apple.com/documentation/Xcode/writing-code-with-intelligence-in-xcode
機能としては、Xcodeから呼び出されるApple intellignceの呼び出しAPIをローカルLLMに置換します。そうすると、Xcodeとしてもバイブコーディングが可能になります。もはやApple intelligenceなのかよくわかりませんが苦笑

設定方法

Xcodeに内蔵されているApple intelligenceを開きます。

Add a model providerを押して、

LLM Studio等で開放しているポート番号を入力します。
これだけでローカルLLMとApple intelligenceを接続できます。

実際の動作

実際に動かすと下記のような感じです。

機能的にはClineやCursorとほぼ変わらず、コード書いたりコード補完したりできます。他のエージェントやMCPの呼び出しについてはこれからに期待しましょう。UIも洗練されているので今後の進化に期待しましょう!

おすすめのコーディングローカルLLM

GPT-OSS-20b
Qwen2.5/3 coder
Deepseek coder
上記3つのモデルは言わずと知れた有名モデルです。GPT-OSSについては120Bは現実的に運用できるものではないので20Bがおすすめです、O3などとほぼ同性能なので文句はないはず。また、QwenとDeep seekは明確な違いはないですが、GPTと異なり、量子化された複数のモデルから選択できます。したがって、ご自身のパソコンのスペックと相談しながらモデルを導入できるメリットがあります。いずれのモデルもMoEと言われるメモリ消費を抑えるアーキテクチャが適用されているため、意外にも実行時のメモリ消費量は小さいです。

ローカルLLMでバイブコーディングするデメリットと対策

デメリット

ローカルLLM最大のデメリットは基本的に計算リソースです。
計算リソースがボトルネックとなり、大きなモデルを導入できません。大きなモデルの方がコンテキストが長いプロンプトを処理できるので、大きなモデルを導入できないローカルLLMでは長いコードを一度に処理できません。一方で、バイブコーディングするサービスは、バッグエンドのシステムプロンプトに非常に長文のプロンプトが記載されているため、ローカルLLMではすぐにコンテキストがパンパンになってしまい正常な動作ができなくなるシチュエーションが想定されます。

対策


上記はCursorの画面の一例ですが、コンテキストをどの程度消費しているかが可視化されています。
このコンテキストが100%を超えると、過去のチャット内容をどんどん忘れてしまいます。
そこで、100%になる前にチャットのスレッドを変更します。これによってさきほどの正常動作しなくなるシチュエーションを回避できます。もちろん最初の指示プロンプトも粒度を大きくせずに(=抽象的にせずに)、小さめに指示することで1回のチャットのスレッドでタスクを完了させることができます。
以上からコツとしては、コンテキストを100%にならないようにチャットのスレッドを頻繁に再開する指示するタスクの粒度を小さめにあらかじめにしておくことです。
上記ベストプラクティスを書いてきました!
よい無料バイブコーディングライフを!

Discussion