Ollama 入門

はじめに

Ollama は、ローカルで大規模言語モデル(LLM)を実行する最もシンプルな方法です。「LLM の Docker」のようなものと考えてください—モデルのダウンロード、ストレージ、推論をクリーンなコマンドラインインターフェースで処理します。複雑なセットアップや依存関係の問題もなく、1つのコマンドでインストールし、1つのコマンドでチャットを開始できます。

このモジュールでは、以下のことを学びます:

  • Jetson デバイスに Ollama をインストールする
  • 最初の LLM をダウンロードして実行する
  • 異なるモデルとその能力を探る
  • Open WebUI を使用して Web ベースのチャットインターフェースを設定する

ollama-banner

ollama-prompt

なぜ Ollama なのか?

機能説明
1行インストール単一コマンドで開始
自動モデル管理モデルファイルを自動的にダウンロードして管理
シンプルなコマンドollama run モデル名 でチャット開始
REST API統合用の組み込み HTTP サーバー
複数のモデル異なるモデルを並行して実行
OpenAI 互換OpenAI インターフェースと互換性あり

システム要件

Ollama をインストールする前に、Jetson デバイスが以下の要件を満たしていることを確認してください:

要件最小推奨
JetPack5.1+6.0+
RAM8GB16GB+
ストレージ10GB 空き50GB+(複数モデル用)
Swap8GB16GB

初めての方へ:Jetson で swap 空間を設定していない場合は、第3章:Swap 設定 をチェックしてください

Ollama のインストール

方法 1:直接インストール(推奨)

Jetson デバイスでターミナルを開き、以下を実行:

bash
# Ollama をダウンロードしてインストール
curl -fsSL https://ollama.com/install.sh | sh

インストールスクリプトは以下のことを行います:

  1. システムアーキテクチャを検出(ARM64)
  2. 適切な Ollama バイナリをダウンロード
  3. systemd サービスを設定
  4. インストールを検証

インストールの検証

bash
# Ollama バージョンをチェック
ollama --version

# サービスが実行されているかチェック
systemctl status ollama

最初の LLM インタラクション

では、最初の LLM を実行してみましょう。Ollama は初回実行時に自動的にモデルをダウンロードします。

Ollama がサポートするモデルのリストはこちらで確認できます。デバイスにデプロイしたいモデルを選択してください。

モデルの実行

bash
# 例
ollama run qwen3.5:2b

ダウンロードが完了すると、チャットプロンプトが表示されます:

bash
What is NVIDIA Jetson?

便利なチャットコマンド

コマンド説明
/?ヘルプを表示
/bye会話を終了
Ctrl+D会話を終了
/clear会話履歴をクリア
/history会話履歴を表示

異なるモデルの探索

Vision-Language Models(マルチモーダル)

bash
# Qwen3.5 - 画像とテキストを理解
ollama run qwen3.5:2b
#画像ファイルを指定して、画像の内容を描述してもらいます。
What can you see in /home/seeed/test.jpg

qwen_v

REST API の使用

Ollama はポート 11434 でローカル HTTP サーバーを実行し、他のアプリケーションとの統合を容易にします。

チャットリクエストの送信

bash
# シンプルなテキスト生成
curl http://localhost:11434/api/generate -d '{
  "model": "qwen3.5:2b",
  "prompt": "What is edge computing?",
  "stream": false
}'

curl_test

Python 統合

python
import requests

def chat_with_ollama(prompt, model="qwen3.5:2b"):
    """Ollama にプロンプトを送信して応答を取得します。"""
    response = requests.post(
        "http://localhost:11434/api/generate",
        json={
            "model": model,
            "prompt": prompt,
            "stream": False
        }
    )
    return response.json()["response"]

# 使用例
response = chat_with_ollama("Write a simple Python function to calculate factorial")
print(response)

OpenAI 互換 API

bash
# openai sdk をインストール
pip install openai

Ollama は OpenAI 互換エンドポイントを提供し、既存の OpenAI クライアントライブラリを使用できます:

python
from openai import OpenAI

# ローカル Ollama に接続
client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="not-needed"  # Ollama は API キーを必要としません
)

