はじめに
NVIDIA Jetson AGX Thor開発者キットでOllamaを使う方法を紹介する。本記事では、簡単に動作確認できるようにOpen WebUI経由で利用する方法もあわせて紹介する。
以前は、以下の記事でJetson AGX Orin開発者キットを試したが、今回は、Jetson Thor開発者キットでOllamaを使う方法を紹介する。
動作確認環境
- Jetson AGX Thor開発者キット
- Ubuntu 24.04 aarch64
- JetPack 7.2 (r39.2)
- Docker
Client: Version: 29.1.3 Context: default Debug Mode: false Plugins: buildx: Docker Buildx (Docker Inc.) Version: 0.30.1 Path: /usr/libexec/docker/cli-plugins/docker-buildx compose: Docker Compose (Docker Inc.) Version: 2.40.3+ds1-0ubuntu1~24.04.1 Path: /usr/libexec/docker/cli-plugins/docker-compose trust: Manage trust on Docker images (Docker Inc.) Version: 29.1.3 Path: /usr/libexec/docker/cli-plugins/docker-trust - Ollama v0.40.3
- Open WebUI v0.11.3
方法
Docker Composeによる環境構築
Docker Composeを使う方法を紹介する。Jetson Thorでは、Arm Server Base System Architecture (SBSA) に準拠しており、Jetson独自の設定は不要でGPU搭載Arm PC用のDockerイメージを準備するだけで簡単に設定可能。なお、以下の記事ではJetPack 7.0(r38.2)のため内容が古いので今回は別のやり方をとっている。
必要なファイルを以下のリポジトリにまとめてある。OllamaとOpen WebUIを起動し、ブラウザーから簡単に動作確認できる構成とする。
ここでは簡単に手順を紹介する。
リポジトリをワークスペースにクローンする。
cd {your_workspace}
git clone https://github.com/ntrlmt/ollama-docker-compose.git
cd ollama-docker-compose
環境変数を設定する。
cp .env.example .env
必要に応じて以下を変更する。
OLLAMA_DOCKER_TAG=v0.40.3
WEBUI_DOCKER_TAG=v0.11.3
OPEN_WEBUI_PORT=3000
OLLAMA_MAX_LOADED_MODELS=1
OLLAMA_NUM_PARALLEL=1
OLLAMA_SCHED_SPREAD=0
OLLAMA_FLASH_ATTENTION=1
OLLAMA_KV_CACHE_TYPE=q8_0
| 変数 | 説明 | 設定値 | 備考 |
|---|---|---|---|
OLLAMA_DOCKER_TAG |
ollama/ollama イメージのタグ |
latest |
最新リリースを追従する。固定したい場合は 0.40.3 のようにバージョンを指定する |
WEBUI_DOCKER_TAG |
ghcr.io/open-webui/open-webui イメージのタグ |
main |
最新ビルドを追従する。固定したい場合は v0.12.0 のようにバージョンを指定する |
OPEN_WEBUI_PORT |
Open WebUI にアクセスするホスト側ポート | 3000 |
コンテナ内の 8080 番にマッピングされる。ブラウザで http://<host>:3000 を開く |
OLLAMA_MAX_LOADED_MODELS |
同時にメモリへ常駐させるモデルの最大数 | 1 |
別のモデルを呼ぶと前のモデルがアンロードされる。メモリに余裕があれば増やすとモデル切り替えが速くなる |
OLLAMA_NUM_PARALLEL |
1 つのモデルが同時に処理するリクエスト数 | 1 |
増やすとコンテキスト用メモリがその倍数で必要になる。単一ユーザー利用なら 1 で十分 |
OLLAMA_SCHED_SPREAD |
モデルを全 GPU に分散配置するか | 0 |
0: 最小限の GPU に収める、1: 全 GPU に分散。GPU が 1 基の環境では効果なし |
OLLAMA_FLASH_ATTENTION |
Flash Attention を有効にするか | 1 |
1: 有効、0: 無効。KV キャッシュのメモリ使用量を削減し、長いコンテキストで有利。OLLAMA_KV_CACHE_TYPE の量子化に必須 |
OLLAMA_KV_CACHE_TYPE |
KV キャッシュの量子化形式 | q8_0 |
f16: 非量子化(既定)、q8_0: 約半分のメモリでほぼ品質劣化なし、q4_0: 約 1/4 のメモリだが品質劣化あり。OLLAMA_FLASH_ATTENTION=1 が必要 |
環境変数の編集が完了したら、以下のコマンドでコンテナを起動する。
docker compose up -d
Dockerイメージのダウンロードが始まり、正常にコンテナが起動すれば完了。
動作確認
CLI
OllamaのCLIでの基本的な使い方については、以下の私の過去の記事を参照。
Ollamaコンテナの起動後に以下のコマンドでコンテナ内のBashにアクセスする。
docker exec -it ollama bash
使いたいモデルをダウンロードする。ここでは、gemma4:31bとする。
ollama pull gemma4:31b
以下のようになれば成功。
pulling manifest
pulling 6357a8a2d521: 100% ▕█████████████████████████████████████████████████████████████ ▏ 1.2 GB/1.2 GB 75 MB/s 0s
pulling cd20f2b3f2e3: 100% ▕█████████████████████████████████████████████████████████████ ▏ 18 GB/ 18 GB 98 MB/s 0s
pulling 9ec411cf75f3: 100% ▕█████████████████████████████████████████████████████████████ ▏ 514 MB/514 MB 64 MB/s 0s
pulling b507b9c2f6ca: 100% ▕██████████████████████████████████████████████████████████████▏ 13 B
pulling 7339fa418c9a: 100% ▕██████████████████████████████████████████████████████████████▏ 11 KB
pulling 2365fbb6d97b: 100% ▕██████████████████████████████████████████████████████████████▏ 64 B
pulling 094d707563aa: 100% ▕██████████████████████████████████████████████████████████████▏ 242 B
verifying sha256 digest
writing manifest
removing unused layers
success
以下のコマンドで起動確認する。
ollama run gemma4:31b
適当にLLMとチャットしてみる。
>>> こんにちは
Thinking...
* Input: "こんにちは" (Konnichiwa)
* Language: Japanese
* Meaning: "Hello" / "Good day"
* The user is greeting me.
* The appropriate response is a polite greeting back, and an offer to help.
* *Simple:* こんにちは! (Hello!)
* *Helpful:* こんにちは!何かお手伝いできることはありますか? (Hello! Is there anything I can help you with?)
* *Polite:* こんにちは。どのようにお役に立てますか? (Hello. How can I be of service?)
* A friendly, welcoming, and open-ended response is best.
* "こんにちは!何かお手伝いできることはありますか?" (Hello! Is there anything I can help you with?)
...done thinking.
こんにちは!何かお手伝いできることはありますか?
>>> Send a message (/? for help)
GUI(Open WebUI)
JetsonのIPアドレスと、.envファイルで指定したポート番号を使い、Open WebUIにアクセスする(http://<JetsonのIPアドレス>:<ポート番号>)。
「はじめる」ボタンを押して、管理者のユーザー設定を行う。
Ollamaのモデルは、CLIでダウンロードしたものが表示される。モデルが表示されない場合は、前述のモデルのダウンロードをする。
以下は、Gemma4 31Bが表示されている。
適当にLLMとチャットしてみる。
まとめ
NVIDIA Jetson AGX Thor開発者キットで、Docker Composeを使ってOllamaとOpen WebUIを起動し、Gemma 4 31Bとのチャットを確認した。
今回検証した構成では、以前のJetson AGX Orin開発者キットでの構築手順と比べて、環境構築を簡略化できた。CLIに加え、Open WebUIを利用することで、ブラウザーからもモデルを選択してチャットできることを確認した。
参考

