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,一经查实,立即删除!

相关文章

GoFrame框架介绍

GoFrame是一款功能强大、设计精良且易用的Go语言开发框架,以下为你详细介绍它的相关特点和内容: ### 框架概述 GoFrame是为了提升Go语言开发者的编码效率以及项目的整体可维护性、可扩展性等而打造的开发框架,它涵盖了从基础的网络通信、数据…

【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 使用…

444444444444

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤1.引入库2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:…

项目练习:Vue项目中使用Vuex实现全局功能开发

文章目录 一、场景说明二、代码实现1、通用方法封装2、store配置3、使用Vuex 一、场景说明 我们在开发的过程中,都要求能够把通用方法进行抽象封装,供全局使用 这样,代码更优雅简练。 Vue中就可以用Vuex实现全局方法的开发。 这一篇&#x…

windows C#-使用集合初始值设定项初始化字典

Dictionary<TKey,TValue> 包含键/值对集合。 其 Add 方法采用两个参数&#xff0c;一个用于键&#xff0c;一个用于值。 若要初始化 Dictionary<TKey,TValue> 或其 Add 方法采用多个参数的任何集合&#xff0c;一种方法是将每组参数括在大括号中&#xff0c;如下面…

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

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

【Rust自学】7.1. Package、Crate和定义Module

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 7.1.1. Rust的代码组织 代码组织主要包括&#xff1a; 那些细节可以对外暴露&#xff0c;而哪些细节是私有的在作用域内哪些名称有效… …

成功解决GPU和Cuda环境下执行torch.__version__输出2.0.1+cpu而不是正确版本(如2.1.0+cu121)等类似问题?

成功解决GPU和Cuda环境下执行torch.__version__输出2.0.1+cpu而不是正确版本(如2.1.0+cu121)等类似问题? 目录 解决问题 解决思路 T1、安装了CPU版本的PyTorch T2、环境问题 解决方法 重新安装 再次测试 解决问题 GPU和Cuda环境下执行torch.__version__输出2.0.1+cpu而…

51c大模型~合集96

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

操作系统导论读书笔记

目录 虚拟化抽象&#xff1a;进程抽象&#xff1a;进程概念 虚拟化 抽象&#xff1a;进程 本章讨论操作系统提供的基本的抽象—— 进程。进程的非正式定义非常简单&#xff1a;进程就是运行中的程序。程序本身是没有生命周期的&#xff0c;它只是存在磁盘上面的一些指令&…

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

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

webrtc获取IceCandidate流程

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

Unity 实现Canvas显示3D物体

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