ラベル ubuntu の投稿を表示しています。 すべての投稿を表示
ラベル ubuntu の投稿を表示しています。 すべての投稿を表示

2026年2月8日日曜日

Open WebUI with Ollama

遅まきながらLLMを触ってみようとOllama、Open WebUIをインストールしてみます。
Ollamaはホストローカルに、Open WebUIはDockerコンテナとして構築します。
# NVIDIA DGX Sparkが発表当初$3000で待ってたのですが発売遅れと値上がりで...。

環境は下記、GPUをパススルーした仮想マシンです。
RTX 4070なのでVRAMは12GB。
VRAM容量が多いGPUが欲しいところですが昨今値上がりが激しくて手が出ません。
  • vCPU: 8
  • Memory: 32GB
  • GPU: GeForce RTX 4070 SUPER
  • OS: ubuntu 24.04.3

CUDA ToolkitとDriverのインストール
CUDA ToolkitとDriverは公式ドキュメントの通りに下記を実行。
DriverはOpen kernel moduleを入れました。
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
$ sudo dpkg -i cuda-keyring_1.1-1_all.deb
$ sudo apt-get update
$ sudo apt-get -y install cuda-toolkit-13-1
$
$ sudo apt-get install -y nvidia-open
確認
$ nvidia-smi
Sun Feb  8 20:11:15 2026       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 590.48.01              Driver Version: 590.48.01      CUDA Version: 13.1     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4070 ...    On  |   00000000:02:05.0 Off |                  N/A |
|  0%   28C    P8             15W /  220W |       1MiB /  12282MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
  
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+
$

Ollamaのインストール
公式ドキュメントに書いてある通り、下記を実行。
$ curl -fsSL https://ollama.com/install.sh | sh
>>> Installing ollama to /usr/local
>>> Downloading ollama-linux-amd64.tar.zst
######################################################################## 100.0%
>>> Creating ollama user...
>>> Adding ollama user to render group...
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
>>> Enabling and starting ollama service...
Created symlink /etc/systemd/system/default.target.wants/ollama.service → /etc/systemd/system/ollama.service.
>>> NVIDIA GPU installed.
$
確認とモデル実行
モデルはgemma3:12bを動かしてみます。
$ ollama --version
ollama version is 0.15.5

$ ollama run gemma3:12b
 :
>>> こんにちは
こんにちは!何かお手伝いできることはありますか? 😊


>>> /?
Available Commands:
  /set            Set session variables
  /show           Show model information
  /load    Load a session or model
  /save    Save your current session
  /clear          Clear session context
  /bye            Exit
  /?, /help       Help for a command
  /? shortcuts    Help for keyboard shortcuts

