言語を切り替える
テーマを切り替える

Ollama 入門:ローカルで大規模言語モデルを実行する第一歩

先月、私のOpenAI APIの請求額が300ドルを超えました。正直なところ、かなりショックでした。開発段階で頻繁にテストしていただけなのに、まさかこれほど費用が積み上がるとは思いもしませんでした。さらに悪いことに、扱っていたドキュメントには会社の内部データが含まれており、クラウドにアップロードするのはどうも気が進みません。その時、ローカル代替手段を探そうと決心しました。1週間いろいろなツールを試した結果、Ollamaが最も手間がかからないことがわかりました。

皆さんも同じような悩みに直面しているかもしれません。クラウドAIサービスの費用が高騰し、データプライバシーが心配、あるいはオフライン環境でAIを使う必要があるなど。Ollamaはこれらの問題を解決してくれます。自分のコンピュータで大規模言語モデルを実行できるのです。セットアップは数分で完了、完全に無料で、データはあなたのマシンから一切出ません。これから、私が経験した失敗と学んだことを共有しますので、皆さんの助けになれば幸いです。


Ollamaとは?

名前が少し紛らわしいかもしれません。Ollamaはモデルではなく、モデルを実行するツールです。Dockerがコンテナ化を簡単にしたように、Ollamaは大規模言語モデルのローカル実行を身近なものにしました。

簡単に言えば、Ollamaを使ってモデル(Llama 3.2など)をダウンロードすれば、自分のコンピュータでチャットしたり、コードを書かせたり、翻訳させたりできます。すべての推論はローカルで行われます。

なぜローカルモデルにこだわるのか?ChatGPTやClaudeのようなクラウドサービスですでに十分便利ではないか?

300+
USD

費用の問題。API呼び出しはトークン単位の課金で、開発段階での頻繁な呼び出しは驚くほど高い請求につながります。開発段階で1ヶ月に数百、数千ドル使った人を見たことがあります。

プライバシーの問題。すべての会話はクラウドサーバーにアップロードされます。会社のドキュメント、顧客データ、機密情報を扱う場合、コンプライアンス要件を満たさない可能性があります。

ネットワーク依存。オンラインである必要があります。接続が不安定だと体験が悪く、完全にオフラインのシナリオでは使用できません。

制限の問題。クラウドAPIには様々な制限があります。レート制限、クォータ制限、機能制限…テストしたいだけなのにブロックされてイライラすることもあります。

Ollamaはこれらすべての課題に対応します。モデルがコンピュータにダウンロードされれば、推論は完全にローカルで行われます。オフラインで動作し、データはマシンから出ず、API料金も使用制限もありません。

開発者にとって、Ollamaには追加の価値があります。完全なAPIを提供し、OpenAIのインターフェース形式と互換性があります。つまり、開発中はローカルモデルでテストして費用を節約し、本番環境ではクラウドAPIに切り替えることができます。非常に柔軟です。


Ollamaのインストール:3つの簡単ステップ

インストールは非常に簡単です。プラットフォームによって若干の違いはありますが、数分で始められます。

Linux(最も推奨)

Linuxを使用している場合、1つのコマンドで完了します:

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

これを実行するだけで、Ollamaがインストールされ、サービスが自動的に開始されます。

正直なところ、Linuxが最もお勧めのプラットフォームです。サーバーデプロイ、コンテナ化など、Linuxはすべて完璧にサポートしています。本番環境でOllamaを使用する予定があるなら、Linuxが良い選択です。

手動インストールも可能ですが、初心者にはお勧めしません。どうしても必要な場合は、バイナリをダウンロードしてsystemdサービスを自分で設定できます。詳細な手順は調査ノートに記載しましたが、ここでは省略します。

macOS(ユーザーフレンドリーなGUI)

macOSでは2つの方法があります。

Homebrewを使用する場合:

brew install ollama

インストール後、ollama serveで直接起動するか、brew services start ollamaでバックグラウンドで実行できます。

Homebrewを使いたくない場合は、Webサイトから.pkgインストーラーをダウンロードしてダブルクリックするだけです。Macユーザーにはおなじみのインストール方法です。

