はじめに
サーバー・クライアント方式で動作するOllmaを利用。サーバー側でモデルのロードと推論を実行し、クライアント側でコマンドラインインターフェースの「ollama run」を使って、ローカルLLM環境を構築する。 1台のマシン上で完結する(サーバーとクライアントが同一)場合の基本的な利用の流れの備忘録。
# サーバーの起動(デーモン) $ ollama serve # クライアントからモデルを実行 $ ollama run llama2
検証環境
- Dockerコンテナー(nvidia/cuda:12.6.2-devel-ubuntu24.04)
- ollama version is 0.3.14
手順1. Ollmaのインストール
Ollamaの公式サイトにアクセスしてインストール方法を確認
Linunxでインストーラーのダウンロードとインストールをワンライナーで実行。
$ curl -fsSL https://ollama.com/install.sh | sudo sh
手順2. Ollamaサーバーの起動
インストール後、サーバーを起動。デフォルトはlocalhostからのみにアクセス制限されており、リモートホストからのリクエストを受け付ける場合や、サービスポートを変更する場合は、追加設定(環境変数OLLAMA_HOST/OLLAMA_ORIGINS)が必要。
# 通常 $ ollama serve # バックグラウンドとログをファイルに出力 $ ollama serve >> ./ollama.log 2>&1 &
手順3. モデルのダウンロードとデプロイ
サーバーを起動したターミナルとは別のターミナルを開いて、クライアントコマンドを実行して、モデルのダウンロードとデプロイを実行。引数にモデル名を指定。Command R+を利用する場合は次の通り。
$ ollama pull command-r-plus
pull可能なモデルはこちらで確認。 ollama.com
モデルがデプロイされているか確認。
$ ollama list NAME ID SIZE MODIFIED llama3:latest 365c0bd3c000 4.7 GB 4 days ago elyza-llama-2-7b:latest b81eec55515b 4.1 GB 4 days ago command-r-plus:latest e61b6b184f38 59 GB 5 days ago
手順4. 対話モード開始
$ ollama run command-r-plus >>> Send a message (/? for help) # 終了 >>> /bye
プロンプト「>>>」に続けて指示文を入力。なお、引数に指示文を指定することも可能
$ ollama run command-r-plus 日本の首都はどこにある? 東京です。東京都の中央に位置するのは新宿区で、人口は2019年5月時点で34万6千人ほどとなります。
補足 GGUF形式のモデルファイルをインポートする方法
Ollamaは、リポジトリーからモデルをダウンロードできるほか、ローカルにあるモデルのインポートも可能。GGUF形式のモデルファイル(ELYZA-japanese-Llama-2-7b-instruct-q4_K_M.gguf)をインポートするには、
1. Modefileを以下の内容で作成
FROM ./ELYZA-japanese-Llama-2-7b-instruct-q4_K_M.gguf
2. モデルのインポート
$ ollama create elyza-llama-2-7b -f Modelfile transferring model data 100% using existing layer sha256:e01fd5cfd8517e75e8b95ed6cb621f0c3651d0ee9f302cb5abf6147d6c636610 creating new layer sha256:ef8b079672c32053a61b8f95ee17ba47dce3624f561910d96d1f3de6ce6b45f3 writing manifest success
3. インポートに成功しているか確認
$ ollama list NAME ID SIZE MODIFIED elyza-llama-2-7b:latest b81eec55515b 4.1 GB 13 seconds ago command-r-plus:latest e61b6b184f38 59 GB 8 hours ago