🐧 Linux 総合学習プラットフォーム
AI時代のLinux ・ 中級

ローカルLLMを動かす——Ollama

クラウドのAIサービスを使うだけでなく、自分のLinuxマシンの中でAIモデルそのものを動かす方法を学びます。Ollamaというツールを使うと、モデルのダウンロードから対話までコマンド一つで完結します。ネットに繋がらない場所でも使え、API利用料もかからず、手元で自由に試せるのが最大の魅力です。この章では導入からモデルの選び方、REST API経由での呼び出しまでを扱います。

AIを使うといえば、多くの人はブラウザでチャット画面を開き、クラウドの向こう側にあるモデルへ質問を送る場面を思い浮かべる。だが同じことは、自分のLinuxマシンの中だけでも完結させられる。その仕組みを裏返し、自分の手元だけで完結させてしまおうというのが、この章のテーマだ。

手元で動かすAIモデルのことを、ここではローカルLLM(ai-linux-local-llm)と呼ぶ。LLMは大規模言語モデルの略で、文章を理解し生成する仕組みそのものを指す。それをクラウドではなく自分のマシン上で動かすのがローカルLLMだ。

これまでAIを「使う側」だった人にとって、ローカルLLMは初めて自分の手でAIを「動かす側」に回る体験になる。難しそうに聞こえるが、道具さえ揃えば操作自体はごく簡単だ。誰かのサービスを間借りするのではなく、自分の環境で完結させる感覚だ。

🔗
たとえクラウドAIが「毎回タクシーを呼んで移動する」ようなものだとすれば、ローカルLLMは「自分の車を持つ」ことに近い。呼ぶたびに料金はかからないし、電波が届かない場所でも走れる。ただし車体(モデル)を保管する場所と、動かすための燃料(メモリ)は自分で用意しなければならない。

🔒 なぜ手元で動かすのか

理由の一つ目はプライバシーだ。入力した文章や質問は、ネットワークの外へ一切出ていかない。社内文書や個人的な相談ごとを扱うとき、この安心感は大きい。

二つ目はオフラインで使えること。飛行機の中や電波の弱い場所でも、一度モデルを取得してしまえばネット接続なしで対話できる。出先で調べものができない状況でも、手元のモデルなら応答してくれる。

三つ目はAPI利用料金がかからないこと。クラウドのAIサービスは使った分だけ課金される従量制が多いが、ローカルLLMは電気代以外の追加費用が発生しない。何度質問しても、何行のコードを生成させても、追加の請求は来ない。

四つ目は実験の自由度だ。設定を変えたり、複数のモデルを気軽に切り替えて比較したりできる。クラウド側の仕様変更に振り回されることもなく、自分のペースで試行錯誤できる。設定を戻せなくなる心配も、他人の使用中の環境を巻き込む心配もない。

💡
ポイントローカルLLMの利点は、プライバシー・オフライン動作・料金ゼロ・実験の自由度の高さの4つに集約できる。

もちろん万能ではない。手元のマシンの性能に処理速度が左右されるし、最新の最強クラスのモデルはクラウド側にしかないことも多い。両者は競合というより、場面に応じた使い分けの関係にある。「常にどちらか一方を使う」のではなく、機密情報を扱う作業はローカルで、複雑な調べ物はクラウドで、というように場面で切り替える使い方が現実的だ。

あなたのPCネット経由で質問クラウドAI従量課金・要ネットあなたのPCollama runローカルLLM無料・オフライン可どちらも使い分ける

図のように、クラウドAIは強力だがネット接続と利用料が前提になる。ローカルLLMは非力な場面もあるが、手元で完結する気軽さがある。この章では後者を動かす道具を扱う。

🐋 Ollamaを導入する

ローカルLLMを手軽に動かすためのツールとして広く使われているのがOllamaだ。モデルの取得・起動・管理をシンプルなコマンドにまとめてくれる。以前は環境構築だけで一苦労だった分野だが、Ollamaの登場でそのハードルはぐっと下がった。

公式が配布するインストールスクリプトを使う $ curl -fsSL https://ollama.com/install.sh | sh この1行で、OllamaのバイナリがLinuxマシンにインストールされる。

インストールが終わると、Ollamaはsystemdサービスとしてバックグラウンドに常駐する。つまりPCを再起動しても自動的に立ち上がり、いつでもコマンドを受け付ける状態になる。ターミナルを開くたびに手動で起動する必要はない。手動で起動し直す手間がない点は地味に助かる。

インストール手順や対応OS・対応モデルは更新が早い分野なので、実行前に公式サイト(ollama.com)で最新の案内を確認してほしい。 サービスが起動しているかどうかは systemctl status ollama のようなコマンドで確認できる。動いていなければ ollama コマンド自体が接続エラーを返すので、まずここを疑うとよい。

常駐サービスという仕組みのおかげで、裏側では静かに待機し、要求が来たときだけモデルを読み込んで応答する。この待機の仕方がAPI連携のしやすさにもつながっている。

⌨️ 基本操作を覚える

Ollamaの操作は驚くほど少ないコマンドで完結する。まず覚えるべきは pull・run・list の3つだ。この3つさえ押さえれば、日常的な利用の大半をカバーできる。

最初の pull は、モデルのデータをインターネットから取得して手元に保存するコマンドだ。取得中はターミナル上にパーセント表示で進捗が流れていくので、待ち時間の目安もつかみやすい。回線速度やモデルの大きさによっては数分かかることもあるので、初回だけは気長に待つ心づもりでいるとよい。

モデルを手元に取得してから起動する $ ollama pull llama3.2 $ ollama run llama3.2 >>> こんにちは pull で取得したモデルに、run で話しかけると >>> というプロンプトが現れ、そこに打ち込んだ質問へモデルが応答を返す。