response = client.chat.completions.create(
    model="qwen3.5:4b",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Explain quantum computing in simple terms."}
    ]
)

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

VLM で画像内のオブジェクトを検索

bash
pip install ollama
git clone https://github.com/Seeed-Projects/reComputer-Jetson-for-Beginners
cd reComputer-Jetson-for-Beginners/5-Offline-Large-Model-Development/code
python vlm_object_detector.py

1分待つと、img フォルダに結果が表示されます

vlm_find_obj

Open WebUI の設定

Open WebUI(旧 Ollama WebUI)は、ローカルモデルと対話するための ChatGPT のようなインターフェースを提供します。

Docker でのインストール

bash
# Open WebUI イメージをプル
docker pull ghcr.io/open-webui/open-webui:main

# データディレクトリを作成
sudo mkdir -p /opt/seeed/open-webui/data

# コンテナを実行
docker run -d \
  --restart always \
  --name open-webui \
  --network host \
  -v /opt/seeed/open-webui/data:/app/backend/data \
  -e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
  ghcr.io/open-webui/open-webui:main

# コンテナの状態をチェック
docker logs -f open-webui

Open WebUI へのアクセス

コンテナが実行されたら:

  1. Jetson(または同じネットワーク上の他のデバイス)でブラウザを開く
  2. http://localhost:8080(または http://<jetson-ip>:8080)にアクセス
  3. 初回アクセス時に管理者アカウントを作成
  4. ドロップダウンメニューからモデルを選択してチャットを開始!

web_ui

Open WebUI の機能

  • モデル管理:異なる Ollama モデルの切り替え
  • 会話履歴:チャット履歴を保存して検索
  • マルチユーザーサポート:異なるユーザーのアカウント作成
  • RAG サポート:ドキュメントをアップロードしてチャット
  • 画像生成:画像生成モデルとの統合
  • プラグインシステム:コミュニティプラグインで機能を拡張

パフォーマンス向上のヒント

  1. 適切なモデルサイズを使用:Jetson Orin Nano では 1B-3B モデルから開始
  2. swap 空間を増加:更大的モデルの場合
  3. 不必要なアプリケーションを閉じる:GPU メモリを解放
  4. 量子化モデルを使用:GGUF 量子化モデル(Q4_K_M)が最適な速度/品質バランスを提供
  5. 温度を監視:Jetson は持続的な負荷下でサーマルスロットルが発生する可能性がある—適切な冷却を確保

一般的な問題と解決策

問題 1:モデルのダウンロード失敗

問題Error: pull model manifest: Get https://registry.ollama.ai/...

解決策

bash
# インターネット接続を確認
ping google.com

# 詳細出力で再試行
OLLAMA_DEBUG=1 ollama pull llama3.2:3b

問題 2:メモリ不足

問題Error: model requires more system memory (8.0 GiB) than is available (6.0 GiB)

解決策

bash
# 利用可能なメモリをチェック
free -h

# swap を増加(まだ設定されていない場合)
sudo fallocate -l 16G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# より小さいモデルを使用
ollama run qwen3.5:2b

問題 3:応答速度が遅い

問題:token 生成が非常に遅い(< 5 tokens/秒)

解決策

bash
# より小さいモデルを使用
ollama run qwen3.5:0.8b

# コンテキストウィンドウを削減
ollama run qwen3.5:0.8b --num-ctx 2048

# GPU が使用されていることを確認(推論中に nvidia-smi をチェック)

問題 4:Ollama サービスが開始しない

問題System has not been booted with systemd as init system

解決策(Docker 環境向け):

bash
# Ollama を手動で開始
ollama serve &

# またはバックグラウンドで実行
nohup ollama serve > ollama.log 2>&1 &

実践演習

設定を検証するために以下のステップを完了してください:

  1. Ollama をインストールし、インストールを検証
  2. モデルを実行ollama run qwen3.5:2b
  3. 会話を開始:Jetson プラットフォームについて質問
  4. 異なるモデルを試すqwen3:4b に切り替え
  5. API を使用:curl でリクエストを送信
  6. 任意:Open WebUI を設定し、ブラウザからアクセス

参考文献


次へモジュール 5.3:llama.cpp で LLM を実行 に進んで、轻量级 LLM 推論を探索!