ollama: 驚くほど簡単に使える、LLMランタイム環境!使い方とオプションを徹底解説

ollamaは、ローカルマシンで大型言語モデル(LLM)を簡単に実行できるパワフルなツールです。本記事では、ollamaの基本的な使い方から、コマンドラインオプション、環境変数まで詳しく解説していきます。これを読めば、ollamaを使いこなして、あなた自身のLLM環境を構築できるようになります。

ollamaとは?

ollamaは、LLMをローカル環境で効率よく実行するためのランタイム環境です。特徴は次のとおりです。

  • シンプルで使いやすい: コマンドラインインターフェースで、LLMの起動、停止、管理などが簡単に行えます。
  • 高速で効率的: 複数のGPUに対応し、高速な推論処理を実現します。
  • 柔軟性が高い: さまざまなLLMに対応し、カスタマイズも可能です。

Ollamaの環境構築について知りたい方はこちら

ollamaの基本操作

ollamaの基本的な操作方法を、コマンド例と共に解説します。

バージョン確認

ollamaのバージョン確認のためのコマンド

ollama -v

出力結果:

ollama version is 0.4.0

ヘルプ確認

ollamaのヘルプ確認のためのコマンド

ollama -h

出力結果:

Large language model runner

Usage:
  ollama [flags]
  ollama [command]

Available Commands:
  serve       Start ollama
  create      Create a model from a Modelfile
  show        Show information for a model
  run         Run a model
  stop        Stop a running model
  pull        Pull a model from a registry
  push        Push a model to a registry
  list        List models
  ps          List running models
  cp          Copy a model
  rm          Remove a model
  help        Help about any command

Flags:
  -h, --help      help for ollama
  -v, --version   Show version information

Use "ollama [command] --help" for more information about a command.

モデルリスト確認

インストール済みのモデルを確認するためのコマンド

ollama list

出力結果 (例):

NAME             ID              SIZE      MODIFIED
gemma2:latest    ff02c3702f32    5.4 GB    2 months ago

モデルの起動

モデルを起動するためのコマンド
※モデルが未インストールの場合インストール(pull)から実行されます。

ollamaで利用可能なモデルは、https://ollama.com/library から検索できます。

例えば、「llama3.2」というモデルを起動する場合、以下のコマンドを使用します。

ollama run llama3.2

出力結果 (例):

pulling manifest
pulling manifest
pulling dde5aa3fc5ff... 100% ▕████████████████████████████████████████████████████████▏ 2.0 GB
pulling 966de95ca8a6... 100% ▕████████████████████████████████████████████████████████▏ 1.4 KB
pulling fcc5a6bec9da... 100% ▕████████████████████████████████████████████████████████▏ 7.7 KB
pulling a70ff7e570d9... 100% ▕████████████████████████████████████████████████████████▏ 6.0 KB
pulling 56bb8bd477a5... 100% ▕████████████████████████████████████████████████████████▏   96 B
pulling 34bb5ab01051... 100% ▕████████████████████████████████████████████████████████▏  561 B
verifying sha256 digest
writing manifest
success
>>> Send a message (/? for help)

モデルのインストール

モデルをインストールするためのコマンド

ollama pull [モデル名]

例えば、「llama3.2-vision」というモデルをインストールする場合、以下のコマンドを使用します。

ollama pull llama3.2-vision

出力結果 (例):

pulling manifest
pulling manifest
pulling 11f274007f09... 100% ▕███████████████████████████████████████████████████████████████████████████▏ 6.0 GB
pulling ece5e659647a... 100% ▕███████████████████████████████████████████████████████████████████████████▏ 1.9 GB
pulling 715415638c9c... 100% ▕███████████████████████████████████████████████████████████████████████████▏  269 B
pulling 0b4284c1f870... 100% ▕███████████████████████████████████████████████████████████████████████████▏ 7.7 KB
pulling fefc914e46e6... 100% ▕███████████████████████████████████████████████████████████████████████████▏   32 B
pulling fbd313562bb7... 100% ▕███████████████████████████████████████████████████████████████████████████▏  572 B
verifying sha256 digest
writing manifest
success

モデルの停止

動作中のモデルを停止するためのコマンド

ollama stop [モデル名]

例えば、「llama3.2」というモデルを停止する場合、以下のコマンドを使用します。

ollama stop llama3.2

出力結果: 特に何も出力されません。

起動中のモデルリスト確認

起動中のモデルのリスト取得コマンド

ollama ps

出力結果 (例):

NAME               ID              SIZE      PROCESSOR    UNTIL
llama3.2:latest    a80c4f17acd5    3.5 GB    100% CPU     4 minutes from now

モデル情報確認

モデルの情報を取得するためのコマンド

ollama show [モデル名]

例えば、「llama3.2-vision」というモデルの情報を確認する場合、以下のコマンドを使用します。

ollama show llama3.2-vision

出力結果 (例):