run コマンドは、指定したモデルが手元になければ自動的に pull も行ってから起動する。だから最初の一歩は run だけで済ませることもでき、実際には pull を省いて run だけを打つ人も多い。

💡
ポイントpull は取得だけ、run は取得(未取得なら)と起動と対話の入り口をまとめて行う。迷ったらまず run から始めてよい。

対話を終えるときは /bye と打つか、Ctrl+D で抜けられる。難しい終了手順はなく、思い立ったらすぐに切り上げられる。

手元に取得済みのモデルが増えてくると、どれをダウンロード済みだったか忘れてしまうことがある。そこで役に立つのが list だ。ollama list と打つと、モデル名・サイズ・更新日時が一覧で表示される。一度取得したモデルはディスクに残り続けるので、この一覧でいつでも確認できる。

ollama pullモデルを取得ollama runモデルを起動対話プロンプト>>> で質問できる初回のみ数GB2回目以降は即起動/bye で終了

取得は初回だけ時間がかかるが、二回目以降のrunはディスクに保存済みのデータを読み込むだけなのですぐに立ち上がる。複数のモデルを併用している場合は、切り替えるたびに読み込みが発生する点は覚えておきたい。使わなくなったモデルは、必要に応じて手動で削除することもできる。

⚖️ モデルの大きさと量子化

モデルを選ぶとき、名前の後ろに付くBという単位を目にする。7Bなら70億、3Bなら30億のパラメータ数を意味し、大まかに言えばモデルの規模の指標だ。

パラメータ数が多いほど、モデルは複雑な文脈や込み入った指示を理解しやすくなる傾向がある。一方でモデルのファイルサイズも大きくなり、7B級のモデルはそれだけで数ギガバイトに達する。

この重さを軽くする工夫が量子化(ai-linux-quantization)だ。モデル内部の数値を、精度を落とした軽量な形式に変換して保存する。同じモデルでも量子化の度合いが違えば、必要な容量も応答の質感も変わってくる。

🔗
たとえ量子化は、写真を高画質のRAW形式から圧縮されたJPEG形式に変換するようなものだ。ファイルは小さくなり扱いやすくなるが、圧縮率を上げすぎると細部の粗さが目立ち始める。

量子化されたモデルは、必要なメモリが減り動作も軽くなる代わりに、応答の精度がわずかに落ちることがある。Ollamaで配布されているモデルの多くは、あらかじめ扱いやすい量子化済みの形で提供されている。

つまずきどのモデルがどの程度の量子化で配布されているかはモデルごと・バージョンごとに異なる。詳細は公式のモデル一覧ページで最新を確認するのが確実だ。

💾 RAM・VRAMの目安をつかむ

モデルを動かすには、そのモデルの重さに見合ったメモリが要る。おおまかには、モデルのファイルサイズに近い量のメモリが読み込み時に必要になると考えておくとよい。

手元のマシンにどれくらい空きメモリがあるかを事前に確認しておくと、モデル選びで迷ったときの判断材料になる。大は小を兼ねると思って安易に大きなモデルへ手を伸ばすと、起動すらしないという事態にもなりかねない。

GPUを積んでいるマシンではVRAM(グラフィックボード上のメモリ)を使うと高速に動く。GPUがない、あるいはVRAMが足りない場合はCPUとRAM(通常のメモリ)で動かすこともできるが、応答は遅くなる。

💡
ポイントモデルサイズに対してメモリが小さすぎると、起動に失敗したり極端に遅くなったりする。まずは軽量なモデルから試すのが安全だ。

非力なマシンで試すときは、名前に量子化のヒントが含まれる軽量版や、パラメータ数の小さいモデルから始めると失敗が少ない。慣れてきたら、手元のメモリ容量と相談しながら少しずつ大きなモデルへ手を伸ばせばよい。

大きすぎるモデルを無理に動かそうとすると、途中で止まってしまったり、他の作業が重くなったりする。自分のマシンのメモリ容量を把握したうえで、段階的に大きなモデルへ挑戦していくのが実践的だ。

🔌 REST APIで話しかける

Ollamaはコマンドラインの対話だけでなく、裏側でREST APIも公開している。これを使うと、自分のプログラムやスクリプトからモデルを呼び出せる。

常駐しているOllamaサービスは、既定で localhost:11434 というアドレスで要求を待ち受けている。ここへcurlのようなツールでアクセスすれば、対話画面を介さずに直接やり取りできる。

手元にあるモデル一覧をAPI経由で取得する $ curl http://localhost:11434/api/tags コマンドラインの ollama list と同じ情報が、プログラムで扱いやすい形式で返ってくる。

この仕組みのおかげで、自作のツールやWebアプリからローカルLLMを部品として組み込むことができる。対話用のターミナルはあくまで入り口の一つに過ぎず、本当の使いどころはこのAPI連携にあるとも言える。

つまずきAPIのエンドポイントの構成や返却形式はバージョンによって拡張されることがある。実際に組み込む際は公式ドキュメントで最新の仕様を確認してほしい。

自分のマシンの中でAIを動かし、それをAPI越しに呼び出せるようになると、AIを使うだけの立場から、AIを組み込んで動かす立場へと一歩進んだことになる。ここから先は、どのモデルを選び、どう組み合わせるかという実践の領域だ。この章で扱ったOllamaは、その一歩を踏み出すための、数あるツールの中でも特に敷居の低い入り口だ。

この項目に出てくる用語

ローカルLLMろーかるえるえるえむ
クラウドではなく自分のマシン上で動かす大規模言語モデルのこと。
量子化りょうしか
モデル内部の数値の精度を落として、ファイルサイズと必要メモリを軽くする手法。

関連コマンド

ollamacurl

▶ 学習アプリでこの続きを学ぶ・演習する