- はじめに
- Ollamaとは
- Ollamaをインストールする
- モデルをダウンロードする
- モデル名とタグについて
- モデルを実行する
- ローカルLLMをAPIとして使う
- Ollama独自API
- OpenAI API互換API
- Ollamaの内部では何が動いているのか
- GGUFとは
- 量子化とは
- Ollama用の独自モデルを作る
- 作業ディレクトリを作る
- llama.cppを取得する
- Python仮想環境を作る
- llama.cppの依存パッケージを入れる
- Hugging FaceモデルをGGUFに変換する
- モデルを量子化する
- Modelfileを作る
- Ollamaにモデルを登録する
- 作成したモデルを実行する
- よくあるつまずき
- ライセンスには注意する
- まとめ
はじめに
最近はChatGPTのようなクラウド上のLLMを使う機会が増えましたが、LLMは自分のPC上でも動かすことができます。
ローカルでLLMを動かすと、次のようなメリットがあります。
- インターネット接続がなくても使える
- 入力した内容を外部サービスへ送らずに済む
- モデルやパラメータを自分で調整できる
- APIサーバーとして使い、自作アプリから呼び出せる
そのために便利なのが Ollama です。
Ollamaは、ローカル環境でLLMを簡単に扱うためのツールです。
モデルのダウンロード、実行、API経由での利用、独自モデルの作成などを、かなり少ないコマンドで行えます。
この記事では、Ollamaを初めて触る人向けに、インストールからモデル実行、API利用、さらにGGUFモデルを使った独自モデル作成までを順番に説明します。
Ollamaとは
Ollamaは、LLMをローカルPCで動かすための実行環境です。
イメージとしては、Dockerがコンテナを扱うように、OllamaはLLMのモデルを扱います。
たとえば、モデルを取得する場合は次のようにします。
ollama pull gemma3:4b
実行する場合は次のようにします。
ollama run gemma3:4b
モデル名を指定するだけで、必要なファイルの取得や実行をOllamaが面倒を見てくれます。
Ollamaをインストールする
Ollamaは次のOSで利用できます。
- Windows
- macOS
- Linux
まずは公式サイトからインストーラーをダウンロードします。

