Chord - Ink Shadow 模型部署详解:Ubuntu 20.04服务器环境搭建

张开发
2026/4/11 8:34:52 15 分钟阅读

分享文章

Chord - Ink  Shadow 模型部署详解:Ubuntu 20.04服务器环境搭建
Chord - Ink Shadow 模型部署详解Ubuntu 20.04服务器环境搭建最近有不少朋友在问怎么在服务器上把那个挺火的Chord - Ink Shadow模型跑起来。这个模型在图像生成方面确实有点东西但部署过程要是没搞对也挺折腾人的。我自己在Ubuntu 20.04上搭过好几次踩过一些坑也总结了一套比较顺的流程。今天我就把从零开始在Ubuntu 20.04服务器上部署这个模型的完整步骤还有中间可能遇到的问题都详细写下来。目标很简单让你照着做就能在自己的服务器上把环境搭好把模型跑起来。咱们不扯那些虚的就讲实际要敲的命令和要点的按钮。1. 开始前的准备工作在动手之前咱们先看看需要准备些什么。这就像做饭前得先把菜洗好、锅准备好一样。你需要的东西一台安装了Ubuntu 20.04操作系统的服务器。云服务器或者自己物理机都行。服务器最好有独立显卡显存建议8GB或以上。用这个模型生成图片显卡好比是厨房的灶火火够旺才能炒好菜。一个能登录服务器的终端比如用SSH连接。基本的Linux命令行操作知识知道怎么用cd、ls这些命令就行。咱们要做什么整个流程可以分成几个大的步骤先把系统环境收拾利索然后装上必要的驱动和工具接着把模型镜像拉下来运行最后处理一下网络访问和安全设置。我会一步一步带着你走每个命令都会解释清楚是干嘛的。2. 第一步收拾系统环境拿到一台新服务器或者重装过的服务器第一步不是急着装模型而是先把系统本身打理好。这能避免很多后面莫名其妙的错误。2.1 更新系统软件包首先咱们通过SSH登录到服务器。登录后第一件事是更新系统的软件包列表和已安装的软件。这能确保我们安装的都是最新版本兼容性更好。打开终端输入以下命令sudo apt update sudo apt upgrade -y简单解释一下sudo是获取管理员权限因为更新系统需要。apt update是刷新软件仓库的列表就像去超市前先看看最新的商品目录。apt upgrade -y是升级所有可以升级的软件包。-y参数的意思是自动回答“是”不用我们再手动确认。这个过程可能会花几分钟取决于网络速度和需要更新的软件数量。完成后建议重启一下服务器让所有更新生效sudo reboot重启后重新SSH登录进来我们继续。2.2 安装基础依赖工具接下来安装一些后续步骤肯定会用到的工具。这些工具就像螺丝刀、扳手干活的时候缺了它们就很麻烦。sudo apt install -y curl wget git vim net-toolscurl和wget用来从网上下载文件。git用来克隆代码仓库虽然这次部署可能用不到但它是开发环境的常客先装上备用。vim一个文本编辑器在服务器上修改配置文件时比默认的nano更好用个人习惯。net-tools包含ifconfig等网络工具方便我们查看服务器IP地址和网络状态。安装完成后可以用vim --version或git --version简单验证一下是否安装成功。3. 第二步配置显卡驱动和Docker我们的模型需要GPU来加速所以得先把显卡的“司机”驱动请上车然后再把“集装箱”Docker准备好用来装我们的模型应用。3.1 安装NVIDIA显卡驱动如果你的服务器有NVIDIA显卡这一步是必须的。我们可以用Ubuntu自带的工具来安装比较省心。# 首先添加显卡驱动的PPA仓库 sudo add-apt-repository ppa:graphics-drivers/ppa -y sudo apt update # 查找推荐安装的驱动版本 ubuntu-drivers devices # 通常安装推荐版本即可命令输出中会标有“recommended” sudo apt install -y nvidia-driver-525这里的nvidia-driver-525只是一个例子具体版本号你要看ubuntu-drivers devices命令输出的推荐版本。安装完成后必须重启服务器sudo reboot重启后再次登录输入以下命令检查驱动是否安装成功nvidia-smi如果看到类似下面的输出显示了显卡型号、驱动版本和GPU使用情况那就说明驱动装好了。----------------------------------------------------------------------------- | NVIDIA-SMI 525.105.17 Driver Version: 525.105.17 CUDA Version: 12.0 | |--------------------------------------------------------------------------- | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | 0 NVIDIA GeForce ... On | 00000000:00:04.0 Off | N/A | | N/A 45C P0 25W / N/A | 0MiB / 8192MiB | 0% Default | ---------------------------------------------------------------------------3.2 安装Docker和NVIDIA Container Toolkit模型通常被打包成Docker镜像这样我们就不用操心复杂的Python环境依赖了。Docker就像一个标准化集装箱镜像就是集装箱里的货物。安装Docker# 卸载旧版本如果有的话 sudo apt remove docker docker-engine docker.io containerd runc -y # 安装依赖包 sudo apt install -y apt-transport-https ca-certificates curl software-properties-common # 添加Docker官方GPG密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 添加Docker软件源 sudo add-apt-repository deb [archamd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable # 安装Docker引擎 sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io # 启动Docker并设置开机自启 sudo systemctl start docker sudo systemctl enable docker # 将当前用户加入docker组这样就不用每次都加sudo了 sudo usermod -aG docker $USER重要提示执行完usermod命令后你需要完全退出当前的SSH会话然后重新登录用户组的更改才会生效。重新登录后运行docker ps命令如果不报错说明Docker安装成功且当前用户有权限。安装NVIDIA Container Toolkit为了让Docker容器能使用宿主机的GPU我们需要安装这个工具包。# 添加NVIDIA容器工具包的仓库 distribution$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list # 安装工具包 sudo apt update sudo apt install -y nvidia-container-toolkit # 重启Docker服务 sudo systemctl restart docker现在你可以运行一个测试命令看看Docker容器能否正确识别GPUdocker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu20.04 nvidia-smi这个命令会下载一个小镜像并运行然后执行nvidia-smi。如果输出的GPU信息和你直接在宿主机上运行nvidia-smi的结果一致那么恭喜你Docker和GPU的集成配置成功了。4. 第三步获取并运行模型镜像环境都准备好了现在该把主角——Chord - Ink Shadow模型请上场了。我们通过一个集成了所有依赖的Docker镜像来运行它。4.1 从镜像仓库获取镜像假设你已经从某个镜像平台例如CSDN星图镜像广场找到了Chord - Ink Shadow模型的镜像。通常你会得到一个镜像名称比如registry.cn-hangzhou.aliyuncs.com/your_namespace/chord-ink-shadow:latest。使用docker pull命令来拉取镜像docker pull registry.cn-hangzhou.aliyuncs.com/your_namespace/chord-ink-shadow:latest请将上面的镜像地址替换成你实际获取到的地址。这个下载过程需要一些时间取决于镜像大小和你的网络速度。喝杯茶耐心等待一下。下载完成后可以用docker images命令查看本地已有的镜像确认它已经存在。4.2 运行模型容器镜像拉取到本地后它还是一个静态的文件。我们需要用docker run命令把它“启动”成一个正在运行的“容器”可以理解为一个轻量级的虚拟机。一个典型的运行命令可能长这样docker run -d \ --name chord-ink-shadow \ --gpus all \ -p 7860:7860 \ -v /home/your_user/model_data:/app/data \ registry.cn-hangzhou.aliyuncs.com/your_namespace/chord-ink-shadow:latest我来拆解一下这个命令-d让容器在后台运行这样你关闭终端它也不会停。--name chord-ink-shadow给容器起个名字方便后续管理。--gpus all把宿主机的所有GPU都分配给这个容器使用。-p 7860:7860端口映射。容器内部服务通常运行在7860端口我们把它映射到宿主机的7860端口这样你就能通过服务器的IP和这个端口访问Web界面了。-v /home/your_user/model_data:/app/data数据卷挂载。把服务器上的一个目录比如/home/your_user/model_data挂载到容器内的/app/data目录。这样模型生成的文件或者你的配置文件就能持久化保存在服务器上不会因为容器删除而丢失。记得把/home/your_user/model_data改成你服务器上真实的、有写入权限的目录路径。最后一行就是你要运行的镜像名称。运行命令后用docker ps查看容器状态如果看到chord-ink-shadow这个容器正在运行STATUS 为 Up就说明启动成功了。4.3 验证服务是否正常容器跑起来了但里面的模型服务启动了吗我们可以查看容器的日志docker logs -f chord-ink-shadow-f参数可以实时滚动显示日志。你需要在日志里寻找模型加载完成、服务成功启动在0.0.0.0:7860之类的信息。看到这些就说明一切就绪。现在打开你的浏览器访问http://你的服务器IP地址:7860。如果能看到模型的Web操作界面那么部署的核心部分就大功告成了5. 第四步配置网络与安全服务能本地访问了但如果想让公网上的其他电脑也能访问或者想让服务更稳定安全还需要做一些配置。5.1 配置服务器防火墙如果使用UFWUbuntu 20.04默认可能没有开启防火墙或者用的是ufw。我们需要放行我们映射的端口比如7860。# 查看防火墙状态 sudo ufw status # 如果状态是 inactive未激活可以跳过。如果是 active需要添加规则。 # 放行7860端口 sudo ufw allow 7860/tcp # 重新加载防火墙规则 sudo ufw reload5.2 配置云服务商安全组如果使用云服务器如果你用的是阿里云、腾讯云、AWS等云服务器光在系统里配置防火墙还不够还需要在云平台的控制台配置“安全组”规则。登录到云服务商的管理控制台。找到你的云服务器实例。进入该实例的“安全组”配置页面。添加入站规则协议选择TCP端口范围填写7860授权对象源IP可以填0.0.0.0/0允许所有IP访问有风险或者你个人的公网IP地址更安全。保存规则。这样外部网络才能访问到你服务器7860端口上的服务。6. 常见问题与排查部署过程很少一帆风顺这里列举几个我遇到过或者朋友们常问的问题。问题一运行容器时提示docker: Error response from daemon: could not select device driver...这通常是因为NVIDIA Container Toolkit没有安装或者配置正确。请回头检查“安装NVIDIA Container Toolkit”那一步确保所有命令都执行成功并且执行了sudo systemctl restart docker。问题二访问http://IP:7860打不开页面检查容器状态docker ps看容器是不是在运行Up状态。检查容器日志docker logs chord-ink-shadow看服务是否真的启动成功有没有报错。检查端口映射docker port chord-ink-shadow可以查看容器的端口映射情况。检查防火墙和安全组这是最常见的原因。确保服务器的本地防火墙如ufw和云平台的安全组都放行了7860端口。检查IP地址确保你访问的是服务器的公网IP而不是内网IP。问题三生成图片时卡住或者报显存不足CUDA out of memory这说明你的显卡显存不够用。可以尝试在模型的Web界面里降低生成图片的分辨率比如从1024x1024降到512x512。减少单次生成的图片数量Batch Size。如果服务器有多张显卡可以在docker run命令中指定某一张例如--gpus ‘“device0”’。实在不行可能需要升级显卡硬件了。问题四如何更新模型或重启服务更新镜像先拉取新镜像docker pull ...然后停止并删除旧容器docker stop chord-ink-shadow docker rm chord-ink-shadow最后用新的镜像重新运行docker run ...命令注意数据卷挂载要保持一致。重启容器docker restart chord-ink-shadow进入容器内部用于调试或手动操作docker exec -it chord-ink-shadow /bin/bash7. 写在最后走完这一套流程你的Ubuntu 20.04服务器上应该已经成功跑起了Chord - Ink Shadow模型。整个过程其实就像搭积木系统环境是底座驱动和Docker是框架最后把模型镜像这个核心模块放上去。最关键的是每一步都要确认好尤其是驱动安装后的重启以及端口和安全组的配置这两处最容易让人卡住。部署本身不是目的用它来创作出有意思的东西才是。模型跑起来之后你可以多试试不同的提示词和参数熟悉它的风格和能力边界。服务器环境的好处就是稳定可以长时间运行处理一些批量任务。如果在使用中遇到其他问题多看看容器日志那里面通常藏着答案。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章