•17 min read

OllamaでローカルAIモデルを実行:サーバー費用からプライバシー重視の開発への道のり

OllamaでローカルAIモデルを実行:サーバー費用からプライバシー重視の開発への道のり

OpenAIの請求書を見たときの衝撃は今でも覚えています。200ドル。ほとんど稼ぎのないソロプロジェクトで、です。

APIのコストはいつの間にか膨れ上がっていました。テストのために数セントから始まったものが、本番環境では数百ドルになっていたのです。私はコードを自動説明するドキュメンテーションツールを開発しており、ユーザーがクエリを実行するたびにコストが上昇していました。

そこで、ローカルで実行することにしました。

Audio Briefing
0:00 / 0:00

開発作業でAI APIに月50ドル以上費やしているなら、ローカルモデルでその費用をゼロにできます。トレードオフはセットアップ時間であり、お金ではありません。

Ollamaとは何か?

Ollamaは、AIモデルを自分のハードウェアで実行するためのコマンドラインツールです。サーバーも、クラウドも、月額請求書もありません。

私がOllamaについて初めて聞いたのは、同僚がMacBookでLlama 2を動かしているという話でした。私は信じられませんでした。「ラップトップで実用的な言語モデルを動かすなんて無理だ」と言いました。私が間違っていました。

セットアップには約20分かかりました。アプリをダウンロードし、コマンドを1つ実行すると、突然Mistral 7Bが私のマシン上で動き出し、外部に接続することなく質問に答えられるようになりました。

そんなうまい話があるのか、と思いますか?私もそう思いましたが、実際に動いているのを見るまでは信じられませんでした。

Advertisement

1時間もかからずに始められる

インストール方法はOSによって異なります。macOSでは、ollama.aiからアプリをダウンロードすれば完了です。Linuxでは、単一のcurlコマンドです。

curl -fsSL https://ollama.ai/install.sh | sh

WindowsユーザーはWSL2が必要で、多少手間がかかります。それは正直に言います。しかし、一度動かせば、プラットフォーム間で体験は同じです。

ollama.aiからOllamaをダウンロード

インストーラーは約200MBです。インストールよりもダウンロードに時間がかかります。

最初のモデルをプル

ollama pull mistralを実行し、インターネット速度に応じて10〜15分待ちます。モデルは一度ダウンロードされ、マシンに保存されます。

チャットを開始

ollama run mistralを実行すると、REPLに入ります。質問を入力し、エンターキーを押すと、回答が得られます。それだけ簡単です。

Mistralとの最初の会話は魔法のようでした。私が苦戦していた複雑な正規表現パターンを説明するように頼むと、数秒で分解してくれました。遠隔サーバーからの遅延もありません。トークン制限もありません。ただ、答えがあるだけです。

どのモデルから始めるべきか?

最初はこれが混乱しました。何十ものモデルがあります。Llama 3、Mistral、Phi、Gemma、Code Llama。実際にどれが必要なのでしょうか?

試行錯誤の末に学んだことを紹介します。

**一般的なコーディングの質問には、Mistral 7Bが私の日常的なドライバーです。**高速で正確、そしてRAMをすべて食い尽くすこともありません。VS Codeと並行して実行しても、そこにいることを忘れてしまうほどです。

**なじみのないコードベースを説明するには、Llama 3 8Bが驚くほど優れています。**複雑な指示に従い、長い会話の中でコンテキストを維持するのが得意です。

**コード生成には、Code Llama 7Bがその名にふさわしい働きをします。**完璧ではありませんが、一般的なモデルが苦戦する言語を理解します。ChatGPTが構文を幻覚させることが多かったRustやHaskellで、関数全体をスキャフォールドするのに使いました。

より大きなモデルについてはどうでしょうか?Llama 3 70Bは別のカテゴリーに属します。快適に実行するには、かなりのハードウェアが必要です。私は32GBのRAMを搭載していますが、それでも負担を感じます。

Mistral 7Bから始めてください。私が発見した能力とリソース使用量の最適なバランスです。基本的な動作が確認できたら、いつでもより大きなモデルを試すことができます。

ハードウェアの現実

どんなラップトップでもこれらのモデルを実行できるとは言いません。私のセットアップは、M2 Maxと32GBのユニファイドメモリを搭載したMacBook Proです。誰もがこれを持っているわけではないことは知っていますし、自慢するつもりもありません。

私が観察したところによると、ほとんどの最新マシンは7Bパラメータモデルを実行できます。13Bモデルは当たり外れがあります。それ以上のものは、より良いハードウェアか、かなりの忍耐力が必要です。

ボトルネックはほとんどの場合RAMです。Ollamaはモデルを起動するときにメモリ使用量を表示します。その数字に注目してください。利用可能なメモリに近づくと、マシンが非常に遅くなるのを感じるでしょう。

私はRTX 3060を搭載したLinuxボックスでOllamaを実行している開発者と話しました。GPUアクセラレーションは大きな違いを生みます。もし本気で取り組むなら、NVIDIA GPUをビルドに組み込むことを検討する価値があります。

Advertisement

6ヶ月後の私の実際のワークフロー

Ollamaを実際に使うことは、マーケティングとは異なります。私は、単なる目新しさではなく、本当に役立つ習慣を身につけました。

