メインコンテンツまでスキップ

Ollama でローカルに AI モデルを動かす

中級

フロンティアモデルはクラウド上にありますが、まるごと一群のオープンウェイトモデル — Llama、Mistral、Qwen、DeepSeek、Gemma — は、ダウンロードして自分のノートパソコンやサーバー上で動かせます。Ollama はそれを最もシンプルに実現する方法です。インストール 1 回、コマンド 1 つで、モデルがローカルで動き出します。このページでは、ゼロから動くモデルへ、コードからの呼び出しへ、そしてトレードオフの理解へと進み、7B のローカルモデルにフロンティアモデルと同じ振る舞いを期待してしまわないようにします。

What you'll learn
  • なぜモデルをローカルで動かすのか — そしてクラウドのフロンティアモデルとの正直なトレードオフを知る
  • Ollama をインストールし、2 つのコマンドで最初のモデルを動かす
  • 中核となる CLI を使う: pull、run、list、ps、rm、stop
  • Ollama の OpenAI 互換 API 経由で、コードからローカルモデルを呼び出す
  • RAM 要件、モデルサイズ、量子化を理解する — 自分のマシンで実際に動かせるモデルを選べるように
  • LM Studio(GUI)の方が良い出発点となるのはいつかを知る

なぜモデルをローカルで動かすのか(そして動かさない方がよいのはいつか)

自分のハードウェア上でモデルを動かすことで、4 つのものが手に入ります。

  • プライバシー — プロンプトとデータがマシンの外に出ません。規制された分野や機密性の高い分野のチームがローカルモデルに手を伸ばす理由です。(プライバシー/セルフホストの分岐については モデルの選び方 を参照。)
  • オフライン — インターネット不要、API 不要、障害への依存なし。モデルはディスク上の 1 つのファイルです。
  • コスト — トークン単位の請求がありません。一度ダウンロードしてしまえば、実行は「無料」です(API 課金ではなく、電気代とハードウェアで支払います)。大規模での制約が トークン支出 であるなら、ローカルが勝てます。
  • コントロール — 正確なバージョンを固定し、振る舞いをカスタマイズし、レート制限や利用規約のサプライズなしで統合できます。

正直なトレードオフ:

  • 能力の差。 ノートパソコンで動かせるモデル(1B〜14B パラメータ)は、難しい推論、長コンテキスト、エージェント的タスクにおいて、フロンティアクラウドモデルと同じ土俵にはいません。多くの日常的タスクでは差は小さいですが、最も難しいものでは差は大きくなります。
  • ハードウェア。 より大きく、より高性能なモデルは、一般的なマシンが持つよりも多くの RAM/VRAM を必要とします。最良のモデルではなく、自分のハードウェアで動かせる最大のモデル を選ぶことになりがちです。
  • 自分で運用する。 マネージドなスケーリングも自動アップグレードもありません — それがコントロールの代償です。

よくある、長続きするパターン: 小さな eval でプロトタイプして選ぶ(クラウドモデルと同じ手法 — モデルの選び方 を参照)、プライベート/オフライン/大規模で安価な作業にはローカルを使い、タスクが本当に追加の能力を必要とするときにフロンティア API に手を伸ばします。

Ollama をインストールして最初のモデルを動かす

Guided walkthrough1 of 4
  1. macOS と Windows: ollama.com/download からインストーラーをダウンロードして実行します。Linux: 公式インストールスクリプト(下記)を使います。これにより ollama コマンドとローカルのバックグラウンドサービスがインストールされます。

Linux のインストール(macOS/Windows は代わりにダウンロードしたインストーラーを使います):

curl -fsSL https://ollama.com/install.sh | sh

小さなモデルを pull して実行する(最初の選択として良い)

ollama run llama3.2

この 1 つのコマンドで、llama3.2(控えめなハードウェアで動く小さな 1B/3B クラスのモデル)をダウンロードし、同時にインタラクティブなチャットを開始します。まだチャットせずにダウンロードだけしたい場合は、代わりに ollama pull を使います。

中核となる CLI

ひと握りのコマンドで、ほぼすべてをカバーできます。完全な一覧は ollama --help を実行してください。

# チャットを開始せずにモデルをダウンロードする
ollama pull qwen3

# インタラクティブなチャットを開始する(必要なら先にダウンロード)
ollama run qwen3

# ワンショット: プロンプトをインラインで渡し、答えを得て、終了する
ollama run qwen3 "Summarize the CAP theorem in two sentences."

# ダウンロード済みのモデルを一覧表示する
ollama list

# 現在メモリにロードされているモデルを表示する
ollama ps

# 実行中/ロード済みのモデルを停止する(メモリを解放)
ollama stop qwen3

# ダウンロード済みのモデルを削除してディスクを取り戻す
ollama rm qwen3

インタラクティブな ollama run セッションの中では、/bye と入力すると終了し、/? でセッション内コマンドを確認できます。実際にモデルを提供するバックグラウンドサービスは ollama serve で起動します(デスクトップアプリが自動的に起動してくれます)。

コードから呼び出す(OpenAI 互換 API)

