Ollama + Qwen3 のセットアップ(Ubuntu 上)
【概要】
ここで説明するスクリプトは,Ubuntu 上に Ollama をインストールし,systemd による起動管理のもと,大規模言語モデル(Qwen3:14b など)を NVIDIA GPU 対応で稼働させるための環境を構築する.【目次】
- Ollama の説明
- 前提条件
- 実行方法
- カスタマイズ可能なパラメータ
- トラブルシューティング
- セキュリティ上の注意
- アンインストール手順
- Ollama + Qwen3 のセットアップを行うスクリプト(Ubuntu 上)
【関連する外部ページ】
URL: https://ollama.com/
【サイト内の関連情報】
なし
1. Ollama の説明
Ollama は,LLM(大規模言語モデル)をローカルで実行するためのオープンソースツールである。ユーザーはクラウドに依存せず,Qwen,Llama,Mistral などの様々なAIモデルを実行できる。
主な特徴
- ローカル実行: インターネット接続なしでモデルを実行可能
- GPU高速化: NVIDIA・AMD GPUに対応し,CPUのみの実行と比較して高速化
- 多様なモデル対応: Qwen3,Llama,Mistral,Gemmaなど様々なオープンソースモデルをサポート
- マルチプラットフォーム: Windows,macOS,Linuxに対応
- API提供: RESTful APIを通じて簡単に統合可能
- カスタマイズ: Modelfileを使用してモデルの設定やパラメータをカスタマイズ可能
実行方法
- モデルのダウンロード
ollama pull qwen3:14b - モデルの実行
ollama run qwen3:14b
APIの活用
Ollama は 11434 番ポートで API サーバーを実行し,API を提供する。
curl http://localhost:11434/api/chat -d '{
"model": "qwen3:14b",
"messages": [{"role": "user", "content": "こんにちは"}]
}'
2. 前提条件
ハードウェア:
- NVIDIA GPU搭載マシン(CUDA対応)
OS・環境:
- Ubuntu 24.04(systemd, ufw 対応)
- sudo権限を持つユーザアカウント
ネットワーク:
- ポート11434が開放できる環境
- GitHubとOllamaの公式サーバに接続可能なネットワーク
3. 実行方法
スクリプトの準備:
末尾のスクリプトをsetup_ollama.shに保存
chmod +x setup_ollama.sh
スクリプトの実行:
./setup_ollama.sh
実行完了後の確認事項:
systemctl status ollama.serviceが"active (running)"と表示されているかcurl http://localhost:11434によってポートが開いているかnvidia-smiでGPUが正しく認識されているか
4. カスタマイズ可能なパラメータ
スクリプト先頭で定義されている以下の変数を必要に応じて編集することで構成を変更できる:
MODEL_NAME: 使用するLLM名(例: "qwen3:14b")OLLAMA_PORT: 外部公開するポート番号(例: 11434)- ファイアウォール設定(必要に応じて
ufw allow from ...によるIP制限を追加)
5. トラブルシューティング
- nvidia-smiが動作しない
- 原因例: GPUが認識されていない,NVIDIAドライバが未インストール
- 対策: BIOS設定でGPUを有効にする,または
sudo ubuntu-drivers installを再実行
- Ollamaサービスが起動しない
- 原因例: 使用ポート11434が他のプロセスで使用中/ollamaユーザに実行権限がない
- 対策:
journalctl -u ollama.serviceでログを確認し,ポート重複や権限をチェック
- モデル(例:qwen3:14b)のダウンロードが失敗する
- 原因例: ネットワーク制限(プロキシ環境,ファイアウォール,DNS設定など)
- 対策:
ping ollama.comやcurlでネットワーク疎通を確認
- curl http://localhost:11434が失敗する
- 原因例: サービスが未起動/ファイアウォールによりブロックされている
- 対策:
systemctl status ollama.serviceで稼働状態を確認/ufwの設定を見直す
- GPUが使用されていない(CPUで処理されてしまう)
- 原因例: NVIDIAドライバは入っているが,CUDA対応が不完全
- 対策:
nvidia-smiでGPU使用状況を確認/ollama runでGPU使用ログを確認
6. セキュリティ上の注意
- 公開ポート(11434)にはIP制限をかけること(
ufw allow from ...を推奨) - ollamaユーザは
--no-create-homeおよび--nologinによってログイン不可に設定 - サービスはsystemdによって自動起動・再起動が有効化されている
7. アンインストール手順(オプション)
以下のコマンドによりOllama関連の設定をすべて削除できる:
sudo systemctl stop ollama.service
sudo systemctl disable ollama.service
sudo rm /etc/systemd/system/ollama.service
sudo systemctl daemon-reload
sudo deluser --system ollama
sudo rm /usr/local/bin/ollama
8. Ollama + Qwen3 のセットアップを行うスクリプト(Ubuntu 上)
#!/bin/bash
###############################################################################
# Ollama 自動セットアップスクリプト(Ubuntu用)
#
# このスクリプトは以下を一括で行う:
# 1. Ollama公式インストールスクリプトによるバイナリ・systemdサービスの導入
# 2. GPUドライバのインストール確認
# 3. モデル(qwen3:14b)のダウンロード
# 4. UFWによるファイアウォール設定
#
# 必須条件:
# - Ubuntu 24.04
# - NVIDIA GPU(CUDA対応)
# - sudo 権限
#
# 注意事項:
# - 公開ポート11434は必要に応じてIP制限を追加する
# - Ollama公式インストールスクリプトが,専用ユーザ ollama の作成と
# systemdサービスの設定を行う
# - モデルのダウンロードにはインターネット接続が必要である
#
# 実行方法:
# chmod +x setup_ollama.sh
# ./setup_ollama.sh
#
###############################################################################
set -e
### 設定
OLLAMA_PORT="11434"
MODEL_NAME="qwen3:14b"
echo "=== 1. Ollama のインストール ==="
curl -fsSL https://ollama.com/install.sh | sh
echo "→ インストール完了: $(ollama --version)"
echo "=== 2. systemd 起動確認 ==="
sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl start ollama
sleep 2
sudo systemctl status ollama --no-pager
echo "=== 3. GPU ドライバインストール ==="
sudo ubuntu-drivers install -y || echo "→ ドライバ既にインストール済?"
nvidia-smi || echo "NVIDIA GPU"
echo "=== 4. モデルダウンロード(${MODEL_NAME})==="
ollama pull ${MODEL_NAME}
# モデルキャッシュは /usr/share/ollama/.ollama に保持される
echo "=== 5. UFW ファイアウォール設定 ==="
sudo apt update
sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow ${OLLAMA_PORT}/tcp
# 必要なら制限付きアクセス(例:ローカルネットのみ)
# sudo ufw allow from 192.168.1.0/24 to any port ${OLLAMA_PORT} proto tcp
sudo ufw --force enable
sudo ufw status numbered
echo "完了! Ollama はポート ${OLLAMA_PORT} で稼働中です"