Ubuntu+RTX 5060Ti 16GBで構築するローカルLLM

# １）はじめに
RTX 5060Ti 16GBとUbuntu、Docker、Open WebUI、Ollama、オープンモデルLLMを使用しローカルLLMを構築してみました。
検討経緯と構築手順を共有しておきます。

# ２）ハード構成

パーツ選定は以下ポイントで選びました。

1. must：VRAM 16GB以上
2. GPUを100%生成AIの計算に使用することも想定し、セットアップ時画面が出ない事も想定しCPUはGPU内蔵型をチョイス
3. ファインチューニング時は各ファンMAX(=爆音)かもだけど、一応静音パーツで構成
4. PCケースは机にぶら下がっているマウントラックに格納可能なW＝210mm以下を選定
5. GPU込みで20万以下としたかったがGPUが高くて無理だった
6. ショップに組立を依頼すると１ヶ月待ちと言われたし、少しでも安価にしたいので自分で組立

-|パーツ|希望スペック|製品名
-|-|-|-
1|CPU|少電力<BR>GPU内蔵|[Intel Core i7 14700](https://www.intel.co.jp/content/www/jp/ja/products/sku/236781/intel-core-i7-processor-14700-33m-cache-up-to-5-40-ghz/specifications.html) TDP=65W GPU内蔵
2|MEM|64GB |[Crucial Pro 64GB Kit (32GBx2) DDR4-3200 UDIMM](https://www.crucial.jp/memory/ddr4/CP2K32G4DFRA32A)
3|MB|ASUS|[ASUS TUF B760-Plus WiFi D4](https://www.asus.com/jp/motherboards-components/motherboards/tuf-gaming/tuf-gaming-b760-plus-wifi-d4/)
4| GPU|VRAM16GB|[ZOTAC GAMING GeForce RTX 5060 Ti 16GB Twin Edge OC](https://www.zotac.com/jp/product/graphics_card/zotac-gaming-geforce-rtx-5060-ti-16gb-twin-edge-oc#download)| 消費電力180W L=220.5 W=41.6(2slot) H=120.25mm 
5|SSD|M.2 2TB |Western Digital WDS200T2X0E<BR> Read 7300MB/s Write 6600MB/s
6| CPUクーラ|空冷 |DEEPCOOL AK620
7| 電源|850W |Corsair RM850x 2024 Cybenetics Gold ATX3.1
8| PCケース|静音コンパクト| [Define 7 Compact Solid Black](https://www.fractal-design.com/ja/products/cases/define/define-7-compact/) <BR>L=427 W=210 H=474mm
-|計25万円

# ３）ソフト構成
まずはローカルLLMを動かすことを目的にソフトウェア構成を検討してみました。

1. LLM実行環境：Ollama(CUDA対応)
2. チャットUI：Open WebUI 
3. 起動サービス管理：Docker
4. LLMモデル管理：Ollama
5. GPU活用：NVIDIAドライバ 、CUDA利用
6. dockerでGPU活用：NVIDIA Container Toolkit

-|ソフト|バージョン|
-|-|-
1|OS|Ubuntu 22.04 LTS
2|GPUドライバー|575.51.02 BETA
3|CUDA Toolkit|12.8 Update 1
4|cuDNN|9.8.0 
5|docker|28.1.1
6|Ollama|0.6.6
7|Open WebUi|0.6.5
8|利用オープンモデルLLM|deepseek-r1
-|↑|gemma3
-|↑|Llama-3-ELYZA-JP-8B
-|↑|llama3
-|↑|llama3.3
-|↑|mistral-small3.1
-|↑|mistral
-|↑|phi4
-|↑|qwq

# ４）構築手順
４−１）OSインストール
４−２）RTX 5060 Tiドライバーインストール
４−３）CUDA Toolkit 12.8 Update 1インストール
４−４）cuDNN 9.8.0 インストール
４−５）Dockerインストール
４−６）NVIDIA Container Toolkitインストール
４−７）Ollamaコンテナの起動
４−８）Open WebUIコンテナの起動
４−９）Open WebUI動作確認

## ４−１）OSインストール
M.2 SSD 2TBにUbuntu 22.04 LTSをインストールします。
詳細なインストール方法については今回は割愛させていただきます。
参考：パーティション構成
/boot/efi 1GB 
/ 残約2TB
swap なし(4GB程度が適切説も。SSDでswap作成すると寿命を短くする情報あり。64GBあれば不要意見あり= ∴無しに)

![Screenshot from 2025-04-28 13-34-18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3975088/ab271f87-5546-4138-a6ba-92b1944d3892.png)

![Screenshot from 2025-04-28 13-50-20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3975088/f20fcea4-baca-443a-b297-190e40996695.png)

## ４−２）RTX 5060 Tiドライバーインストール
４−２−１）GPUハードウェア認識確認→OK。
lspci | grep -i nvidia

```lspci | grep -i nvidia
$ spci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation Device 2d04 (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 22eb (rev a1)
```
４−２−２）推奨ドライバー確認
```
ubuntu-drivers devices
```

→✖何も出てこない。
→通常はこの後、以下コマンド実施。
 sudo apt install nvidia-driver-XXX（XXXは推奨バージョン）でインストール
→調べたところ現状ドライバーが**β版**しかなく？簡易インストールできないようなので
「NVIDIA 公式ドライバーのダウンロード」サイトから合致しそうなドライバーを検索し手動でインストールすることに。

４−２−３）NVIDIAドライバー検索
https://www.nvidia.com/ja-jp/drivers/
「ドライバーの手動検索」メニュー
→GeForce 選択
→GeForce RTX 50 Series 選択
→NVIDIA Geforce RTX 5060 Ti 選択
→Linux 64-Bit 選択
→Japanses 選択
→「探す」クリック

４−２−４）NVIDIAドライバーダウンロード(**2025/04/29現在ベータ版のみ**)
https://www.nvidia.com/en-us/drivers/details/243385/
検索の結果以下ドライバーを使用します。
ファイル名：NVIDIA-Linux-x86_64-575.51.02.run 
Linux x64 (AMD64/EM64T) Display Driver 575.51.02 | Linux 64-bit
Driver Version:	**575.51.02 | BETA**
Release Date:	Wed Apr 16, 2025
Operating System:	Linux 64-bit
Language:		Japanese
File Size:		386.86 MB

※以下NVIDIA Webページより
>ベータ版ドライバーとは?
ベータ版ドライバーは、速やかなバグ修正と新機能へのアクセスのためのプレビュー リリースとして NVIDIA から提供されます。ベータ版ドライバーは認定テスト中であり、重大な問題が含まれる場合があります。NVIDIA 製品でベータ版ドライバーを使用する場合、システムとデータの保護はご利用者の方の責任となります。このサイトのベータ版ドライバーを使用する前に、ご利用者の方には全てのデータをバックアップすることを強くお勧めします。ベータ版ドライバーをインストールして使用する前に、より新しい推奨/認定ドライバーが NVIDIA.com にまだ掲載されていないことを確認してください。掲載されたベータ版ドライバーには、保証もサポート サービスも含まれません。

４−２−５）NVIDIAドライバーのインストール
```
sudo sh /home/XXX/setup/NVIDIA-Linux-x86_64-575.51.02.run --glvnd-egl-config-path=/etc/glvnd/egl_vendor.d --compat32-libdir=/usr/lib32
```
※注意：上記手順はドライバーのダウンロード先が/home/XXX/setupの場合

```
画面１）
Multiple kernel module types are available for this system. Which      
  would you like to use?

                NVIDIA Proprietary           ●MIT/GPL   
```
訳：NVIDIA Proprietary：従来のNVIDIA独自のクローズドソース（プロプライエタリ）カーネルモジュール。古いGPU向け。
MIT/GPL：オープンソース（MIT/GPLデュアルライセンス）のカーネルモジュール。Turing以降の新しいGPU向け。

```
画面２）
You appear to be running an X server.  Installing the NVIDIA driver while X  
  is running is not recommended, as doing so may prevent the installer from    
  detecting some potential installation problems, and it may not be possible   
  to start new graphics applications after a new driver is installed.  If you  
  choose to continue installation, it is highly recommended that you reboot    
  your computer after installation to use the newly installed driver.          

                 ●Continue installation      Abort installation   
```
訳：「Xサーバーが動作中です。Xサーバー稼働中にNVIDIAドライバーをインストールすることは推奨されません。この状態でインストールすると、潜在的な問題の検出が妨げられる可能性があり、新しいドライバーインストール後にグラフィックアプリケーションが起動できなくなる場合があります。インストールを続行する場合は、新しいドライバーを使用するためにインストール後すぐに再起動することを強く推奨します。」

```
画面３）
 An alternate method of installing the NVIDIA driver was detected. (This is   
  usually a package provided by your distributor.) A driver installed via that 
  method may integrate better with your system than a driver installed by      
  nvidia-installer.

  Please review the message provided by the maintainer of this alternate       
  installation method and decide how to proceed:

                 ●Continue installation      Abort installation                 

 The NVIDIA driver provided by Ubuntu can be installed by launching the
 "Software & Updates" application, and by selecting the NVIDIA driver from the
 "Additional Drivers" tab.
```
訳：「別のNVIDIAドライバーインストール方法が検出されました（通常はディストリビューター提供のパッケージです）。この方法でインストールされたドライバーは、nvidia-installerでインストールするよりもシステムとの統合性が高い場合があります。

この代替インストール方法の管理者からのメッセージを確認し、対応方法を決定してください：

Ubuntuが提供するNVIDIAドライバーは『ソフトウェアとアップデート』アプリケーションを起動し、『追加のドライバー』タブから選択してインストールできます。」
```
画面４）
Install NVIDIA's 32-bit compatibility libraries?
                                                                               
                          Yes                       ●No   
```

◆以下インストール時必要に応じ対応

エラー画面 a）gcc インストール
```
ERROR: Unable to find the development tool `cc` in your path; please make    
         sure that you have the package 'gcc' installed.  If gcc is installed  
         on your system, then please check that `cc` is in your PATH.          

                                       OK  
```
```
sudo apt install gcc
sudo apt update
```

エラー画面 b）make インストール
```
ERROR: Unable to find the development tool `make` in your path; please make  
         sure that you have the package 'make' installed.  If make is          
         installed on your system, then please check that `make` is in your    
         PATH.

                                       OK  
```
```
sudo apt install make
sudo apt update
```

４−２−６）GPU認識確認
再起動後、nvidia-smi コマンドでGPU認識を確認→OK
※注意：ドライバーインストール時、コンソールが固まる事例あり。再起動で問題無く認識。

```nvidia-smi
nvidia-smi
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 575.51.02              Driver Version: 575.51.02      CUDA Version: 12.9     |
|-----------------------------------------+------------------------+----------------------+
| 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 5060 Ti     Off |   00000000:01:00.0  On |                  N/A |
|  0%   32C    P8              6W /  180W |     204MiB /  16311MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A            2001      G   /usr/lib/xorg/Xorg                       77MiB |
|    0   N/A  N/A            2313      G   /usr/bin/gnome-shell                     85MiB |
|    0   N/A  N/A            3111      G   /usr/bin/gnome-control-center            11MiB |
+-----------------------------------------------------------------------------------------+
```
## ４−３）CUDA Toolkit 12.8 Update 1インストール
４−３−１）ubuntuのインストール手順確認
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=24.04&target_type=deb_local

以下を選択します。
Select Target Platform
→Operating System：Linux
→Architecture：x86_64
→Distribution：Ubuntu
→Version：24.04
→Installer Type：deb (local)

４−３−２）CUDA Toolkitインストール
```
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-ubuntu2404.pin
sudo mv cuda-ubuntu2404.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda-repo-ubuntu2404-12-8-local_12.8.1-570.124.06-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2404-12-8-local_12.8.1-570.124.06-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2404-12-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-8
```
## ４−４）cuDNN 9.8.0 インストール
４−４−１）CUDA Toolkitの確認
```
$ /usr/local/cuda-12.8/bin/nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:23:50_PST_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0
```

４−４−２）インストール手順確認
https://developer.nvidia.com/cudnn-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=24.04&target_type=deb_local
以下を選択します。
Select Target Platform
→Operating System：Linux
→Architecture：x86_64
→Distribution：Ubuntu
→Version：24.04
→Installer Type：deb (local)

４−４−３）cuDNN インストール
```
wget https://developer.download.nvidia.com/compute/cudnn/9.8.0/local_installers/cudnn-local-repo-ubuntu2404-9.8.0_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2404-9.8.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2404-9.8.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn
```
４−４−４）GPUモニタリングツールの設定
nvitop ←NVIDIA GPUの状態や使用状況をリアルタイムで簡潔に表示するツール

４−４−３−１)設定時(１回のみ)
a) 仮想環境ツールのインストール（未導入の場合）
Pythonの仮想環境を作成するためのvenvモジュールをインストール
```
sudo apt install python3-venv
```

b) 仮想環境作成（例：~/venv_gpustat）
```
python3 -m venv ~/venv_gpustat
```
c) 仮想環境の有効化
ホームディレクトリ（~）に venv_gpustat という名前のPython仮想環境を作成
```
source ~/venv_gpustat/bin/activate
```
d) nvitopをPython環境にインストール
```
pip install nvitop
```
４−４−３−２)利用時(毎回)
```
source ~/venv_gpustat/bin/activate
nvitop
```

