算力不够?NAS 部署 GPUStack,集群化让大模型运行速度飙升!
Hello 大家好,我是 David
订阅我的频道 ,分享更多 NAS 教程和资讯 ~
GPUStack:
一个用于运行 AI 模型的开源 GPU 集群管理器。

核心特性:
广泛的 GPU 兼容性:无缝支持 Apple Mac、Windows PC 和 Linux 服务器上各种供应商的 GPU。
广泛的模型支持:支持各种模型,包括 LLM、多模态 VLM、图像模型、语音模型、文本嵌入模型和重排序模型。
灵活的推理后端:支持与 llama-box(llama.cpp 和 stable-diffusion.cpp)、vox-box、vLLM 和 Ascend MindIE 等多种推理后端的灵活集成。
多版本后端支持:同时运行推理后端的多个版本,以满足不同模型的不同运行依赖。
分布式推理:支持单机和多机多卡并行推理,包括跨供应商和运行环境的异构 GPU。
可扩展的 GPU 架构:通过向基础设施添加更多 GPU 或节点轻松进行扩展。
强大的模型稳定性:通过自动故障恢复、多实例冗余和推理请求的负载平衡确保高可用性。
智能部署评估:自动评估模型资源需求、后端和架构兼容性、操作系统兼容性以及其他与部署相关的因素。
自动调度:根据可用资源动态分配模型。
轻量级 Python 包:最小依赖性和低操作开销。
OpenAI 兼容 API:完全兼容 OpenAI 的 API 规范,实现无缝集成。
用户和 API 密钥管理:简化用户和 API 密钥的管理。
实时 GPU 监控:实时跟踪 GPU 性能和利用率。
令牌和速率指标:监控 Token 使用情况和 API 请求速率。
安装
这里是支持 macOS,Linux 和 Windows 等多个平台系统安装,这里只讲 Docker 部署。运行模型推理不一定需要 GPU ,使用 CPU 也是可以的。
Docker(主节点)
services:
gpustack:
image: gpustack/gpustack:latest-cpu
container_name: gpustack
ports:
- 9090:80
volumes:
- /vol1/1000/docker/gpustack:/var/lib/gpustack
restart: unless-stopped
Docker(子节点)
services:
gpustack:
image: gpustack/gpustack:latest-cpu
container_name: gpustack
command: --server-url http://your_gpustack_url --token your_gpustack_token
network_mode: host
volumes:
- /vol1/1000/docker/gpustack:/var/lib/gpustack
restart: unless-stopped
使用
浏览器中输入 http://NAS的IP:9090 就能看到界面

使用命令行获取 admin 的密码
cat /var/lib/gpustack/initial_admin_password
输入用户名和密码进行登录

修改初始密码

进入面板,这里可以看到当前设备的情况

点击“资源”,可以看到目前只有一台设备

点击“模型库”,这里部署一个模型测试一下

配置这些直接默认,点击“保存”

模型下载完成,会自动启动

测试一下对话,因为模型比较小,回复非常快

点击“概览”,可以看的内存占用上升

TIP:
下面说一下怎么样添加子节点,这样就可以多台设备进行运算。
点击“资源”,添加 Worker

根据自己设备进行部署,下面简单说一下 Docker 进行部署

首先需要从主节点获取 token,输入命令
下面根据实际情况修改,注意网络要用 host
services:
gpustack:
image: gpustack/gpustack:latest-cpu
container_name: gpustack
command: --server-url http://192.168.31.90:9090 --token 199ecc253092cafde04afea66edc8cd7
network_mode: host
volumes:
- /vol1/1000/docker/gpustack:/var/lib/gpustack
restart: unless-stopped
部署成功以后,就可以看到两个节点了

这个就是子节点了,可以点击编辑一下标签做区分

TIP:
由于我也不太熟悉,有可能讲错只能多多理解了。
点击“模型”,可以看到副本数是 1/1。说明当前运行的模型数量为 1,总模型数量为 1。

将副本数改为对应设备数量即可

子节点设备就会自动下载模型了,这样两个设备就都有模型可以工作了

可以测试一下是否有效果,按道理这样就可以的了(不清楚是不是我模型比较小,子节点没效果)

回到“模型”,可以调整一下放置策略这些

如果想指定某个节点工作,填写节点名称就行(这里的键和值,可以在资源的编辑设备里面可以获取)

停止和重新启动,这样就能看到只有一台设备工作了

再次对话,就是只调用指定设备了

总结
虽然网上也有许多用于集群运行 AI 模型的技术方案,但 GPUStack 无疑是我目前发现部署最简单,最容易上手的了。它最大的亮点在于简便,一键式部署,可视化操作界面,简单设置就可以使用。对于新手而言,这大大降低了技术门槛,而且添加子节点的操作也十分方便。
综合推荐:⭐⭐⭐⭐(非常推荐一试)
使用体验:⭐⭐⭐⭐(简单易上手)
部署难易:⭐⭐(简单)︎
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

