こんにちは、管理人です。
ローカルPC上でLLM(大規模言語モデル)を動作させる環境として、手軽にセットアップできる Ollama(オラマ) が広く使われています。OllamaはWindows向けにもインストーラー形式のデスクトップアプリが提供されており、ダブルクリックするだけでバックグラウンドで動作するローカルAIエンジンを極めて簡単に構築できます。
しかし、Ollama本体のデスクトップアプリはAIエンジンの起動や管理、システムトレイへの常駐を行うものであり、チャットの対話画面自体は基本的にコマンドライン(CLI)ベースでの操作となります。そのため、日常的な作業でチャットツールとして常用するにはやや不便です。そこで、Webブラウザ上で動作し、ChatGPTのような優れたインターフェースを提供する Open WebUI を導入することにしました。
今回は、Open WebUIのインストールにあたってPythonの新しいパッケージ管理ツール 「uv」 を使用した際の記録と、最新の 「Gemma 4」 各モデルを Radeon RX 9070 XT(VRAM 16GB / メモリ32GB) で動作させた際の実測結果を報告します
Open WebUIの導入:インストールの選択肢
Open WebUIを導入する場合、公式ドキュメントでは主に以下の3つの方法が提示されています。
- Docker上での実行(公式推奨)
- Python仮想環境へのインストール
- Windows用のデスクトップアプリ版(.exe)の使用
最近はWindows向けにインストーラー形式のデスクトップアプリもリリースされており、公式のGitHubページからダウンロードが可能です。
今回は、環境のカスタマイズ性や依存関係の制御を考慮し、Pythonの仮想環境上で動かす方法を選択しました。
パッケージ管理ツール「uv」による環境構築の効率化
今回の環境構築において、Pythonの新しいパッケージマネージャー 「uv」 を使用しました。
従来のPython環境では、用途に応じて以下のツールを組み合わせて管理するのが一般的です。
- バージョンの管理:
pyenv - 仮想環境の作成:
venv - ライブラリのインストール:
pip

これに対し、「uv」はこれらの機能を統合して提供するツールです。
# 起動コマンドの例(環境変数を指定し、uvxでPythonバージョンを指定して起動)
$env:DATA_DIR="C:\open-webui\data"; uvx --python 3.11 open-webui@latest serve
このコマンドを実行すると、PC本体に事前にPythonをインストールしていなくても、uvx が適切なPythonバージョンを自動的に取得し、隔離された仮想環境を構築した上で、Open WebUIの最新版をインストールして起動します。
所要時間とデータの保存について

光回線環境でまとめてダウンロードを行いましたが、AI関連のライブラリはファイルサイズが大きいため、初期セットアップの完了までに 約1時間 ほど要しました。これはツールの処理が遅いわけではなく、大容量のライブラリや依存パッケージのダウンロードに時間がかかるためです。
一度環境を作ってしまえば、次回以降は上記のコマンドを実行するだけで起動します。また、$env:DATA_DIR でデータ保存先(例:C:\open-webui\data)を明示しているため、PCを再起動しても過去のチャット履歴や設定は維持されます。
「Gemma 4」各モデルにおける Radeon RX 9070 XT での動作検証
AI=NVIDIAというデファクトスタンダードと検証の背景
現在、世界のAIハードウェア市場においては、NVIDIAが約80〜85%という圧倒的なシェアを握り、市場を事実上支配しています。開発現場において「AI=NVIDIA」が常識とされている最大の理由は、NVIDIAが提供する並列計算プラットフォーム 「CUDA」 の存在です。
主要なAIフレームワークやライブラリは、このCUDAを前提として極限まで最適化されており、エンジニアにとって開発効率や動作の安定性の面でNVIDIA環境を選ぶのは合理的な選択肢となっています。
しかし今回は、あえてAMDの最新アーキテクチャ(RDNA 4)を採用した Radeon RX 9070 XT(VRAM 16GB / メモリ32GB) を使用し、Ollama経由(内部的なROCm/DirectML等によるハードウェア支援)での動作状況をテストしました。NVIDIA支配が強固な中で、RadeonがどこまでローカルLLM環境で実用的に動作するのかは技術的に興味深いポイントです。
検証に使用したGoogleのオープンモデル「Gemma 4」の各サイズにおける具体的な動作速度は以下の通りです。
Gemma 4 31B IT
- 結果: 動作が極めて遅く、実用は困難。
- 詳細: 31B(310億パラメータ)モデルの場合、要求されるメモリ量がグラフィックボードのVRAM 16GBを超過するため、PCのメインメモリ(CPU側)にデータが溢れます。1トークン(文字)が出力されるまでに分単位の時間を要するため、この環境での常用は現実的ではありません。
Gemma 4 26B A4B IT (MoEモデル)
- 結果: 応答速度は遅いが、用途によっては動作可能。
- 詳細: 全体の規模は26Bですが、推論時に一部のパラメータのみをアクティブにするMoE(Mixture of Experts)技術「A4B(Active 4B)」を採用したモデルです。31Bに比べれば動作はしますが、最初の出力(First Token)が返ってくるまでに約3分かかります。即答性を求める用途には向きませんが、時間を要する長文の論理推論などのタスクであれば、辛うじて動作を待てるレベルです。
Gemma4:12b
- 結果: スムーズに動作し、実用的。
- 詳細: 12B(120億パラメータ)モデルであれば、Radeon RX 9070 XTのVRAM 16GBに余裕を持って収まるため、遅延をほとんど感じることなくテキストが出力されます。日常的な翻訳、文章作成のサポート、簡単なスクリプト作成の補助であれば、実用上ストレスのない速度で対話が可能です。
動作時のGPU負荷の確認
Open WebUI上で gemma4:12b と対話を行っている最中に、Windowsのタスクマネージャー(GPUパフォーマンス)を開いて負荷状況を確認しました。

CPUの負荷は低く抑えられており、「GPU(3D、またはAIアクセラレータ)」 のグラフが上昇して処理が行われていることを確認できました。GPU側で処理が完了しているため、ファンが騒がしく回ることもなく、静音かつ安定して動作しています。
結論:他ツールとの比較と今回の構成の用途
Ollamaに Open WebUI を組み合わせることで、ローカル環境でありながらクラウドサービスに準ずる利便性の高いWebインターフェースを構築できました。また、「uv」 を用いることで、Python環境における依存関係の競合を避けて手軽にデプロイ・運用できる点もメリットです。
一方で、この「Ollama + Open WebUI」の組み合わせが、あらゆる用途における唯一の最適解というわけではありません。
近年、ローカルAIのツール群は用途に合わせて多様化しています。ちょっとだけ軽めに解説しておきます。
用途に応じた別の選択肢
- 利便性重視:「Jan」 コマンドラインからの起動や環境構築そのものを省略したい場合、完全オフラインで動作し、アプリ内で直接モデルをダウンロード・管理できるWindows用デスクトップアプリのJanが簡便です。
- 開発連携重視:「Lemonade」 非常に軽量なバイナリで動作し、テキスト・画像・音声処理を統合して提供するツールです。VS Codeなどのエディタ(Continue拡張機能等)とシームレスに連携し、セキュアなローカル開発支援環境を構築したい開発者に向いています。AMDが開発に携わっているみたいです。
買う前までは、Radeon rx 9070xtを買っても、Local LLMを走らせることが不安でしたが、杞憂に終わって良かったです…。


