GPUStack 是一個設計用於執行大模型的開源 GPU 叢集管理器,提供私有部署的大模型服務,支援大語言模型、Embedding 文字嵌入模型、Reranker 重排序模型、Vision 多模態模型等各種模型。它可以聚合不同平臺(如 Apple Mac、Windows PC 和 Linux 伺服器)的 GPU,構建一個統一的異構 GPU 叢集。
在 Linux 中十分推薦使用 Docker 方式安裝 GPUStack,可以避免很多依賴和衝突問題,簡化安裝過程。
今天帶來一篇關於如何設定 NVIDIA 容器執行時並使用容器方式執行 GPUStack 的操作教程。
前置準備
驗證當前環境有 NVIDIA GPU 硬體:
lspci | grep -i nvidia
驗證系統已安裝 GCC:
gcc --version
安裝 NVIDIA 驅動
參考:https://developer.nvidia.com/datacenter-driver-downloads
為當前核心安裝核心標頭檔案和開發包:
sudo apt-get install linux-headers-$(uname -r)
安裝 cuda-keyring
包:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
安裝 NVIDIA 驅動:
sudo apt-get update
sudo apt-get install nvidia-open -y
重啟系統:
sudo reboot
重新登入並檢查 nvidia-smi
命令可用:
nvidia-smi
安裝 Docker Engine
參考:https://docs.docker.com/engine/install/ubuntu/
執行以下命令解除安裝所有衝突的包:
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
設定 Docker 的 apt 倉庫:
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install 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
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
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
sudo apt-get update
安裝 Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
檢查 docker
命令可用:
docker info
安裝 NVIDIA Container Toolkit
參考:https://docs.nvidia.com/datacenter/cloud-native/container-too...
配置 NVIDIA Container Toolkit 的生產倉庫:
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
安裝 NVIDIA Container Toolkit:
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit -y
使用 nvidia-ctk
命令配置容器執行時:
sudo nvidia-ctk runtime configure --runtime=docker
檢查 daemon.json
檔案的配置:
cat /etc/docker/daemon.json
重啟 Docker daemon:
sudo systemctl restart docker
執行一個示例的 CUDA 容器來驗證安裝:
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
安裝 GPUStack
參考:https://docs.gpustack.ai/latest/installation/docker-installat...
透過 Docker 安裝 GPUStack:
docker run -d --gpus all -p 80:80 --ipc=host --name gpustack \
-v gpustack-data:/var/lib/gpustack gpustack/gpustack
使用以下命令檢視登入密碼:
docker exec -it gpustack cat /var/lib/gpustack/initial_admin_password
在瀏覽器訪問 GPUStack( http://YOUR_HOST_IP )以使用者名稱 admin
和密碼登入。設定密碼後,登入進 GPUStack,檢視識別到的 GPU 資源:
(可選)要新增額外的 Worker 節點,構建 GPU 叢集,在其它工作節點上執行以下命令:
docker run -d --gpus all --ipc=host --network=host \
gpustack/gpustack --server-url http://YOUR_HOST_IP --token YOUR_TOKEN
將其中的 http://YOUR_HOST_IP 替換為你的 GPUStack 訪問地址,將 YOUR_TOKEN 替換為用於新增 Worker 的認證 Token。要從 GPUStack Server 檢索 Token,使用以下命令:
docker exec -it gpustack cat /var/lib/gpustack/token
完成之後,嘗試從 Hugging Face 或其它模型倉庫部署模型:
在 Playground 中調測模型:
加入社群
以上為配置 NVIDIA 容器執行時環境並使用容器方式執行 GPUStack 的操作教程。
對 GPUStack 感興趣或者在使用過程中遇到問題,可以新增 GPUStack 微信小助手(微訊號:GPUStack)入群交流。
如果覺得寫得不錯,歡迎點贊、轉發、關注。