ローカルLLMをAIコーディングの補助に使えるか検討した

ローカルLLMをAIコーディングの補助に使えるか検討した

  • 日本語
  • ローカルLLM
  • AIコーディング
  • Codex
  • LLM

#はじめに

AIコーディングを日常的に使うようになり、モデルの性能とは別の問題が気になるようになった。

利用量だ。

私はCodexを使いながら、4つほどのプロジェクトを並行して進めることがある。

一つのプロジェクトだけなら問題にならなくても、複数の作業を同時に進めるとモデルの利用量はかなり増える。

そこで、

すべてをクラウドのフロンティアモデルへ任せる必要があるのか

を考えるようになった。

その候補としてローカルLLMを試すことにした。

#フロンティアモデルを完全に置き換えたいわけではない

最初から、

今後はすべてローカルLLMで開発する

と考えていたわけではない。

設計、複雑な修正、大きなリファクタリングなどは、現在のフロンティアモデルへ任せた方が安心できる。

一方で、日常の開発にはそれほど難しくない作業も多い。

  • 小さな修正
  • 調査
  • コードの読み取り
  • 定型的な変更
  • サブタスクの切り出し

こうした作業の一部だけでもローカルへ分散できれば、クラウド側の利用量を抑えられるかもしれない。

#4プロジェクト並行だと消費量の影響が大きい

私の使い方では、AIコーディングを一つのリポジトリだけで使うことは少ない。

その日の状況によって、複数のプロジェクトを行き来する。

text
Codex
├─ Project A
├─ Project B
├─ Project C
└─ Project D

それぞれで調査や実装を進めれば、当然コンテキストも増える。

一つひとつのタスクは問題なくても、週単位で見ると利用量の差が大きくなる。

この運用を続けるなら、

一番賢いモデルを常に使う

だけではなく、

どの作業をどのモデルへ任せるか

を考えた方が良い。

#ローカルLLMは補助役として考える

ローカルLLMの良いところは、自分のPC上で動かせることだ。

クラウド側の週次レートを消費しない。

ネットワーク越しのAPIを使わずに済む場面もある。

ただし、ローカルで動くからといって、クラウドの最新モデルと同じ性能になるわけではない。

そのため、自分の中では次のような役割分担を考えた。

text
難しい設計・実装
フロンティアモデル

軽い調査・小さな修正
ローカルLLM

このくらいの使い分けなら現実的に見えた。

#手元のGPUでどこまでできるか

自宅のPCには16GB VRAMのRadeon GPUを搭載している。

この環境でローカルLLMを動かし、AIコーディングの補助として利用できるか試し始めた。

モデルサイズが大きくなるとVRAMだけでは足りず、RAMへ一部を逃がすことも考える必要がある。

そのため、

  • 20Bクラスはどこまで動くか
  • 27Bクラスは実用になるか
  • もっと大きなモデルを使うには何が必要か

というハードウェア側の興味も出てきた。

この部分は後からローカルLLM専用の記事として整理する。

#別のクラウドモデルへ分散する方法もある

利用量を分散する方法はローカルLLMだけではない。

複数のAIサービスを契約しているなら、別のクラウドモデルへ一部の作業を任せる方法もある。

ただ、自分の場合はCodexでかなり安定した開発環境ができている。

無理に別の環境へ移すより、まずCodexを中心にして、補助として別モデルを使う方が自然だった。

#このあとAstraの利用量がさらに気になった

この時点では、GPT-6 AstraをAIコーディングで使っていた。

性能面ではかなり良い。

しかし、複数プロジェクトを並行して進めると、週単位の利用量が想定以上に増えた。

その結果、モデルの性能だけではなく「継続して使える量」をかなり意識するようになった。

GPT-6 Astra mediumでは4プロジェクト並行開発のレートが足りなかったに、そのときの状況をまとめている。

#まとめ

ローカルLLMを検討した理由は、フロンティアモデルを置き換えたいからではなかった。

4つほどのプロジェクトを並行してAIコーディングすると、クラウド側の利用量が大きくなる。

そこで、

text
フロンティアモデル
        +
ローカルLLM

という使い分けを考え始めた。

今後はモデルの性能だけではなく、利用量、速度、ハードウェア、作業の難しさまで含めて役割を決めていくことになりそうだ。