ヒント:Apple Silicon(M1/M2/M3)のMacはMetal GPU加速が自動的に有効になり、パフォーマンスはかなり良好です。私のM2 MacBook Proは8Bモデルをスムーズに実行し、13Bモデルも動作します(メモリ使用量は高めですが)。

Windows(wingetが最も便利)

Windowsユーザーはwingetを使用できます:

winget install --id=Ollama.Ollama -e

または、Webサイトから.exeインストーラーを直接ダウンロードします。インストール後、Ollamaは自動的に起動し、システムトレイに表示されます。

インストールの確認:

ollama --version

バージョン番号が表示されればOKです。簡単でしょう?


最初のモデルを実行する

Ollamaがインストールされたら、モデルを実行してみましょう。

まず、モデルを選びます。初心者にはllama3.2またはqwen:8bをお勧めします。前者はMetaの最新モデルで全体的な性能が良く、後者はQwenで中国語の理解に優れています。

実行:

ollama run llama3.2

このコマンドはモデルを自動的にダウンロードし(初回は数分かかります)、対話型インターフェースを起動します。

以下が表示されます:

>>> Send a message (/? for help)

これでチャットができます。試してみましょう:

>>> こんにちは、自己紹介してください

モデルはリアルタイムで応答し、会話しているような感覚です。終了するには/byeまたはCtrl+Dを入力します。

モデルサイズの説明

モデル名に3b8bのような数字が含まれていることに気づいたかもしれません。これはパラメータ数、つまりモデルの「脳のサイズ」を表しています。

8B
パラメータ

3Bモデル:30億パラメータ、軽量ラップトップで動作、4GB RAMのみ必要。高速ですが、能力は比較的基本的です。簡単な会話やツールコマンドに適しています。

8Bモデル:80億パラメータ、多くのラップトップとデスクトップの「最適解」。8GB RAMが必要で、日常的な会話や簡単なプログラミング支援に対応できます。これが私が最もよく使うレベルです。

13Bモデル:130億パラメータ、16GB RAMが必要。応答品質が明らかに向上し、コンテキストも長くなります。中〜高級グラフィックカード搭載のマシンに適しています。

70Bモデル:700億パラメータ、64GB RAM以上が必要。プロフェッショナルサーバーレベルで、能力は最強ですがハードウェア要件が高いです。正直なところ、個人のユーザーは通常ここまで大きなモデルを必要としません。

初心者には3Bから8Bで十分です。これらはほとんどの現代のラップトップでスムーズに動作します。最初から大きなモデルを追い求めず、小さいモデルで慣れてから、必要に応じてアップグレードしてください。


モデル管理の基本コマンド

Ollamaはモデルを管理するためのシンプルなコマンドを提供しています。いくつかの主要なものを覚えれば十分です。

モデルのダウンロード

ollama pull llama3.2
ollama pull qwen:8b

pullコマンドはモデルライブラリからローカルにダウンロードします。キャッシュされるので、次回からは再ダウンロード不要です。

インストール済みモデルの一覧

ollama list

ダウンロードしたすべてのモデルが表示されます。名前、サイズ、更新日時が含まれます。

モデルの削除

ollama rm llama3.2

不要になったモデルを削除してスペースを解放します。

モデル詳細の確認

ollama show llama3.2

パラメータ数や量子化方式などの技術的詳細が確認できます。

cp(コピー)やpush(アップロード)などの他のコマンドはあまり使わないので、ここでは詳しく説明しません。必要な時にドキュメントを確認してください。

お勧めのモデル

用途によって、お勧めのモデルが異なります:

日常会話

  • llama3.2:Metaの最新、全体的な性能が良い
  • qwen:8b:Qwen、中国語に優秀
  • mistral:ヨーロッパのオープンソースモデル、性能良好

プログラミング支援

  • codellama:コード生成用に特別に最適化
  • deepseek-coder:ディープラーニングベースのコードモデル、使いやすい

マルチモーダル(画像理解可能)

  • llava:画像理解をサポート
  • llama3.2-vision:Llama 3.2のビジョンバージョン