## ４−５）Dockerインストール
４−５−１）Dockerインストール
a) Docker公式リポジトリ追加、GPGキー取得
```
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```

b) Docker Engineインストール
```
sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
c) ユーザーをdockerグループに追加
```
sudo usermod -aG docker $USER && newgrp docker
```

４−５−２）Dockerインストール確認
```
$ docker --version
Docker version 28.1.1, build 4eba377
```
## ４−６）NVIDIA Container Toolkitインストール
４ー６−１）NVIDIA Container Toolkitインストール手順確認
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

４−６−２）NVIDIA Container Toolkitインストール
a) APTリポジトリ追加
```
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
```

b) パッケージ更新
```
sudo apt update
```
c) Toolkitインストール
```
sudo apt install -y nvidia-container-toolkit
```

d) Configure the container runtime by using the nvidia-ctk command
```
sudo nvidia-ctk runtime configure --runtime=docker
```

e) Docker再起動
```
sudo systemctl restart docker
```

f) 動作確認
```
sudo docker run --rm --gpus all nvidia/cuda:12.8.1-base-ubuntu22.04 nvidia-smi
```

## ４−７）Ollamaコンテナの起動
注意：ファイル保存エリアはホストの/docker_dataを明示的に指定しています。
```
docker run -d \
 --gpus=all \
 -v /docker_data/ollama:/root/.ollama \
 -p 11434:11434 \
 --name ollama \
 --restart always ollama/ollama
