project-nomadでオフラインAI開発環境を構築する方法:インターネット不要のセルフホスト型AIパソコン

Uncategorized

「クラウドのAI APIが使えない環境」で開発しなきゃいけなくなったとき、どうする?

実はこれ、意外とよくある話だ。セキュリティ要件が厳しい案件、新幹線や飛行機での移動中、あるいは月末にAPI費用を抑えたい場面。そういうときに「ローカルで全部完結するAI開発環境」があるかどうかで、作業効率が全然変わってくる。

先月、project-nomadというセットアップ構成を使ってみたら、これがかなりよくできていた。OllamaをベースにしたローカルLLM環境を、ポータブルかつ再現性の高い形でまとめたプロジェクトで、「インターネット接続ゼロでもAIと会話しながらコードが書ける環境」が1〜2時間で作れる。

この記事では、project-nomadの全体像から実際のセットアップ手順、副業や個人開発での活用事例まで一通り書く。ローカルLLM環境を整えたいと思っている人にはそのまま参考になるはずなので、最後まで読んでほしい。


オフラインAI開発環境が必要な理由、改めて整理する

「クラウドAPIでいいじゃん」という意見はわかる。でも実際に開発してみると、いくつかの壁にぶつかる。

クラウドAPI依存のデメリット

  • APIコストが積み上がる(GPT-4oは1Mトークンで$5〜$15)
  • 社内規定やNDA案件でコードをクラウドに送れないケースがある
  • 通信環境が不安定な場所では使えない
  • レート制限に引っかかって作業が止まる

個人的に一番きつかったのはレート制限の問題だ。深夜に集中して作業しているときに「Too many requests」が出ると、テンポが完全に崩れる。

ローカルLLMに切り替えてからはその問題がゼロになった。レスポンスはGPT-4には及ばないが、コーディング補助・READMEの下書き・コードレビューくらいなら十分機能する。特にCodeLlamaやQwenのコード特化モデルを使えば、実用に耐えるレベルだと感じている。


project-nomadの構成を把握する

project-nomadは、以下のコンポーネントをDockerComposeでまとめた構成だ。

コンポーネント 役割
Ollama ローカルLLMの実行エンジン。モデルの管理・推論を担当
Open WebUI ブラウザからLLMを操作するGUI(ChatGPT風UI)
Continue.dev VS CodeとJetBrainsに対応したAIコーディング補助拡張
Nginx(オプション) ローカルネットワーク内で複数端末から使いたい場合のリバースプロキシ

この4つが揃えば、インターネット接続なしで「AIとチャットしながらコードを書く」環境が完成する。

注目しているのはContinue.devとの統合だ。VS Codeのサイドバーに常駐して、「この関数にテストを書いて」「バグを直して」みたいな指示をリアルタイムで出せる。GitHub Copilotをローカルで再現したようなイメージと思えばわかりやすい。


動かすための最低スペックと推奨環境

ここは正直に書く。ローカルLLMはそれなりにマシンパワーが必要だ。

最低スペック(7Bモデルを動かす場合)

  • RAM: 16GB(8GBでも動くが快適ではない)
  • CPU: Intel Core i5 10世代以降、またはApple M1以降
  • ストレージ空き: 20GB以上(モデルファイルが4〜8GB)

推奨スペック(14B〜32Bモデルを動かす場合)

  • RAM: 32GB以上
  • GPU: NVIDIA RTX 3060以上(VRAM 12GB〜)またはApple M2 Pro以上
  • ストレージ空き: 50GB以上

M2 MacBook ProでLlama3.1:8bを動かしてみたが、レスポンスは1トークン/秒程度で実用的だった。RTX 4070搭載のWindowsマシンなら5〜10トークン/秒まで出る。

GPUがないPCでも動くが、34B以上のモデルは諦めた方がいい。7B〜14Bモデルに絞って使うのが現実的だ。


インストール手順:1時間で環境を立ち上げる

実際にmacOS(M2 Pro)とUbuntu 22.04で試した手順を書く。

Step 1: Dockerのインストール確認

コメント

タイトルとURLをコピーしました