Ollama は各種 LLM をローカルで手軽に動かせます。HTTP サーバーとして実装されているため、LLM を専用マシンに分離することも簡単です。
更新履歴
- 2025/10/18 GUI での設定方法を追記
アクセス制限
Ollama のデフォルトでは 127.0.0.1:11434 で待ち受けされるため、ローカルからのアクセスに制限されます。
11434 は llAMA (LLAMA) ということのようです。
WSL2 はホストとは別の IP アドレスを持っているため、Windows 側の Ollama に WSL2 から 127.0.0.1:11434 でアクセスすることはできません。
GUI
他のマシンから接続を受け付けるには、GUI の Settings から設定します。
(セキュリティ環境がデフォルトであれば)Windows ファイアーウォールから確認を求められるため、許可します。
環境変数
GUI で設定できるようになる以前の設定方法です。
外部からのアクセスを許可するには環境変数 OLLAMA_HOST と OLLAMA_ORIGINS を設定します。👉FAQ
OLLAMA_HOST=0.0.0.0
OLLAMA_ORIGINS=192.168.0.*
※ 127.0.0.1 と 0.0.0.0 の違いについては以下の記事が参考になります。
クライアント
OLLAMA_HOST はサーバーだけでなく、クライアントにも影響します。
OLLAMA_HOST が設定されていない、または自ホストが指定されている場合、ollama コマンドを実行すると、サーバーが起動していなければ自動的に起動します。一方、他のホストが設定されている場合は、指定されたホストに接続しようとしますが、起動していなければ失敗します。
ライブラリ
Python からアクセスするための公式ライブラリがあります。
OLLAMA_HOST が設定されていれば、自動的にそちらに接続します。
import ollama
ollama.generate(model="gemma2:2b", prompt="Who are you?")
LangChain
汎用的な LLM ライブラリである LangChain でも Ollama はサポートされています。
ただし LangChain では OLLAMA_HOST は参照されないため、別マシンにアクセスするには base_url を指定する必要があります。
from langchain_community.llms import Ollama
llm = Ollama(base_url="http://192.168.0.11:11434", model="gemma2:2b")
llm.invoke("Who are you?")
参考
ローカル LLM の構築は手間が掛かりそうなので敬遠していましたが、Ollama はあっさり動きました。型落ちのノート PC (Core i5-3320M) でも、gemma:2b は 5tps くらいは出るので驚きました(gemma2:2b も同程度)。Ollama と Gemma の組み合わせは私にとって画期的でした。