これこそ、ローカルモデルをアプリの中で本当に役立たせる部分です。Ollama のバックグラウンドサービスは、デフォルトポート 11434 上の http://localhost:11434 でローカル HTTP API を公開します。独自のネイティブエンドポイント(/api/generate/api/chatに加えて/v1OpenAI 互換レイヤーを持ちます — そのため、OpenAI SDK 向けに書かれたほとんどのコードは、2 行変えるだけでローカルモデルに対して動作します。

curl による生の HTTP(ネイティブエンドポイント):

curl http://localhost:11434/api/chat -d '{
"model": "llama3.2",
"messages": [
{ "role": "user", "content": "Why is the sky blue?" }
],
"stream": false
}'

公式 OpenAI SDK を使った Python から — base_url を Ollama に向け、空でない任意の api_key を渡すだけです(Ollama はそのフィールドを要求しますが、値は無視します):

from openai import OpenAI

client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama", # required by the SDK, ignored by Ollama
)

response = client.chat.completions.create(
model="llama3.2",
messages=[
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "Explain gradient descent in two sentences."},
],
)

print(response.choices[0].message.content)

OpenAI 互換であるため、ホスト型 API に対して使うのと同じパターンがそのまま引き継がれます — ストリーミングや ツール使用 / 関数呼び出し も含めて、これらはクラウドと同じようにローカルでも動作します(モデルが実際にそれを得意としていることが条件です)。Ollama の /v1 レイヤーは、とりわけ /v1/chat/completions/v1/completions/v1/models/v1/embeddings をカバーします。

ハードウェア、モデルサイズ、量子化

モデルに付いている数字 — 1B、7B、8B、70B — は、そのパラメータ数(10 億単位)です。パラメータが多いほど、一般により高性能であり、なおかつよりメモリを消費します。何を動かせるかの実際的な上限は RAM(そして GPU では VRAM)です。

量子化は、これを通常のマシンで実現可能にする鍵となるトリックです。モデルの重みは元々高精度(例: 16 ビット)で保存されていますが、わずかな、しばしばほとんど気づかない品質コストで約 4 ビットに圧縮できます。Ollama はほとんどのモデルをデフォルトで量子化済みで配布します — だからこそ数十億のパラメータを持つモデルが数 GB に収まるのです。おおまかな目安(特定のモデルのページで確認してください):

  • 〜1B〜3B のモデル: ほとんどの最新ノートパソコンで快適に動作します(数 GB の RAM)。
  • 〜7B〜8B のモデル: 高性能かつ実行可能なスイートスポット。数 GB の空き RAM を見込んでください。
  • 〜13B〜14B のモデル: かなりスペックの高いマシンが必要です。
  • 〜70B 以上 のモデル: 大量の RAM か強力な GPU を備えたワークステーション/サーバーが必要 — 一般的なノートパソコンの領域ではありません。

実際的なレシピ: 小さなモデル(llama3.2)から始め、ワークフローをエンドツーエンドで確認してから、存在する最大のものではなく、自分のハードウェアでスムーズに動く最大のモデルまでサイズを上げていきます。

ローカルモデルの語彙
Enter キーまたはスペースキーでカードを裏返します。左右の矢印キーでカードを移動できます。用語を表示しました。
1 / 6

LM Studio: GUI の代替手段

コマンドラインが性に合わないなら、LM Studio はグラフィカルなインターフェースで同じ仕事をするデスクトップアプリ(macOS、Windows、Linux)です。オープンモデルを閲覧・ダウンロードし、組み込みの UI でチャットし、そして — Ollama と同様に — ローカルの OpenAI 互換サーバーを実行してコードがそれと会話できるようにします。非開発者や、ターミナルよりポイント&クリックを好む人にとっては、より簡単な入り口です。スクリプト可能な CLI と軽量なバックグラウンドサービスが欲しい場合は Ollama が勝つ傾向があります。どちらも同じ種類のオープンウェイトモデルを動かすので、このページの概念はそのまま当てはまります。

理解度チェック

0/4
  1. モデルをフロンティアクラウドモデルではなくローカルで動かすことの、単一で最大の正直なトレードオフは何ですか?
  2. (必要なら)モデルのダウンロードと、そのモデルとのチャット開始の両方を行うコマンドはどれですか?
  3. OpenAI SDK のコードからローカルモデルを呼び出すには、何を設定しますか?
  4. 数十億のパラメータを持つモデルが、わずか数 GB の RAM に収まるのはなぜですか?
Key takeaways
  • ローカル = プライバシー + オフライン + トークンあたりのコストなし + コントロール。トレードオフは実在する能力の差とハードウェアの制限。
  • 2 つのコマンドで動き出す: Ollama をインストールし、それから ollama run llama3.2。
  • 中核 CLI: pull(ダウンロード)、run(チャット)、list、ps、stop、rm — ほぼこれで全部。
  • OpenAI 互換エンドポイント経由でコードから呼び出す: base_url は http://localhost:11434/v1、空でない任意の api_key。
  • パラメータ数 + 量子化が、自分のマシンでモデルを動かせるかを決める — 小さく始めて、スムーズに動くものまでサイズを上げる。
  • GUI が好き? LM Studio はポイント&クリックで同じ仕事をこなし、ローカルの OpenAI 互換サーバーも公開します。

出典と参考資料

次へ