インストール後、ターミナルまたはPowerShellで次のコマンドを実行してみます。
ollama --version
バージョン情報が表示されれば準備完了です。
Windowsの場合は、インストール後にOllamaがバックグラウンドで起動していることがあります。
うまく動かない場合は、一度PCを再起動するか、Ollamaアプリを起動してから再度コマンドを試してください。
モデルをダウンロードする
Ollamaでは、モデルを次の形式で指定します。
モデル名:タグ
たとえば、Gemma 3の4Bモデルを使う場合は次のようになります。
gemma3:4b
4b は、おおよそ40億パラメータ規模のモデルであることを表しています。
モデルをダウンロードするには、次のコマンドを使います。
ollama pull gemma3:4b
初回はモデル本体をダウンロードするため、回線速度やモデルサイズによって時間がかかります。
モデル一覧はOllamaのライブラリページから確認できます。
モデル名とタグについて
Ollamaのモデルにはタグがあります。
たとえば次のような形式です。
gemma3:4b qwen3:0.6b llama3.2:3b
タグを省略した場合、多くのモデルでは latest が使われます。
つまり、次のコマンドは、
ollama pull gemma3
実質的には次のような意味になります。
ollama pull gemma3:latest
ただし、latest は将来的に中身が変わる可能性があります。
再現性を重視する場合は、できるだけ明示的にタグを指定したほうが安心です。
モデルを実行する
モデルをダウンロードしたら、次のコマンドでチャットを開始できます。
ollama run gemma3:4b
実行すると、ターミナル上でプロンプト入力ができるようになります。
たとえば次のように入力できます。
日本語で、Ollamaとは何かを初心者向けに説明してください。
終了したい場合は、通常は次のように入力します。
/bye
または Ctrl + D で終了できる環境もあります。
もしまだダウンロードしていないモデルを ollama run した場合、Ollamaは自動的にモデルを取得してから起動します。
ローカルLLMをAPIとして使う
Ollamaの便利な点は、コマンドラインだけでなくAPIからも使えることです。
Ollamaには大きく分けて2種類のAPIがあります。
- Ollama独自API
- OpenAI API互換API
Ollama独自API
Ollama本来のAPIを使うと、チャット生成、通常のテキスト生成、モデル一覧取得などができます。
Ollamaが起動している状態で、通常は次のURLでAPIサーバーが動いています。
http://localhost:11434
たとえば、チャット形式で問い合わせる場合は次のようにできます。
curl http://localhost:11434/api/chat -d '{ "model": "gemma3:4b", "messages": [ { "role": "user", "content": "Ollamaについて短く説明してください" } ] }'
Windows PowerShellの場合、引用符の扱いが少し面倒なので、うまくいかない場合はPythonやJavaScriptのライブラリを使うほうが楽です。
Pythonから使う場合は、Ollama公式のPythonパッケージを使えます。
pip install ollama
簡単な例は次の通りです。
import ollama response = ollama.chat( model="gemma3:4b", messages=[ { "role": "user", "content": "ローカルLLMのメリットを3つ教えてください" } ] ) print(response["message"]["content"])
OpenAI API互換API
OllamaはOpenAI APIと似た形式のAPIにも対応しています。
そのため、OpenAI API向けに作られたツールやライブラリの一部を、Ollamaに向けて使える場合があります。
エンドポイントは次のようになります。
http://localhost:11434/v1
PythonのOpenAI SDKを使う例です。
pip install openai
from openai import OpenAI client = OpenAI( base_url="http://localhost:11434/v1", api_key="ollama" ) response = client.chat.completions.create( model="gemma3:4b", messages=[ { "role": "user", "content": "Ollamaを使う利点を初心者向けに説明してください" } ] ) print(response.choices[0].message.content)
api_key はOllamaでは実際には認証に使われませんが、OpenAI SDK側で必須になるため適当な文字列を入れています。
注意点として、OpenAI互換APIではOllama独自の細かい設定をすべて扱えるわけではありません。
コンテキスト長などを細かく指定したい場合は、Ollama APIやModelfileを使うほうが扱いやすいです。
Ollamaの内部では何が動いているのか
Ollamaの裏側では、主に llama.cpp が使われています。
llama.cppはC++で書かれた軽量なLLM推論エンジンです。
GPUがない環境でもCPUで動かせることがあり、ローカルLLM界隈では非常によく使われています。
Ollama自体はGoで書かれていますが、実際の推論処理ではllama.cppを活用しています。
GGUFとは
ローカルLLMを調べていると、よく GGUF という形式を見かけます。
GGUFは、llama.cppで使われるモデルファイル形式です。
Hugging Faceで配布されているモデルは、重み、トークナイザー、設定ファイルなどが複数ファイルに分かれていることが多いです。
一方、GGUFではそれらの情報を1つのファイルにまとめて扱えます。
そのため、ローカルでモデルを配布したり、Ollamaに読み込ませたりする際に便利です。
量子化とは
LLMはサイズが大きいため、そのままではメモリを大量に使います。
そこでよく使われるのが 量子化 です。
量子化とは、モデルの重みをより軽い形式に変換して、ファイルサイズやメモリ使用量を減らす技術です。
たとえば、BF16のモデルをQ4_K_Mのような形式に変換すると、精度をある程度保ちながら軽量化できます。
ざっくり言うと、次のようなイメージです。
- BF16: 高精度だが重い
- Q8系: 比較的高品質でやや軽い
- Q4系: かなり軽く、実用性も高い
- Q2/Q3系: とても軽いが品質低下が目立つ場合がある
初心者が最初に試すなら、Q4_K_M あたりが扱いやすいです。
Ollama用の独自モデルを作る
ここからは少し発展編です。
Hugging Face上のモデルをGGUFに変換し、それをOllamaで使えるモデルとして登録してみます。
今回は軽量なモデルとして、Qwen系の小さなモデルを例にします。
作業の流れは次の通りです。
- 作業ディレクトリを作る
- llama.cppを取得する
- Python仮想環境を作る
- 必要なPythonパッケージを入れる
- Hugging FaceモデルをGGUFに変換する
- 必要に応じて量子化する
- Modelfileを書く
- ollama create でモデルを登録する
- ollama run で実行する
作業ディレクトリを作る
まず、作業用フォルダを作ります。
mkdir work cd work
Windows PowerShellでも同じコマンドで問題ありません。
llama.cppを取得する
次に、llama.cppのリポジトリをcloneします。
git clone https://github.com/ggml-org/llama.cpp.git
Gitが入っていない場合は、先にGitをインストールしてください。
git --version
でバージョンが表示されればGitは利用できます。
Python仮想環境を作る
Pythonの依存関係を作業用に分けるため、仮想環境を作ります。
macOSやLinuxの場合は次のようにします。
python3 -m venv venv source venv/bin/activate
Windows PowerShellの場合は次のようにします。
python -m venv venv .\venv\Scripts\Activate.ps1
もしPowerShellで実行ポリシーのエラーが出た場合は、次のように一時的に許可します。
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass .\venv\Scripts\Activate.ps1
仮想環境が有効になると、プロンプトの先頭に次のような表示が出ることがあります。
(venv)
llama.cppの依存パッケージを入れる
次に、llama.cppに含まれるPythonスクリプト用の依存関係をインストールします。
pip install -r llama.cpp/requirements.txt
ここでエラーが出る場合は、Pythonやpipのバージョンが古い可能性があります。
確認コマンドは次の通りです。
python --version pip --version
Hugging FaceモデルをGGUFに変換する
llama.cppには、Hugging Face形式のモデルをGGUFに変換するスクリプトが含まれています。
使うスクリプトは次のファイルです。
llama.cpp/convert_hf_to_gguf.py
たとえば、Qwen/Qwen3-0.6BをGGUFに変換する場合は次のようにします。
python llama.cpp/convert_hf_to_gguf.py \ --remote \ --outtype bf16 \ --outfile qwen3-0.6b-bf16.gguf \ Qwen/Qwen3-0.6B
Windows PowerShellでは、改行の書き方が違います。
1行で書くなら次のようになります。
python llama.cpp/convert_hf_to_gguf.py --remote --outtype bf16 --outfile qwen3-0.6b-bf16.gguf Qwen/Qwen3-0.6B
–remote を付けると、Hugging Faceからモデルを取得しながら変換できます。
主なオプションの意味は次の通りです。
--remote Hugging Faceからモデルを取得する --outtype bf16 出力形式をBF16にする --outfile qwen3-0.6b-bf16.gguf 出力ファイル名を指定する Qwen/Qwen3-0.6B 変換したいHugging Face上のモデルID
変換が完了すると、次のようなファイルが作られます。
qwen3-0.6b-bf16.gguf
モデルを量子化する
BF16のままだとファイルサイズやメモリ使用量が大きめです。
軽く使いたい場合は量子化します。
量子化にはllama.cppの llama-quantize を使います。
llama.cppを自分でビルドしてもよいですが、初心者の場合はリリースページからビルド済みファイルをダウンロードするほうが簡単です。
OSに合ったzipファイルをダウンロードし、展開します。
展開したフォルダに llama-quantize または llama-quantize.exe が含まれていることを確認します。
量子化コマンドは次のようになります。
llama-quantize qwen3-0.6b-bf16.gguf qwen3-0.6b-Q4_K_M.gguf Q4_K_M
Windowsでカレントディレクトリに llama-quantize.exe がある場合は、次のように実行します。
.\llama-quantize.exe qwen3-0.6b-bf16.gguf qwen3-0.6b-Q4_K_M.gguf Q4_K_M
成功すると、量子化済みのGGUFファイルが作られます。
qwen3-0.6b-Q4_K_M.gguf
Modelfileを作る
Ollamaで独自モデルを作るには、Modelfile という設定ファイルを使います。
Dockerでいう Dockerfile のようなものです。
作業ディレクトリに Modelfile という名前のファイルを作成します。
内容は次のようにします。
FROM ./qwen3-0.6b-Q4_K_M.gguf PARAMETER num_ctx 32768 PARAMETER temperature 1
それぞれの意味は次の通りです。
FROM 元にするモデルファイルを指定する PARAMETER num_ctx コンテキスト長を指定する PARAMETER temperature 出力のランダム性を指定する
temperature は値が高いほど出力が多様になり、低いほど安定した返答になりやすいです。
Ollamaにモデルを登録する
Modelfile ができたら、Ollamaにモデルとして登録します。
ollama create my/qwen3:0.6b
このコマンドは、カレントディレクトリにある Modelfile を自動的に読み込みます。
もしファイル名を変えている場合は、-f オプションで指定します。
ollama create my/qwen3:0.6b -f ./MyModelfile
登録できたか確認するには、次のコマンドを使います。
ollama list
一覧に my/qwen3:0.6b が表示されれば成功です。
作成したモデルを実行する
登録したモデルは、通常のOllamaモデルと同じように実行できます。
ollama run my/qwen3:0.6b
たとえば次のように聞いてみます。
あなたは日本語で回答するアシスタントです。Ollamaについて簡単に説明してください。
問題なく返答が返ってくれば、自作Modelfileによるモデル作成は成功です。
よくあるつまずき
メモリ不足になる
大きいモデルを使うと、PCのメモリやVRAMが足りないことがあります。
その場合は、より小さいモデルを使うか、量子化済みモデルを選びます。
初心者はまず、0.5Bから4B程度のモデルで試すのがおすすめです。
ダウンロードが遅い
モデルファイルは数GBになることがあります。
回線が遅い場合は時間がかかるため、安定したネットワークで実行してください。
ollama コマンドが見つからない
インストール後にターミナルを開き直してください。
それでも見つからない場合は、OllamaがPATHに追加されていない可能性があります。
Windowsでは、再起動すると解決することがあります。
GGUF変換でエラーが出る
よくある原因は次の通りです。
- Pythonのバージョンが古い
- pip install -r requirements.txt が失敗している
- Hugging FaceのモデルIDが間違っている
- ディスク容量が足りない
- 対象モデルが変換スクリプトに対応していない
まずはエラーメッセージを確認し、依存関係とモデルIDを見直すとよいです。
ライセンスには注意する
ローカルLLMは手軽に使えますが、モデルごとにライセンスが異なります。
特に次のような用途では、必ずモデルカードやライセンスを確認してください。
- 商用サービスで使う
- 社内ツールに組み込む
- モデルを再配布する
- 生成結果を業務利用する
「ローカルで動く」ことと「自由に使ってよい」ことは別です。
個人の学習や検証では問題ない場合が多いですが、業務利用ではライセンス確認が必須です。
まとめ
Ollamaを使うと、ローカル環境でLLMをかなり簡単に扱えます。
基本的な流れはとてもシンプルです。
ollama pull モデル名 ollama run モデル名
さらにAPIを使えば、自作アプリからローカルLLMを呼び出すこともできます。
また、GGUFファイルとModelfileを使えば、自分で用意したモデルをOllamaに登録して実行できます。
最初は既存モデルを動かすだけで十分です。
慣れてきたら、量子化、Modelfile、API連携と少しずつ試していくと、ローカルLLMの仕組みがかなり見えてくるはずです。