Model
    architecture        mllama
    parameters          9.8B
    context length      131072
    embedding length    4096
    quantization        Q4_K_M

  Projector
    architecture        mllama
    parameters          895.03M
    embedding length    1280
    dimensions          4096

  Parameters
    temperature    0.6
    top_p          0.9

  License
    LLAMA 3.2 COMMUNITY LICENSE AGREEMENT
    Llama 3.2 Version Release Date: September 25, 2024

ollamaのオプション・コマンド一覧

ollamaが持つオプション・コマンドの一覧はこちらです。

主要なオプション:

オプション説明
-h, –helpヘルプを表示します。
-v, –versionバージョン情報を表示します。

主要なコマンド:

コマンド説明
serveollamaサーバーを起動します。
createModelfileからモデルを作成します。
showモデルの情報を表示します。
runモデルを実行します。
stop実行中のモデルを停止します。
pullモデルをレジストリから取得します。
pushモデルをレジストリに登録します。
listモデルの一覧を表示します。
ps実行中のモデルの一覧を表示します。
cpモデルをコピーします。
rmモデルを削除します。
help特定のコマンドに関するヘルプを表示します。

ollamaの環境変数一覧

ollamaのその他の動作は環境変数を用いて、動作をカスタマイズできます。
※環境変数はシステムに事前に設定する必要があります。
※ollamaのマニュアルに記載がなかったので、下記の環境変数は、ollamaのソースコード (https://github.com/ollama/ollama/blob/main/envconfig/config.go) から取得しました。

主要な環境変数:

環境変数説明
CUDA_VISIBLE_DEVICES使用可能なNVIDIA GPUのデバイスIDを指定します (例: CUDA_VISIBLE_DEVICES=0,1).
GPU_DEVICE_ORDINALAMD GPUのデバイスIDを指定します。
HIP_VISIBLE_DEVICESAMD GPUのデバイスIDを指定します。
HSA_OVERRIDE_GFX_VERSIONすべての検出されたAMD GPUで使用されるgfxをオーバーライドします。
HTTPS_PROXYHTTPSプロキシを設定します。
HTTP_PROXYHTTPプロキシを設定します。
NO_PROXYプロキシを適用しないドメインを指定します。
OLLAMA_DEBUGデバッグ情報を表示します (例: OLLAMA_DEBUG=1).
OLLAMA_FLASH_ATTENTIONフラッシュアテンションを有効化します。
OLLAMA_GPU_OVERHEADGPUごとに予約するVRAMの量を指定します (バイト単位).
OLLAMA_HOSTollamaサーバーのIPアドレスとポートを指定します (デフォルトは 127.0.0.1:11434).
OLLAMA_INTEL_GPU実験的なIntel GPU検出を有効化します。
OLLAMA_KEEP_ALIVEメモリにロードされたモデルを保持する期間を指定します (デフォルトは 5m).
OLLAMA_LLM_LIBRARYLLMライブラリを指定します (自動検出をバイパス).
OLLAMA_LOAD_TIMEOUTモデルのロードがタイムアウトするまでの時間を指定します (デフォルトは 5m).
OLLAMA_MAX_LOADED_MODELSGPUごとにロードされるモデルの最大数を指定します。
OLLAMA_MAX_QUEUEキューに入れられるリクエストの最大数を指定します。
OLLAMA_MODELSモデルディレクトリのパスを指定します。
OLLAMA_MULTIUSER_CACHEマルチユーザーシナリオにおけるプロンプトキャッシュを最適化します。
OLLAMA_NOHISTORYReadline履歴を保存しません。
OLLAMA_NOPRUNEスタートアップ時にモデルのblobを削除しません。
OLLAMA_NUM_PARALLEL並列リクエストの最大数を指定します。
OLLAMA_ORIGINS許可されるオリジンのリストを指定します (カンマ区切り).
OLLAMA_SCHED_SPREADすべてのGPUにモデルを常にスケジューリングします。
OLLAMA_TMPDIR一時ファイルの場所を指定します。
ROCR_VISIBLE_DEVICESUUIDまたは数値IDでAMD GPUのデバイスIDを指定します。

まとめ

ollamaは、ローカルマシンでLLMを簡単に利用するための強力なツールです。コマンドラインオプションや環境変数を活用することで、ollamaは様々なニーズに対応できる柔軟性を備えています。本記事の内容を参考に、ollamaを使ってあなた自身のLLM環境を構築してみてください。

Ollama+Langchainで簡易チャットボットの作成について知りたい方はこちら

Ollama+LangchainでWebの要約をしたい方はこちら

この記事が、あなたの役に立てば幸いです!

にいやん

出身 : 関西 居住区 : 関西 職業 : 組み込み機器エンジニア (エンジニア歴13年) 年齢 : 38歳(2022年11月現在) 最近 業務の効率化で噂もありPython言語に興味を持ち勉強しています。 そこで学んだことを記事にして皆さんとシェアさせていただければと思いブログをはじめました!! 興味ある記事があれば皆さん見ていってください!! にほんブログ村