AppleシリコンMacのローカルOllamaでコード補完環境を構築する
AppleシリコンMacであるM1 MacBook Airで、ローカルOllamaとVSCでコード補完環境を構築したのでメモです。
公開日: 2024.12.25
端末
筆者の現在のメイン開発端末はM1 MacBook Air (Late 2020)で、スペックは以下です。
- CPU: M1 8コア
- GPU: M1 7コア
- Neural Engine: 16コア
- メモリ: 8GB
- OS: macOS 15.2(24C101)
エディタはVSCを使う
macOS用のエディタとしてはVisual Studio Code (VSCode)が最も人気です。ただ、個人的にはZedエディタの軽量さが好きでメインエディタはZedです。
ただ、Zedエディタは発展途上で、AIによるコード補完も使えるのですが、公式に使えるのはGithub Copilotに限定されます。
そこで、今回はローカルLLMでコード補完ができるContinueという拡張機能があるVSCで構築しました。
実装する
大まかな流れとしては次の通りです。
- Ollamaをインストール
- Ollamaでモデルをダウンロード
- 拡張機能Continueをインストール
- Continueの設定を行う
- Autocompleteをオンにする
1. Ollamaをインストール
まずmacOSにOllamaをインストールします。
Ollamaは公式でmacOS向けのパッケージを提供していますので、公式サイトからダウンロードしてインストールします。
インストールをしたらアイコンをクリックして起動をします。起動しても何も画面が出てきませんが、それは正常です。ツールバーにOllamaのアイコンが表示されていれば、正常に起動ができています。
2. Ollamaでモデルをダウンロード
続いて、Ollamaでモデルをダウンロードします。モデルはコマンドラインからダウンロードをします。
ollama pull <model_name>
Ollama公式のモデルは、以下のページにまとまっています。
Ollamaで使うモデルとして一般的なのは、llama3.2:latestですが、VSCで使うのであれば、よりコーディングに特化したqwen2.5-coderを使うと良いようです。使い比べてみても、コード補完ではqwen2.5-coderの方が良い感じがしました。
なお、筆者のMacBook Airは8GBメモリモデルなので、パラメータが3Bのqwen2.5-coderを使うと、補完データをロードするうちにシステム全体がハングアップしてしまうので、1.5Bを使っています。
ollama pull qwen2.5-coder:1.5b
これで、LLMモデルのコード補完環境のベースができました。
VSCで、Continueをインストール
続いて、VSCで設定をしています。
まず、拡張機能「Continue」をインストールします。拡張機能タブから「Continue」で検索すれば出てきます。
インストールが完了すると、サイドバーにContinueのタブが出現します。
Continueの設定
続いて、Continueの設定を行います。
サイドバーからContinueのタブに入って、上部にある歯車マークをクリックします。
config.jsonが開くので、以下のように設定します:
"tabAutocompleteModel": {
"title": "Tab Autocomplete Model",
"provider": "ollama",
"model": "qwen2.5-coder:1.5b",
"apiBase": "http://127.0.0.1:11434"
},
"allowAnonymousTelemetry": false,
allowAnonymousTelemetryは、Continueにデータを匿名で送信するかどうかを指定します。falseに設定すると、データが匿名で送信されません。ここはfalseにしておくのがベターかと思います。
Autocompleteをオンにする
Continueをインストールすると、右下に「Continue」というタブが出てきます。クリックすると、「Tab Autocomplete Model」というメニューがあるのでクリックをします。これで、Autocompleteがオンになります。
コード補完が動作すると、右下のContinueタブが生成中にローディングアイコンが表示されるようになります。
実際に使ってみて
M1 MacBook AirというAppleシリコンMacの中でも最低モデルではありますが、コード補完機能は実用的な動いています。
Github Copilotと比較するとスピードはかなり遅めです。Github Copilotが1秒程度で補完してくれるのに対して、Ollama + Continueローカルコード補完では3秒くらいかかるイメージでしょうか。
それでも、コード補完機能を活用することで、開発者にとって非常に便利な環境となることは間違い無いですし、何よりも外部サービスにお金を払わず、貴重なデータを提供せずにコード補完が使えるのはかなりメリットが大きいかと思います。
より実用的なコード補完を使いたいなら、Mac Mini M4 Proなどの最新マシンを使って高速化をし、7Bや14Bの大きなモデルを使って精度を高めると良いかと思います。