どれを選ぶか迷っているなら、まずllama3.2:3bまたはqwen:8bを試してみてください。どちらも初心者に適しており、スムーズに動作します。


GPU加速:速度差は本当に大きい

これは本当に重要です。CPUでもモデルを実行できますが、速度差は圧倒的です。GPUはCPUより10〜20倍高速になる可能性があります。

10-20x
速度向上

最初に使用した時、GPU設定に注意を払わず、モデルが痛いほど遅く実行されました。その後、GPU加速が有効になっていないことに気づきました。設定後、速度は劇的に向上しました。

Ollamaは3種類のGPUをサポートしています:NVIDIA、AMD、Apple Silicon。

NVIDIAグラフィックカード(RTXシリーズ)

NVIDIAの設定は最もシンプルです。基本的に自動です。

必要なもの:

  1. 最新のNVIDIAドライバー(バージョン531以降)
  2. CUDAがインストールされていること

GPUが利用可能か確認:

nvidia-smi

グラフィックカード情報が表示されればOKです。Ollamaはモデル実行時に自動的にGPUを使用します。

使用するGPUを指定:

export CUDA_VISIBLE_DEVICES=0,1

これは最初と2番目のGPUのみを使用します。マルチGPUマシンで時々必要になります。

DockerでGPUを使用

DockerでOllamaを実行する場合、NVIDIA Container Toolkitが必要です:

docker run --gpus all ollama/ollama

これでコンテナがホストのGPUにアクセスできます。

AMDグラフィックカード

AMDは少し複雑で、ROCmのインストールが必要です。

ROCmをサポートするAMD GPUには以下が含まれます:

  • Radeon Instinctシリーズ(MI100、MI210、MI250、MI300Xなど)
  • Radeon RXシリーズ(5700 XT、5500 XT、7600、9070など)
  • Radeon PROシリーズ

ROCm v7以降をインストールすると、Ollamaは自動的にAMD GPUを検出して使用します。

サポートされていないGPUアーキテクチャの場合、環境変数を上書きしてみてください:

export HSA_OVERRIDE_GFX_VERSION=10.3.0

また、AMDは実験的なVulkanサポートも提供しています:

export OLLAMA_VULKAN=1

Apple Silicon(M1/M2/M3)

Macユーザーは最も恵まれています。Apple SiliconはMetal GPU加速を自動的に有効にします。追加設定は不要です。

16GB RAMのMシリーズチップは8Bモデルをスムーズに実行し、32GBで13Bまたは30Bも実行できます。Apple Siliconはユニファイドメモリアーキテクチャを使用しており、GPUとCPUがメモリを共有するため、RAMサイズが実行可能なモデルサイズを直接決定します。

パフォーマンスのヒント

GPU加速以外にも、速度を向上させるいくつかのテクニックがあります:

量子化モデル。デフォルトはQ4_K_M量子化で、品質と速度のバランスが良いです。メモリが足りない場合は、Q4_K_Sを試してみてください。品質はやや劣りますが、フットプリントは小さくなります。

Flash Attention。大きなコンテキストシナリオの速度を大幅に向上させる最適化技術です:

export OLLAMA_FLASH_ATTENTION=1

コンテキスト長。デフォルトのコンテキストは2048です。それほど必要ない場合は、減らしてください:

export OLLAMA_CONTEXT_LENGTH=4096

これでメモリを節約し、速度も向上します。

モデルをロードしたままにする。デフォルトでは、モデルは5分間アイドル状態になるとアンロードされます。頻繁に使用する場合は、この時間を延長してください:

export OLLAMA_KEEP_ALIVE=30m

または-1に設定して、アンロードしないようにします(Ollamaサービスが実行されている限り)。これで、モデルの再ロードを待つことなく、毎回即座に応答が得られます。


API統合:Ollamaをアプリケーションに接続

これがOllamaの真の価値です。アプリケーションに統合するための完全なAPIを提供しています。

REST APIの基本

起動後、Ollamaはローカルポート11434でAPIサービスを提供します。

最も一般的に使用される2つのエンドポイント:

テキスト生成

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?"
}'

チャット補完

curl http://localhost:11434/api/chat -d '{
  "model": "llama3.2",
  "messages": [
    {"role": "user", "content": "Hello!"}
  ]
}'

