c0d3man52

Webサイト制作

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で構築しました。

実装する

大まかな流れとしては次の通りです。

  1. Ollamaをインストール
  2. Ollamaでモデルをダウンロード
  3. 拡張機能Continueをインストール
  4. Continueの設定を行う
  5. Autocompleteをオンにする

1. Ollamaをインストール

まずmacOSにOllamaをインストールします。

Ollamaは公式でmacOS向けのパッケージを提供していますので、公式サイトからダウンロードしてインストールします。

Download Ollama

インストールをしたらアイコンをクリックして起動をします。起動しても何も画面が出てきませんが、それは正常です。ツールバーにOllamaのアイコンが表示されていれば、正常に起動ができています。

2. Ollamaでモデルをダウンロード

続いて、Ollamaでモデルをダウンロードします。モデルはコマンドラインからダウンロードをします。

ollama pull <model_name>

Ollama公式のモデルは、以下のページにまとまっています。

Models | 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の大きなモデルを使って精度を高めると良いかと思います。