```

```
実行例
$ docker run -d \
 --gpus=all \
 -v /docker_data/ollama:/root/.ollama \
 -p 11434:11434 \
 --name ollama \
 --restart always ollama/ollama
Unable to find image 'ollama/ollama:latest' locally
latest: Pulling from ollama/ollama
XXXXXXXX469f: Pull complete 
XXXXXXXXc313: Pull complete 
XXXXXXXX3bf5: Pull complete 
XXXXXXXX6b05: Pull complete 
Digest: sha256:XXXXXXXXXX85ca1f9f3b6f90dce394d73d7dd024a63104f9a5056ce1da4db1be
Status: Downloaded newer image for ollama/ollama:latest
XXXXXXXXf491ba8face97c5f2c5e9f2fea4d9fa06be2c4ad7f61304fb38c8be1
```

 ## ４−８）Open WebUIコンテナの起動
注意：ファイル保存エリアはホストの/docker_dataを明示的に指定しています。
```
docker run -d \
 --add-host=host.docker.internal:host-gateway \
 -v /docker_data/open-webui:/app/backend/data \
 -p 3000:8080 \
 --name open-webui \
 --restart always ghcr.io/open-webui/open-webui:main
```
```
実行例
$ docker run -d \
 --add-host=host.docker.internal:host-gateway \
 -v /docker_data/open-webui:/app/backend/data \
 -p 3000:8080 \
 --name open-webui \
 --restart always ghcr.io/open-webui/open-webui:main
