GPUStack v0.4.1 单节点与多节点安装与部署指南 Docker PowerShell

Introduce

GPUStack 是一个开源的 GPU 集群管理器,专为运行 AI 模型而设计。它以其广泛的硬件兼容性而闻名,支持多种品牌的 GPU,并能在 Apple MacBook、Windows PC 和 Linux 服务器上运行。

GPUStack支持各种AI模型,包括大型语言模型(LLMs)、扩散模型、音频模型、嵌入模型和重新排序模型。该平台易于扩展,支持单节点多 GPU 和多节点推理及服务,并提供多种推理后端,如 llama-box、``vox-boxvLLM`。作为一个轻量级的 Python 包,GPUStack 具有最小的依赖项和操作开销,并且提供与 OpenAI 标准兼容的 API。

此外,它还简化了用户和 API 密钥的管理,提供了 GPU 性能和利用率的实时监控,以及令牌使用和速率限制的有效跟踪。GPUStack 支持Apple Metal (M系列芯片), NVIDIA CUDA(计算能力6.0及以上), Ascend CANN(华为系列),Moore Threads MUSA加速器,以及 AMD64 和 ARM64 架构,并计划未来支持更多加速器技术。它还支持来自 Hugging Face、ModelScope、Ollama Library 和本地文件路径的多种模型,包括 LLMs(Qwen, LLaMA, Mistral, Deepseek, Phi, Yi)、VLLMs(Llama3.2-Vision, Pixtral, Qwen2-VL, LLaVA, InternVL2)、扩散模型(Stable Diffusion, FLUX)、重新排序器(GTE, BCE, BGE, Jina)和音频模型(Whisper,CosyVoice)。

特性:

  • 跨平台:Windows,Mac,Linux / ARM64 & AMD64;
  • 多加速器支持:Apple Silicon,NVIDIA,Ascend,Moore;
  • 单节点 / 多节点;
  • 多种模型:LLMs、VLLMs、扩散模型、重新排序器、音频模型;

1. Docker 安装 GPUStack

近期由于源的问题,访问不畅,加之需要下载约 13GB 的资源,每个节点的安装过程可能持续 20-40 分钟,请各位朋友耐心等待。如果有好的镜像源也可以尝试。

1.1 安装指令(Linux 主节点 Worker)

docker run \-d \--gpus all \-p 8080:80 \--ipc=host \--name gpustack \-v gpustack-data:/var/lib/gpustack \gpustack/gpustack

使用 --ipc=host 参数或者 --shm-size 参数来允许容器访问宿主机的共享内存。这在vLLM和pyTorch中用于在后台进程间共享数据,特别是在进行张量并行推理时。

由于 gpustack-data 容器卷是用来储存待部署的模型,因此及其占用磁盘存储空间,各位可修改为其它的磁盘位置。

1.2 安装指令(Linux 子节点 Worker)

docker run -d \--gpus all \--ipc=host \--network=host \gpustack/gpustack \--name gpustack \--server-url http://myserver \--token mytoken

其中的 --server-url 为你的主节点的地址

其中的 --token 为你的主节点用于添加子节点的 token,使用下面的指令从主节点获取

docker exec -it gpustack cat /var/lib/gpustack/token

1.3 Windows 子节点安装指令(非Docker)

Invoke-Expression "& { $((Invoke-WebRequest -Uri 'https://get.gpustack.ai' -UseBasicParsing).Content) } -- --worker-ip '192.168.31.223' --port 9999 --server-url http://myserver --token mytoken  --tools-download-base-url 'https://gpustack-1303613262.cos.ap-guangzhou.myqcloud.com'"

鉴于 Windows 的 Docker 需要使用 GPU 还需要安装 WSL 子系统等依赖,这里给出了使用 PowerShell(管理员)的安装方法。上述的指令中 --worker-ip 需要是你的子节点的 IP 地址,--port 也需要设置,如果这两个不填写会出现如下的报错:

[WinError] 以一种访问权限不允许的方式做了一个访问套接字的尝试

笔者尝试过使用netstat -ano|findstr 10150taskkill 终止掉占用的程序,但是这个报错依然存在,重启 NAT 也无济于事。所以请务必按照上面的方式设置 worker 的 IP 和 Port。

其余的和 Docker 的安装解释一致。

2. GPUStack 使用

使用下面的指令获得 admin 用户的登录密码,第一次登录后会要求修改密码

docker exec -it gpustack cat /var/lib/gpustack/initial_admin_password

GPUStack 主界面截图

上图展示的就是 v0.4.1 版本的主界面,可以看到有一个 Workers(节点),两块 GPU。

2.1 模型部署

侧边栏 > 模型 > 模型部署 > ModelScope 中点击,可以看到下面的模型部署界面,在此可以搜索你需要部署的模型。

模型部署界面截图

2.2 试验场

在试验场,也就是熟悉的 Playground,可以评估已部署的模型的效果

Playground 对话模型评估截图

2.3 资源

在资源栏可以看到每一个 Worker(节点)的资源使用情况,或者每一个 GPU 的使用情况。

资源栏截图

2.4 添加子节点

使用第一部分给出的方法,在另外一台电脑以子节点的方式安装 GPUStack Worker。等待安装完成之后,在资源界面刷新,即可看到新的节点资源。这里需要注意,例如笔者我的这三张显卡,架构跨度太大,CUDA 版本跨度太大,在运行时会出现错误。

新添加的子节点

GPU 列表

笔者部署了一个 RerankEmbedding 模型到这个子节点上,并运行了一个重排序测试,结果如下。

Embedding 模型测试

Playground 重排序测试

此时的子节点上的 GPU 也被调用。此时查看该模型在节点上的调用日志,如下。

Reranker模型在子节点上的调用日志

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/65138.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Docker】部署MySQL容器

关于docker,Windows上使用Powershell/CMD执行指令,Linux系统直接使用终端执行指令。 拉取MySQL 也可以跳过拉取步骤,直接run,这样本地容器不存在的话,会自动拉取最新/指定的版本。 # 默认拉取最新版本 docker pull …

黑马程序员JavaWeb开发教程(前端部分) ---笔记分享

总结 此篇文章记录的内容是不全的,我觉得基础的部分没有记录,我想主要学的是此课程的后端部分,前端部分学校有学习过,我就开倍速一带而过啦,还有就是学校学的是Vue3和此视频讲的Vue2还是有一定区别的。希望能对大家有…

SpringCloud 系列教程:微服务的未来(二)Mybatis-Plus的条件构造器、自定义SQL、Service接口基本用法

本篇博客将深入探讨 MyBatis-Plus 的三个核心功能:条件构造器、自定义 SQL 和 Service 接口的基本用法。通过对这些功能的学习和掌握,开发者能够更加高效地使用 MyBatis-Plus 进行业务开发。 目录 前言 条件构造器 自定义SQL Service接口基本用法 总结…

知识增强式生成KAG

随着人工智能技术的不断发展,尤其是在自然语言处理领域,知识增强式生成(KAG)作为一种新兴的技术框架,正逐步脱颖而出。与其前身——检索增强式生成(RAG)相比,KAG在处理特定领域知识、…

Nginx区分PC端和移动端访问

在使用Nginx时,可以通过$http_user_agent变量来判断用户访问的客户端类型,从而提供不同的内容或服务。下面是一个基于$http_user_agent变量来判断是否为PC访问的Nginx配置示例。 1. 理解$http_user_agent变量的含义及其在Nginx中的用途 $http_user_agen…

1.监督学习(上)

一.线性回归(Linear Regression Model): 输出无限多可能的数字。 【示例1】房价预测: 【图一】 假设您想根据房屋的大小预测房屋的价格,横轴:以平方英尺为单位的房屋大小,纵轴:是以千美元为单位的房屋价格。这里的小十字字中的每一个都是一所房子,其大小和价格是最…

前端编程图表化助手!Echarts入门

Echarts-一个基于javaScript的开源可视化图表库 在日常编程中,我们经常会用到类似饼图、柱状图等,而在网页中使用原生html和css很难做到类似效果。那么作为前端工程师,我们如何做出来一份好看而且实用的图标呢? 那么接下来&…

C#WPF基础介绍/第一个WPF程序

什么是WPF WPF(Windows Presentation Foundation)是微软公司推出的一种用于创建窗口应用程序的界面框架。它是.NET Framework的一部分,提供了一套先进的用户界面设计工具和功能,可以实现丰富的图形、动画和多媒体效果。 WPF 使用…

FPC在智能眼镜中的应用探索【新立电子】

在智能穿戴设备领域,智能眼镜具有独特的便携性、交互性和功能性等特点,智能眼镜的设计追求轻薄、美观与高度集成化。传统刚性电路板因体积庞大、难以弯曲,无法满足智能眼镜的复杂结构需求,而FPC其轻薄、柔软、可弯曲的特性&#x…

51c大模型~合集96

我自己的原文哦~ https://blog.51cto.com/whaosoft/12930135 #SnapGen 终于等来能塞进手机的文生图模型!十分之一体量,SnapGen实现百分百的效果 本文的共同一作为墨尔本大学的胡冬庭和香港科技大学的陈捷润和黄悉偈,完成于在 Snap 研究院…

知识图谱+大模型:打造全新智慧城市底层架构

在数字化时代,智慧城市的建设正迎来新一轮的变革。本文将探讨如何结合知识图谱和大模型技术,构建智慧城市的全新底层架构,以应对日益增长的数据量和复杂性,提升城市管理的智能化水平。 知识图谱:智慧城市的知识库 知识…

webrtc获取IceCandidate流程

在WebRTC(Web Real-Time Communication)中,ICECandidate是一个关键概念,它用于描述在建立点对点(P2P)连接时可以考虑的潜在通信端点。以下是关于WebRTC中ICECandidate的详细解释: 一、ICECandidate的定义 ICECandidate对象通常包含以下关键属性: foundation:用于唯一…

Unity 实现Canvas显示3D物体

新建一个UI相机,选择渲染层为UI 将主相机的渲染层去掉UI层 、 将Canvas的RenderMode设置为Screen Space - Camera,将RenderCamera设置为UI相机 新建3D物体的UI父物体,并将3D物体的层级设置为UI层 适当的放缩3DObjParent,让3D物体能显示出来…

“鞋履数据库”:运动鞋店产品信息管理系统

2.1 SSM框架介绍 本课题程序开发使用到的框架技术,英文名称缩写是SSM,在JavaWeb开发中使用的流行框架有SSH、SSM、SpringMVC等,作为一个课题程序采用SSH框架也可以,SSM框架也可以,SpringMVC也可以。SSH框架是属于重量级…

[源码解析] 模型并行分布式训练Megatron (2) --- 整体架构

link [源码解析] 模型并行分布式训练Megatron (2) --- 整体架构 目录 [源码解析] 模型并行分布式训练Megatron (2) --- 整体架构 0x00 摘要0x01 启动 1.1 分布式启动1.2 构造基础 1.2.1 获取模型1.2.2 获取数据集1.2.3 步进函数 1.2.3.1 广播数据0x02 Pretrain0x03 初始化 3.1 …

【Go】Go数据类型详解—map

1. 前言 本篇博客将会介绍Go语言当中的另一大核心数据类型——map(映射),当然在介绍这个数据类型之前我们还是要思考引入这个数据类型的原因: ❓ 需求:要求完成对一个班级所有同学的信息管理(包括但不限于…

自动驾驶---Parking端到端架构

​​​​​​1 背景 自动泊车也是智能驾驶低速功能中比较重要的一部分,低速功能其中还包括记忆泊车,代客泊车等。传统的泊车算法通常使用基于规则或者搜索优化的方案来实现。然而,由于算法的复杂设计,这些方法在复杂的泊车场景中效…

USB接口实现CDC(usb转串口功能)

主控:stm32f429 PHY芯片:usb3320 Cubemx System Core-RCC connectivity-USB_OTG_HS Middleware and Software Packs-USB_DEVICE 时钟配置:根据自己使用的MCU工作频率设置 Generate Code Keil5 打开工程 usbd_cdc_if.c这个文件&…

软件测试框架有什么作用?好用的测试框架分享

在当今软件开发中,软件测试框架扮演着至关重要的角色。测试框架是指用于支持自动化测试及测试管理的环境或平台。它提供了一系列的规则、标准和工具,以确保软件产品的质量。框架涵盖了测试的所有层面,包括单元测试、集成测试和系统测试等。更…

2.1.2 select poll epoll reactor

1. select 的使用方法 fd_set rdset; FD_ZERO(&rdset); // 清空 rdset rdset fdset; // 将 fdset 拷贝到 rdset,准备传给 select select(maxFd 1, &rdset, NULL, NULL, NULL);参数说明: maxFd: 被监控的文件描述符中最大的一个。maxFd 1…