つるながの綴り方

ITインフラ系のネタやTips、趣味としているカーライフなどを中心に日頃メモしておきたいことをしたためています。

Ollma: ローカル環境で簡単に大規模言語モデルを実行の備忘録(自分用)

はじめに

サーバー・クライアント方式で動作する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の公式サイトにアクセスしてインストール方法を確認

ollama.com

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 日本の首都はどこにある?
東京です。東京都の中央に位置するのは新宿区で、人口は20195月時点で346千人ほどとなります。

補足 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