デフォルトのレスポンスはストリーミングで、結果が少しずつ返されます。完全な結果が必要な場合は、"stream": falseを設定してください。

OpenAI互換API - 最も価値のある機能

これは非常に実用的です。OllamaはOpenAI互換のインターフェースを提供しており、既存のOpenAIコードはほとんど変更せずにローカルモデルに切り替えられます。

OpenAI互換エンドポイント:

http://localhost:11434/v1/chat/completions

Pythonの例:

from openai import OpenAI

client = OpenAI(
    base_url='http://localhost:11434/v1',
    api_key='ollama'  # 何を入力しても影響しません
)

response = client.chat.completions.create(
    model="llama3.2",
    messages=[
        {"role": "user", "content": "Say this is a test"}
    ]
)

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

JavaScriptの例:

import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'http://localhost:11434/v1',
  apiKey: 'ollama'
});

const response = await client.chat.completions.create({
  model: 'llama3.2',
  messages: [{ role: 'user', content: 'Hello!' }]
});

console.log(response.choices[0].message.content);

これにより、開発中はローカルモデルでテストして費用を節約し、本番環境ではクラウドAPIに切り替えて安定性を確保できます。または完全にローカルモデルでコストとデータプライバシーを管理することもできます。

私のアプローチ:環境変数を設定して、環境に基づいてローカルとクラウドを自動的に切り替えます。開発ではデフォルトでローカルを使用し、明示的にクラウドが必要な場合のみ切り替えます。

OllamaのPythonライブラリ

OpenAIライブラリ以外に、Ollamaは独自のPythonライブラリを持っており、より直接的です:

pip install ollama

基本的な使用法:

import ollama

response = ollama.chat(model='llama3.2', messages=[
  {'role': 'user', 'content': 'Why is the sky blue?'},
])

print(response['message']['content'])

ストリーミングモード:

import ollama

stream = ollama.chat(
    model='llama3.2',
    messages=[{'role': 'user', 'content': 'Why is the sky blue?'}],
    stream=True,
)

for chunk in stream:
    print(chunk['message']['content'], end='', flush=True)

ツール呼び出し

Ollamaはツール呼び出しをサポートしており、モデルが外部関数やAPIを呼び出すことができます。これは複雑なAIアプリケーションの構築に役立ちます。

例:

import ollama

response = ollama.chat(
    model='llama3.1',
    messages=[{'role': 'user', 'content': 'What is the weather in Toronto?'}],
    tools=[{
        'type': 'function',
        'function': {
            'name': 'get_current_weather',
            'description': 'Get the current weather for a city',
            'parameters': {
                'type': 'object',
                'properties': {
                    'city': {'type': 'string', 'description': 'The name of the city'},
                },
                'required': ['city'],
            },
        },
    }],
)

print(response['message']['tool_calls'])

モデルは質問に基づいてツール呼び出しが必要かどうかを判断し、呼び出しパラメータを返します。あなたのコードは実際にツールを呼び出し、結果をモデルに返します。


Ollama vs LM Studio:どちらを選ぶ?

LM Studioという別のローカルLLM実行ツールを聞いたことがあるかもしれません。どう選べばいいでしょうか?

正直なところ、どちらにも長所があります。ニーズによります。

Ollama

  • コマンドライン中心、開発者に優しい
  • シンプルなインストール、1つのコマンド
  • APIサービスの自動起動
  • サーバーとコンテナデプロイに完璧に対応
  • アプリケーション構築、自動化統合に最適

LM Studio

  • グラフィカルインターフェース、直感的
  • 組み込みモデルブラウザ、ダウンロードが簡単
  • APIサービスの手動起動が必要
  • サーバーデプロイには不向き
  • モデルの探索、学習とテストに適している

簡単に言えば:

  • AIアプリケーションの構築、サーバーデプロイ、スクリプト自動化 → Ollama
  • 様々なモデルを素早く体験、コマンドラインに不慣れ、ただ探索したい → LM Studio