私はOllamaをシンプルなHTTPサーバーでラップし、既存のツールがOllamaと通信できるようにしました。ほとんどのAI搭載プラグインはOpenAI互換のエンドポイントをサポートしています。Ollamaはそのプロトコルをすぐにサポートしています。私はツールをlocalhostに向けただけで、それらは問題なく動作しました。

ファイルを読み込み、Mistralに説明を求める小さなスクリプトを作成しました。ファイルパスをパイプすると、平易な英語の要約が返ってきます。これにより、古いコードのリバースエンジニアリングに費やす時間を何時間も節約できました。

コミットする前に、Code Llamaに明らかなバグがないか確認してもらいます。これは実際のレビューの代わりにはなりませんが、午後11時に私が見落とすようなものを見つけてくれます。先週、1時間デバッグに費やすはずだったオフバイワンエラーを指摘してくれました。

なじみのないコードベースは、質問をすることで読み解きます。「なぜこの関数はクロージャを受け取るのか?」Mistralは一般的な用語ではなく、文脈に沿って説明してくれます。回答は、私が探しているものに合わせて手作業で作成されたように感じられます。

あまり語られないプライバシーの側面

コストに関する議論よりも私を納得させたことがあります。それは、私のコードが私のマシンに留まるということです。

APIにプロンプトを送信するとき、私は未完成で、おそらくバグがあり、潜在的に機密性の高いコードを第三者に渡していることになります。私はおそらくこれをカバーするNDAに署名していますが、それでも不安を感じていました。

Ollamaを使えば、会話は私のラップトップから離れることはありません。これは、独自のシステムや機密データに隣接するものを扱っている場合に重要です。

以前、あるヘルスケアスタートアップがローカルAIオプションを評価するのを手伝いました。彼らはHIPAAの懸念から、患者の記録を外部API経由で送信できませんでした。彼らのサーバーでOllamaを実行することで、APIプロバイダーでは対応できなかった問題を解決できました。

あなたのプロジェクトにとってプライバシーは懸念事項ですか?もしそうなら、ローカルモデルがあなたが探していた答えかもしれません。

壊れているもの、改善が必要なもの

これまでは批判的な意見を述べてきましたが、それは皆さんに現実的な期待を持ってほしいからです。Ollamaには問題がないわけではありません。

**コンテキストウィンドウは商用APIよりも小さいです。**Mistral 7Bは8,000トークン程度を快適に処理します。これはほとんどのタスクには十分です。しかし、大規模なコードベースを1つの会話で分析しようとすると、物足りなくなります。

**モデルの品質は様々です。**Code LlamaがMistralなら決して提案しないようなナンセンスなものを生成したことがあります。GPT-4のような一貫性はありません。どのタスクにどのモデルを信頼するかを知るには、調整が必要です。

**最近まで組み込みのチャットインターフェースがありませんでした。**macOSの新しいOllamaアプリは役立ちますが、ほとんどのやり取りはまだターミナルで行われます。もしターミナルに慣れていないなら、これはあなたには向かないかもしれません。

Ollamaモデルは、難しい推論タスクにおいてGPT-4よりも能力が劣ります。あらゆるシナリオで商用APIの代替となるわけではありません。コミットする前にユースケースを把握してください。

切り替えるべきか?

私はAPIの請求額をほぼゼロに削減しました。それだけでも移行の労力に見合う価値がありました。

しかし、私にとってより大きな収穫は、AIツールに対する考え方が変わったことです。ローカルモデルはクラウドモデルとは異なる強みを持っています。プライベートで高速、そして大規模に無料です。また、より多くの調整と不完全さへの許容が必要です。

コストとプライバシーが最先端の能力よりも重要となるものを構築していますか?もしそうなら、切り替えるべきです。

利用可能な最高の推論を必要とする難しい問題を解決していますか?それなら、それらのためにクラウドAPIを使い続け、それ以外のすべてにOllamaを使用するのも良いでしょう。

私は今、両方を使っています。難しいことにはクラウドを、それ以外でできることにはローカルを使っています。これは両方の良いとこ取りであり、両方を使う余裕があることがわかりました。


ローカルAIモデルの経験はいかがですか?コメント欄に投稿してください。すべての返信を読んでいますし、他の人がどのようなハードウェアで実行しているのか興味があります。

こちらもおすすめ

Share this article:

Stay Updated

Get the latest posts delivered straight to your inbox.

Free Developer Utilities

Free In-Browser Developer Tools

Clean AI CLI logs, build cron expressions, decode JWTs, and calculate chmod permissions offline.

Explore Tools
Advertisement
13日間のクラウドスプリント:期限切れGCPクレジットを永続的なメンテナンス費用ゼロのアセットに変える方法
cloud

13日間のクラウドスプリント:期限切れGCPクレジットを永続的なメンテナンス費用ゼロのアセットに変える方法

期限切れのGoogleCloudクレジットから最大のROIを引き出すための実践ガイド。一時的なコンピューティングを、期限切れ後のコストゼロで永続的なSEOコンテンツ、ニューラルオーディオ、事前計算済みデータセットに変換する方法を学びましょう。

Read more