Ollama: ローカルPCでLLMを動かしてみる!

Ollamaは、ローカルPCでオープンソースの大規模言語モデル(LLM)を簡単に利用できる、非常に魅力的なツールです。今回は、Windows環境にOllamaを導入し、LLMを利用する方法について紹介します。

Ollamaをインストール

まず、公式のダウンロードページに行き、Ollamaのインストーラーをダウンロードします。ダウンロードしたインストーラを実行すると、以下のような画面が表示されるので、[Install]ボタンをクリックします。

LLMを使ってみる

Ollamaのインストールが終わったら、PowerShellを起動します。今回は、メタ社が開発した Llama 3.1 を使ってみたいと思います。

以下のように、ollama run llama3.1 と入力してコマンドを実行すると、モデルのダウンロードが始まります。

ダウンロードが終了すると、自動でモデルが実行されますので、プロンプトに適当に入力してみます。

実行結果を見ると、自然な日本語が生成されていることを確認できます。また、内容についても不自然回答にはなっていません。なお、終了する場合は、プロンプトに /exit と入力して実行してください。

Ollamaのコマンドには、上記以外にもいくつか用意されているのでヘルプで確認してみてください。

OllamaでサポートしているLLM

Ollamaで利用できるLLMのモデルについては公式ページを確認してください。以下に、代表的なモデルをまとめます。

ModelParametersSizeDownload
Llama 3.18B4.7GBollama run llama3.1
Llama 3.170B40GBollama run llama3.1:70b
Llama 3.1405B231GBollama run llama3.1:405b
Phi 3 Mini3.8B2.3GBollama run phi3
Phi 3 Medium14B7.9GBollama run phi3:medium
Gemma 22B1.6GBollama run gemma2:2b
Gemma 29B5.5GBollama run gemma2
Gemma 227B16GBollama run gemma2:27b
Mistral7B4.1GBollama run mistral
Moondream 21.4B829MBollama run moondream
Neural Chat7B4.1GBollama run neural-chat
Starling7B4.1GBollama run starling-lm
Code Llama7B3.8GBollama run codellama
Llama 2 Uncensored7B3.8GBollama run llama2-uncensored
LLaVA7B4.5GBollama run llava
Solar10.7B6.1GBollama run solar

Ollamaをサーバーとして利用する

ollama-pythonというPythonパッケージを利用することで、PythonからOllamaのLLMを利用することができます。次のようにpipコマンドで簡単にインストールできます。

$ pip install ollama

OllamaのLLMを利用するPythonコードは次のようになります。

from ollama import Client

if __name__ == "__main__":
    client = Client(host="http://localhost:11434")

    response = client.chat(model="llama3.1", messages=[{
        "role": "user",
        "content": "深層学習のアーキテクチャの1つであるTransformerとはどのようなものですか?",
      },]
    )

    print(response["message"]["content"])

Ollamaはデフォルトで、127.0.0.1:11434で待ち受けされるようです。ポート番号を変更する際は、環境変数OLLAMA_HOSTを設定する必要があるようです。また、外部環境からのリクエストに応答する際は、以下の環境変数を設定するようです。

OLLAMA_HOST=0.0.0.0
OLLAMA_ORIGINS=192.168.0.*

通常、ローカル環境でLLMを動かす場合、構築に手間がかかりますが、Ollamaを利用することで簡単に導入できます。現時点では、ChatGPTなどのLLMベンダーが用意したモデルを利用するのが一般的ですが、最近オープンソースのLLMにも注目が集まっています。モデルのファインチューニング等が不要であれば、Ollamaを利用するのも選択肢に入りそうです。