Ollama は各種 LLM をローカルで手軽に動かせます。HTTP サーバーとして実装されているため、LLM を専用マシンに分離することも簡単です。
デフォルトでは 127.0.0.1:11434
で待ち受けされるため、ローカルからのアクセスに制限されます。
WSL2 はホストとは別の IP アドレスを持っているため、Windows 側の Ollama に WSL2 から 127.0.0.1:11434
でアクセスすることはできません。
外部からのアクセスを許可するには環境変数 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
コマンドを実行すると、サーバーが存在しなければ自動的に起動されます。一方、他のホストが設定されている場合は、指定されたホストに接続しようとします。
LangChain
Python で Ollama にアクセスするには LangChain が便利です。
別マシンの Ollama へのアクセスは base_url
を指定します。
from langchain_community.llms import Ollama
llm = Ollama(base_url="http://192.168.0.11:11434", model="gemma:2b")
llm.invoke("Who are you?")
参考
ローカル LLM の構築は手間が掛かりそうなので敬遠していましたが、Ollama はあっさり動きました。gemma:2b
は型落ちのノート PC (Core i5) でも 5tps くらいは出るので驚きました。Ollama と Gemma の組み合わせは私にとって画期的でした。