Ollama(ローカルLLM実行)

Ollamaとは

Ollama は、自分のPCやサーバー上でLLMを動かすためのランタイムです。モデルの取得・起動・API提供までを1つのコマンド体系で扱えます。

ollama pull llama3      # モデルを取得する
ollama run llama3       # 対話形式で実行する

起動すると HTTP のエンドポイントが立ち上がり、アプリからは通常の [[生成AI・LLM]] のAPIと同じ感覚で呼べます。APIキーも従量課金も無く、ネットワークが切れていても動きます。

curl http://localhost:11434/api/generate -d '{"model":"llama3","prompt":"要約して"}'

クラウドAPIとの使い分け

観点クラウドのLLM APIOllama(ローカル実行)
データの送信先事業者のサーバー手元の環境から出ない
コストトークン単位の従量課金電気代と機材のみ
モデルの性能最新・最大規模を使える端末のメモリに収まる規模に限られる
応答速度通信込み。混雑の影響を受ける通信なし。GPUの有無に大きく左右される
運用事業者が面倒を見る更新・監視を自分で行う

判断の軸は性能とデータの持ち出し可否です。社外に出せない文書を扱う、ネットワークが不安定、試行回数が多くて課金が読めない、といった場面ではローカル実行が向きます。逆に最高精度が要る処理はクラウドのAPIに任せる、という併用が現実的な構成です。

アプリ側を「モデルの呼び出し口」で抽象化しておくと、同じコードのままローカルとクラウドを切り替えられます。

動かすときの制約

ローカル実行で最初に当たるのがメモリの上限です。モデルはパラメータ数に応じたメモリを必要とし、収まらなければ動きません。そこで量子化(パラメータの精度を落として容量を削る手法)されたモデルが広く使われます。

  • パラメータ数が小さいモデルほど速く動くが、複雑な指示には弱くなる
  • 量子化は容量と速度を稼げるが、精度はいくらか落ちる
  • [[コンテキストウィンドウ]] を大きく取るとその分メモリを消費する

生成の挙動は [[推論パラメータと出力のばらつき]] と同じ考え方で調整します。temperature などのパラメータはリクエストで渡せます。

初学者向けポイント

  • まずは小さいモデルで動作を確認し、必要になってから大きいモデルへ上げるのが安全です
  • 同じモデル名でも量子化の程度が違う配布物があります。手元のメモリに合うものを選びます
  • モデルの実体は [[Hugging Face Transformers]] のエコシステムで公開されているものが多く、ライセンスは配布元の条件に従います

関連技術とのつながり

  • [[生成AI・LLM]] — 実行場所を手元に置いた形。呼び出し方の考え方は同じ
  • [[推論パラメータと出力のばらつき]] — temperature などの調整はローカルでも同様に効く
  • [[コンテキストウィンドウ]] — 大きく取るほどメモリを消費するため、ローカルでは制約が直結する
  • [[Hugging Face Transformers]] — モデルの入手元・より細かい制御が要るときの選択肢
Q: Ollamaを使う最大の利点はどれ?
- [ ] クラウドAPIより必ず高精度な回答が得られる
- [x] データを外部へ送らずに手元でLLMを実行できる
- [ ] モデルの学習を自動で行ってくれる
解説: Ollama はローカル実行のランタイムです。データが手元から出ない点と、APIキー・従量課金が不要な点が主な利点です。

Q: ローカルLLM実行で最初に制約になりやすいものはどれ?
- [ ] ディスプレイの解像度
- [x] 端末のメモリ容量
- [ ] ブラウザのバージョン
解説: モデルはパラメータ数に応じたメモリを必要とし、収まらなければ動きません。量子化された小さいモデルが使われるのはこのためです。

Q: 量子化されたモデルの説明として正しいものはどれ?
- [x] パラメータの精度を落として容量と速度を稼ぐ代わりに、精度はいくらか落ちる
- [ ] 学習データを圧縮したモデル
- [ ] 精度も速度も無条件に向上したモデル
解説: 量子化は容量・速度と精度のトレードオフです。手元のメモリに収めるための現実的な手段です。