実際には、両者は補完的です。私はLM Studioで新しいモデルを発見・テストし、その後Ollamaで正式に統合しています。どちらもllama.cppベースなので、モデルは完全に互換性があります。


実践的な使用シナリオ

実際に使用したシナリオをいくつか紹介します。

ローカルコードアシスタント

OllamaをVS CodeやCursorに統合して、コードの作成、説明、リファクタリングを支援します。codellamaまたはdeepseek-coderをお勧めします。

Continue.devやAiderのようなツールはOllamaのAPIに直接接続できます。設定後、無料のローカルコードアシスタントが手に入ります。

ドキュメントQ&Aシステム

検索とQ&Aが必要なドキュメントがたくさんある場合、Ollamaとベクトルデータベースを組み合わせてプライベートナレッジベースを構築できます。プロセスは:

  1. Ollamaのembeddingsインターフェースを使用してドキュメントベクトルを生成
  2. ベクトルデータベースに保存(Chroma、Qdrantどちらも可)
  3. ユーザーが質問したら、まず関連ドキュメントフラグメントを検索
  4. フラグメントをコンテキストとしてモデルに回答させる

これが典型的なRAG(検索拡張生成)アーキテクチャです。完全にローカルで、データはネットワーク外に出ません。

プライベートナレッジベース

会社のドキュメント、技術資料、顧客情報…クラウドにアップロードすべきでない機密データ。Ollamaですべてをローカルで処理し、プライバシーコンプライアンス要件を満たします。

オフラインシナリオ

出張、野外作業、不安定なネットワーク環境…クラウドAIは使えませんが、Ollamaは完全にオフラインで動作します。コンピュータに電源があれば、AIアシスタントが利用可能です。

開発テスト環境

AIアプリケーションを開発する際、頻繁なクラウドAPI呼び出しは高額です。Ollamaを開発テスト環境として使用すれば、費用を節約し便利です。十分テストしたら、本番用にクラウドAPIに切り替えます。


よくある問題

いくつかの落とし穴に遭遇しました - 解決策を共有します。

常见问题

モデルのダウンロードに失敗する?
通常はネットワークの問題です。中国大陆ではプロキシが必要かもしれません:`export HTTP_PROXY=http://your-proxy:port` と `export HTTPS_PROXY=http://your-proxy:port`
GPUが認識されない?
まずドライバーが正しくインストールされているか確認してください。NVIDIAは`nvidia-smi`、AMDは`rocminfo`を使用。GPU情報が表示されるのにOllamaが使用しない場合、環境変数設定を確認してください。
メモリ不足?
より小さいモデルに切り替えてください(8Bから3Bへ)。または量子化バージョンを使用(Q4_K_MはFP16よりメモリ使用量が大幅に少ない)。コンテキスト長を減らすこともできます。
速度が遅い?
GPU加速が有効になっていることを確認してください。`ollama ps`で確認 - Processor列に`100% GPU`と表示されるべきです。Flash Attentionの有効化、コンテキスト長の削減、量子化モデルの使用も試せます。
モデルのアンロードが早すぎる?
デフォルトでは5分間アイドルでアンロードされます。頻繁に使用する場合は時間を延長してください:`export OLLAMA_KEEP_ALIVE=30m`

最後に

ローカルLLMをよりシンプルにしたいと思い、これだけのことを共有しました。Ollamaは本当に実現しています - 複雑な設定も深いAIのバックグラウンドも不要、数分で始められます。完全に無料、オフライン動作、データプライバシー保証。

次に試すこと:

  • 異なるモデルをテストして、ニーズに合うものを見つける
  • Ollamaを開発ワークフローに統合する
  • RAGアーキテクチャを探索してプライベートナレッジベースを構築する
  • サーバーにデプロイしてチーム共有AIサービスを構築する

ローカルAIの時代が来ています。Ollamaがあれば、クラウドに依存せずに自分のマシンで強力な言語モデルを実行できます。さあ、ローカルAIの旅を始めましょう。

著者:Easton(AI開発とローカルデプロイに注力するテックブロガー)


参考資料

7 min read · 公開日: 2026年4月1日 · 更新日: 2026年4月1日

コメント

GitHubアカウントでログインしてコメントできます

関連記事