Use """ to begin a multi-line message.
Use /path/to/file to include .jpg, .png, or .webp images.

>>> /bye
$
Olamaサービスのバインドアドレス変更
サービス設定のデフォルトではlocalhost:11434にバインドされます。
今回、Open WebUIはDockerコンテナを利用します。
コンテナからOllamaに接続できるように下記の設定を/etc/systemd/system/ollama.serviceの[Service]セクションに追加します。
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
設定反映と確認
$ ss -lntp |grep 11434
LISTEN 0      4096       127.0.0.1:11434      0.0.0.0:*    users:(("ollama",pid=2505,fd=3))
$

$ sudo systemctl daemon-reload
$ sudo systemctl restart ollama

$ ss -lntp |grep 11434
LISTEN 0      4096               *:11434            *:*     users:(("ollama",pid=3505,fd=3))
$

Open WebUIのインストール
Docker Composeで設定します。
公式ドキュメントのサンプルにextra_hostsの定義を追加して、コンテナとホストが通信できるようにします。
$ mkdir ~/OpenWebUI
$ cd ~/OpenWebUI
$ tee docker-compose.yml <<EOF
services:
  openwebui:
    image: ghcr.io/open-webui/open-webui:main
    ports:
      - "3000:8080"
    volumes:
      - open-webui:/app/backend/data
    extra_hosts:
      - "host.docker.internal:host-gateway"
volumes:
  open-webui:
EOF
$
$ docker compose up -d

ひとまず完成、http://IPアドレス:3000/でOpen WebUIにアクセスできます。
最初のアクセス時に初期設定があり、アカウント登録して利用開始となります。

参考)

2024年5月25日土曜日

Stable Diffusion web UI

書店をぶらつきStable Diffusionの入門書を2冊買いました。青っぽいのと黄色っぽいの。
どちらも面白かった。

AUTOMATIC1111/stable-diffusion-webuiの環境構築をUbuntu 22.04.4にしましたが、サイト記載の手順で特にハマることなく完了しました。

サーバに環境構築した場合の変更点としては、外部接続用のインターフェースをlistenするようにすることくらいでしょうか。
デフォルトでは、ローカルホストをlistenしているため外部からアクセスできません。

ひとまず、下記オプションをwebui-user.shのCOMMANDLINE_ARGSに設定しています。
  • --listen
  • --enable-insecure-extension-access
  • --xformers
--enable-insecure-extension-accessは必要なときだけ指定しても良いかもしれません。
また、--xformersオプションを入れるとメモリ消費量削減と速度向上に効果があります。

しばらくは楽しめそうです。

参考URL)

2024年5月4日土曜日

ubuntu 22.04.4 with GPU passthrough on ESXi 8

画像生成AIで遊んでみたくなったので下記パーツでPC作成、ESXi 8を導入。
  • ASRock B550M Pro4
  • AMD Ryzen 7 5700X
  • Palit NED407S019K9-1043D (GeForce RTX 4070 SUPER Dual 12GB)
内蔵NICがRealtek RTL8111Hチップだったので、NICを増設してESXiセットアップは完了。
久々でvmklinux driverが利用できなくなったのを忘れてて時間を無駄にしました。
#vmware買収で無償版が無くなりホームラボ利用が衰退しそうで寂しい限りです。
#VMUG Advantageは大丈夫だろうか。

さて本題、ESXiでGPUパススルー設定後、ubuntu server 22.04.4 LTSのVM作成しましたが、NVIDIAのドライバインストールでハマりました。
結論、nvidia-driver-nnnでうまくいかない場合は、nvidia-driver-nnn-openを試してみよう。

環境
$ uname -r
5.15.0-105-generic
$ grep -i version /etc/os-release 
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
$
オープンソースドライバーNouveauの確認。
$ lsmod |grep nouveau
nouveau              2306048  0
mxm_wmi                16384  1 nouveau
i2c_algo_bit           16384  1 nouveau
drm_ttm_helper         16384  1 nouveau
ttm                    86016  3 vmwgfx,drm_ttm_helper,nouveau
drm_kms_helper        311296  2 vmwgfx,nouveau
video                  65536  1 nouveau
wmi                    32768  2 mxm_wmi,nouveau
drm                   622592  7 vmwgfx,drm_kms_helper,drm_ttm_helper,ttm,nouvea
$
Nouveau無効化設定とkernel initramfs再構築。
$ cat << EOF | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0
EOF
$
$ sudo update-initramfs -u
リブートしNouveauドライバーがロードされていないことを確認。
$ lsmod |grep nouveau
$
ドライバーの検索。
$ ubuntu-drivers devices
ERROR:root:aplay command not found
== /sys/devices/pci0000:02/0000:02:05.0 ==
modalias : pci:v000010DEd00002783sv00001569sd0000F302bc03sc00i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-550-open - distro non-free
driver   : nvidia-driver-550 - distro non-free recommended
driver   : nvidia-driver-550-server-open - distro non-free
driver   : nvidia-driver-550-server - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

== /sys/devices/pci0000:00/0000:00:0f.0 ==
modalias : pci:v000015ADd00000405sv000015ADsd00000405bc03sc00i00
vendor   : VMware
model    : SVGA II Adapter
manual_install: True
driver   : open-vm-tools-desktop - distro free

$ 
recommendedなパッケージをインストールする。
$ sudo apt install nvidia-driver-550
リブート後に確認。
$ lsmod |grep -i nvidia
nvidia_uvm           4648960  0
nvidia_drm             94208  0
nvidia_modeset       1343488  1 nvidia_drm
nvidia              54018048  2 nvidia_uvm,nvidia_modeset
drm_kms_helper        311296  2 vmwgfx,nvidia_drm
drm                   622592  7 vmwgfx,drm_kms_helper,nvidia,nvidia_drm,ttm
$
$ nvidia-smi
No devices were found
$
$ lspci |grep -i nvidia
02:05.0 VGA compatible controller: NVIDIA Corporation AD104 [GeForce RTX 4070 SUPER] (rev a1)
02:05.1 Audio device: NVIDIA Corporation Device 22bc (rev a1)
$
上手くいっていない。
dmesgを見ると下記のメッセージがあり、初期化に失敗しています。
[    3.337870] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  550.67  Tue Mar 12 23:29:25 UTC 2024
[    3.339965] [drm] [nvidia-drm] [GPU ID 0x00000205] Loading driver
[    3.346790] ACPI Warning: \_SB.PC08.S6F0._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20210730/nsarguments-61)
[    5.381856] NVRM: GPU 0000:02:05.0: RmInitAdapter failed! (0x26:0x56:1598)
[    5.382198] NVRM: GPU 0000:02:05.0: rm_init_adapter failed, device minor number 0
[    5.385633] [drm:nv_drm_load [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000205] Failed to allocate NvKmsKapiDevice
[    5.386063] [drm:nv_drm_register_drm_device [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000205] Failed to register device
apt list |grep nvidia-driverで以前のバージョンを確認し、545,535を試してみたがどれも同じ結果となりました。
パッケージ削除は下記を実行すれば良い。
$ sudo apt-get --purge remove nvidia-*
$ sudo apt-get --purge remove libnvidia-*
調べてみると参考URL※1が、同じエラーのようでopen driverを利用すれば良いとのこと。
$ sudo apt install nvidia-driver-550-open
リブート後確認。
$ lsmod |grep -i nvi
nvidia_uvm           4657152  0
nvidia_drm             94208  0
nvidia_modeset       1495040  1 nvidia_drm
nvidia               8577024  2 nvidia_uvm,nvidia_modeset
drm_kms_helper        311296  2 vmwgfx,nvidia_drm
drm                   622592  7 vmwgfx,drm_kms_helper,nvidia,nvidia_drm,ttm
$ nvidia-smi
Fri May  3 21:39:07 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.67                 Driver Version: 550.67         CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4070 ...    Off |   00000000:02:05.0 Off |                  N/A |
| 30%   41C    P8             15W /  220W |       2MiB /  12282MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+
$
成功。
Ubuntu Server Docs ※2をみると、-server版の方が用途に合っていたかもしれません。

参考URL)