ProxmoxでNVIDIA GPUパススルーを使用してDeepSeek AIモデルを実行する方法
AIモデルをローカルで実行することは、プライバシーの向上、レイテンシの低減、およびインフラストラクチャ全体の完全な制御を提供します。このガイドでは、Proxmox仮想マシン内にGPUパススルーを使用してDeepSeekモデル(DeepSeek-R1など)をセットアップする方法を説明します。この構成により、AIモデルはNVIDIA GPUに直接アクセスできるため、パフォーマンスが大幅に向上します。
このチュートリアルでは、あなたは学びます:
- Proxmoxホスト上でIOMMUとGPUパススルーを構成する方法
- GPUコンピューティングのために適切に構成されたVMを作成する方法
- VMにNVIDIAドライバーをインストールする方法
- OllamaをDeepSeekモデルでインストールして実行する方法
- ハードウェアに基づいて異なるDeepSeekモデルサイズを選択する方法
- 一般的なGPUパススルーの問題をトラブルシューティングする方法
ProxmoxでのGPUパススルーの設定
OllamaでDeepSeek-R1を実行する前に、仮想マシンがGPUに直接アクセスできるように、GPUパストスルーを適切に設定する必要があります。これにはIOMMUの有効化、システムをVFIOドライバーを使用するように設定すること、およびVMを正しくセットアップすることが含まれます。
IOMMUを有効にしてGRUBを設定する: まず、ホストシステムでIOMMUサポートを有効にする必要があります。
nano /etc/default/grubGRUB_CMDLINE_LINUX_DEFAULTを含む行を見つけて、IOMMUパラメータを追加してください:GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"ファイルを保存した後、GRUBを更新して再起動します:
update-grub rebootIOMMUが機能しているか確認する: システムが再起動した後、IOMMUが正しく有効になっているか確認してください。
dmesg | grep -e IOMMU -e DMARIOMMUが有効で機能していることを示す出力が表示されるはずです。
GPUのVFIOドライバーを設定する: NVIDIA GPUにVFIOドライバーを使用するようにシステムを設定します
まず、GPUのベンダーおよびデバイスIDを見つけます:lspci -nn | grep -i nvidia出力は次のようになります:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3080] [10de:2206] (rev a1) 01:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)この例では、ベンダーIDとデバイスIDは `10de:2206` (GPU用)と `10de:1aef` (オーディオコンポーネント用)です。適切なパススルーには両方が必要です。
方法1: modprobeによる自動構成:
echo "options vfio-pci ids=10de:2206,10de:1aef" > /etc/modprobe.d/vfio.conf update-initramfs -u rebootlspciの出力に示されているように、システムから実際のベンダー:デバイスIDを使用してください。
方法2: 手動バインディング(自動方法が機能しない場合):
自動方法が再起動後に機能しない場合、systemdサービスを使用してGPUをVFIOドライバーに手動でバインドすることができます:
まず、バインディングプロセスを処理するスクリプトを作成します:nano /usr/local/bin/vfio-bind-gpu.sh次の内容を追加してください:
#!/bin/bash The full PCI address needs the domain part "0000:" added before the addresses from lspci For example, if lspci shows "01:00.0", use "0000:01:00.0" here GPU_IDS="0000:01:00.0 0000:01:00.1" modprobe vfio-pci for dev in $GPU_IDS; do if [ -e /sys/bus/pci/devices/$dev/driver/unbind ]; then echo -n "$dev" > /sys/bus/pci/devices/$dev/driver/unbind fi if [ -e /sys/bus/pci/drivers/vfio-pci/bind ]; then echo -n "$dev" > /sys/bus/pci/drivers/vfio-pci/bind fi done重要: lspci コマンドは「01:00.0」のようなアドレスを表示しますが、sysfs ファイルシステムではドメインプレフィックス「0000:」が必要です。このスクリプトで lspci の各 PCI アドレスを使用する際は、必ず「0000:」を前に追加してください。
スクリプトを実行可能にする:
chmod +x /usr/local/bin/vfio-bind-gpu.shブート時にこのスクリプトを実行するためのsystemdサービスを作成してください:
nano /etc/systemd/system/vfio-bind-gpu.service次の内容を追加してください:
[Unit] Description=Bind NVIDIA GPU to VFIO at Boot After=network.target [Service] Type=oneshot ExecStart=/usr/local/bin/vfio-bind-gpu.sh RemainAfterExit=yes [Install] WantedBy=multi-user.targetサービスを有効にして開始します:
systemctl daemon-reload systemctl enable vfio-bind-gpu.service systemctl start vfio-bind-gpu.service
GPU計算のためのVMの作成
ホストにGPUパススルーが設定されたので、パススルーされたGPUを使用するように適切に構成されたVMを作成する必要があります。このプロセスにはProxmoxのWebインターフェースを使用します。
- Proxmoxのウェブインターフェースにアクセスする: ウェブブラウザを開き、Proxmoxホスト(https://your-proxmox-ip:8006)に移動し、資格情報でログインします。
新しいVMを作成する: Proxmoxのウェブインターフェースで:
- サーバービュー(左パネル)でProxmoxノードを選択してください
- 右上の「仮想マシンを作成」ボタンをクリックします。
「一般」タブで:
- VM ID: 一意のIDを選択してください(例:9100)
- 名前:説明的な名前を入力してください(例: “ollama-vm”)
- 次へクリックしてください
OS設定を構成する: 「OS」タブで:
- 「CD/DVDディスクイメージファイル(iso)を使用する」を選択してください
システム設定を構成する: 「システム」タブにて:
- グラフィックカード:“デフォルト”に設定
ディスクの設定: 「ディスク」タブで:
- ストレージ: ZFSストレージプールを選択してください(例: “zfs_raid1_storage”)
CPUの設定: 「CPU」タブで:
- ソケット: 1
メモリを設定する: 「メモリ」タブで:
- メモリ: 7Bパラメータモデル用に32768 MB(32GB)、または14Bパラメータモデル用に65536 MB(64GB)
ネットワークを設定する: 「ネットワーク」タブで:
- ブリッジ: vmbr0
VMにGPUを追加する: VMを作成した後:
- 左のパネルで新しく作成したVMを選択してください。
ハードウェア構成の確認: あなたのハードウェアタブには次のように表示されるはずです:
- メモリ:あなたの割り当てられたメモリ(例:32または64 GiB)
ハードウェアの推奨:
- 7Bパラメータモデル用:8以上のCPUコア、32GB RAM、8GB以上のVRAMを持つNVIDIA GPU(RTX 3060以上)
- 14Bパラメータモデル用:12以上のCPUコア、64GB RAM、16GB以上のVRAMを持つNVIDIA GPU(RTX 3080以上)
VMにNVIDIAドライバーをインストールする
VMが稼働したら、GPUにアクセスするためにNVIDIAドライバをインストールする必要があります。
非自由および contrib リポジトリを追加する: NVIDIA ドライバーに必要なリポジトリを有効にします
apt update apt install -y software-properties-common add-apt-repository contrib add-apt-repository non-free apt updateNVIDIAドライバーとCUDAツールキットをインストールする: VMに必要なドライバーとCUDAをインストールします
apt install -y nvidia-driver nvidia-cuda-toolkit firmware-misc-nonfree rebootVMが再起動した後、GPUが認識されていることを確認してください:
nvidia-smiGPUモデル、ドライバーバージョン、その他の情報を表示する出力が表示されるはずです。
DeepSeekモデルを使用してOllamaをインストールおよび実行する
私たちのVMがGPUにアクセスできるようになったので、OllamaをインストールしてDeepSeekモデルを実行できます。
Ollamaをインストール: あなたのVMにOllamaをインストールします
curl -fsSL https://ollama.com/install.sh | shインストールを確認してください:
ollama --versionDeepSeekモデルを選択して実行する: お好みのモデルをダウンロードして実行してください
7Bパラメータモデル(速く、リソースをあまり消費しない)の場合:ollama pull deepseek-r1:7b ollama run deepseek-r1:7b14Bパラメータモデル(高品質でリソース集約型)のために:
ollama pull deepseek-r1:14b ollama run deepseek-r1:14bこれによりモデルがダウンロードされます(インターネット接続の速度によって時間がかかることがあります)そして、対話型チャットセッションが開始されます。7Bモデルは速度と品質の良いバランスを提供し、14Bモデルはより良い応答を提供しますが、より多くのGPUメモリが必要で、動作が遅くなります。
GPU使用状況を監視する: 推論中にGPU使用状況を監視できます
nvidia-smi -l 1これにより、GPUの使用状況、メモリの消費量、温度をリアルタイムで表示し、毎秒更新されます。これにより、選択したモデルサイズに対してハードウェアが十分かどうかを判断するのに役立ちます。
一般的な問題のトラブルシューティング
VMでGPUが検出されない: GPUが検出されない場合
lspci | grep NVIDIAGPUがリストに表示されない場合は、以下を確認してください:
NVIDIAドライバーの問題: ドライバーが正しく読み込まれない場合
dmesg | grep -i nvidiaエラーメッセージを探してください。一般的な問題には以下が含まれます:
1. IOMMUグループの分離
2. GPUがホストから適切にバインド解除されたかどうか
3. VMの構成(q35マシンタイプでUEFIである必要があります)
1. セキュアブートの干渉(無効にする必要があります)
2. 非互換のドライバーバージョン
3. GPUが完全にパススルーされていない(ビデオとオーディオの両方の機能がパススルーされる必要があります)
結論
ProxmoxでGPUパススルーを用いてDeepSeekモデルを設定することで、最適なパフォーマンスで強力なAIモデルをローカルで実行することができます。この構成は、応答時間、プライバシー、およびAIインフラストラクチャに対する制御が改善されます。初期設定プロセスは複雑に思えるかもしれませんが、完全なGPUアクセラレーションを備えたローカルで稼働するLLMの利点は非常に大きいです。
このガイドに従うことで、バックアップ、クローン作成、移行が可能な専用AI仮想マシンを作成しました。他のProxmox VMと同様に操作できますが、高性能GPUへのアクセスを維持しています。異なるモデルサイズ(7Bまたは14B)から選択する柔軟性により、ハードウェアの能力とニーズに基づいて性能と品質のバランスを取ることができます。
私たちのテストによると、RTX 3080 GPUを搭載したシステムでは、7Bモデルが最小限のレイテンシで迅速な応答を提供し、14Bモデルは若干遅い応答時間の代わりにより高品質の出力を提供します。今後はOllamaがサポートする他のモデルを探索したり、特定の使用ケースに合わせてDeepSeekをカスタマイズしたりすることができます。