Unable to find image 'ghcr.io/open-webui/open-webui:main' locally
main: Pulling from open-webui/open-webui
XXXXXXXX7ccc: Pull complete 
XXXXXXXXfd5c: Pull complete 
XXXXXXXX5491: Pull complete 
XXXXXXXXa7fe: Pull complete 
XXXXXXXXe453: Pull complete 
XXXXXXXXef54: Pull complete 
XXXXXXXXf9c7: Pull complete 
XXXXXXXXbab0: Pull complete 
XXXXXXXX3771: Pull complete 
XXXXXXXX11d1: Pull complete 
XXXXXXXX3e3a: Pull complete 
XXXXXXXXe9e7: Pull complete 
XXXXXXXX6aec: Pull complete 
XXXXXXXX9be2: Pull complete 
XXXXXXXXd8b0: Pull complete 
Digest: sha256:XXXXXXXXXX311729e0737bf9bdd877e6b0aa84a02a7b4f220506b28c8d3181cb
Status: Downloaded newer image for ghcr.io/open-webui/open-webui:main
XXXXXXXXXXd4344721903fce1c00d6fa480e977fe0bd6511e0e3823686b24531
```

## ４−９） Open WebUI動作確認
Open WebUIのトップページが表示されれば起動成功です。
お疲れ様でした。
※Open WebUIの詳細な利用方法は別途解説予定です。

４−９−１）ブラウザで http://localhost:3000 にアクセス
４−９−２）アカウントを作成してログイン
４−９−３）以下のオープンモデルLLMをダウンロードしローカルLLM利用開始！
deepseek-r1
gemma3
Llama-3-ELYZA-JP-8B
llama3
llama3.3
mistral-small3.1
mistral
phi4
qwq
hf.co/elyza/Llama-3-ELYZA-JP-8B-GGUF

参考1) Open WebUIコンテナの再起動
```
sudo docker restart open-webui
```
参考2) ログの見方
```
docker logs -f open-webui
```
# ５）おわりに
RTX 5060Ti_16GBを急遽購入することができ、UbuntuとオープンモデルLLMを使用しローカルLLM環境を構築してみました。
久しぶりの環境構築だったのでだいぶん構築のカンが鈍っていました。
構築手順は記載方法が必ずしも最良ではないかもしれませんがご了承ください。