【小白教程】本地部署VLM-R1模型(使用Docker)
文章目录
- 引言
- 一、安装 Docker
-
- 1.1 Docker Desktop
-
- 1.1.1 配置镜像加速器
- 1.1.2 【或】直接修改配置文件daemon.json
- 二、部署步骤
-
- 2.1 使用别人配置好的镜像
-
- 2.1.1 创建容器
- 2.1.2 进入容器后,可查看挂载的文件
- 2.1.3 重新进入容器
-
- 如果不小心退出容器了
- 如果挂载目录错了,需要退出容器删除后,重新run
- 2.1.4 安装一些缺失的包,可运行test.py后检测
-
- 网络问题
-
- 【更新源】
- 【设置代理】
- vi操作
- 2.1.5 【问题】缺少的一些包
-
- 【No module named 'cv2'】
- 【libGL.so.1: cannot open shared object file: No such file or directory】
- 【CUDA 源连接失败】
- 【libgthread-2.0.so.0: cannot open shared object file: No such file or directory】
- 2.1.6 打包修改容器的镜像上传Docker Hub
-
-
- commit和tag区分
-
- 2.2 或者构造docker环境
- 三、下载模型权重
-
- 3.1 下载模型权重
- 3.2 链接
- 3.3 下载
-
- 方法一:需要下载git-lfs
- 方法二:使用 Hugging Face CLI
- 方法三:手动一个一个文件下载
- 3.4 文件目录展示
- 3.5 运行推理脚本
-
- test代码
- 运行
-
- 代码
-
- test_ovd.py
- test_rec.py
- 结果
引言
VLM-R1的GitHub
REC测试API
OVD测试API
如图所示①②,可以跳转测试。每天限时5min的使用。
一、安装 Docker
Docker
1.1 Docker Desktop
1.1.1 配置镜像加速器
通过Docker Desktop配置
设置——Docker Engine——右侧JSON中修改registry-mirrors字段
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.ccs.tencentyun.com",
"https://mirrors.aliyun.com"
]
#或
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com",
"https://5tqw56kt.mirror.aliyuncs.com",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn/",
"http://mirror.azure.cn/",
"https://hub.rat.dev/",
"https://docker.ckyl.me/",
"https://docker.chenby.cn",
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io"
]
点击「Apply & Restart」应用配置并重启 Docker
1.1.2 【或】直接修改配置文件daemon.json
-
Win+r直接搜
%USERPROFILE%.dockerdaemon.json -
手动查找
修改完需要重启 -
验证
终端查看
docker info
二、部署步骤
2.1 使用别人配置好的镜像
2.1.1 创建容器
docker run -it --gpus all --shm-size=64g -v D:/vlm_r1:/data/zm --net host kevinchina/deeplearning:2.5.1-cuda12.4-cudnn9-devel-vlmr1 bash
#可能没有权限报错,再前面加个sudo
sudo docker run -it --gpus all --shm-size=64g -v /vlm_r1:/data/zm --net host kevinchina/deeplearning:2.5.1-cuda12.4-cudnn9-devel-vlmr1 bash
shm-size
设置共享内存的大小为 64 GB。共享内存是 Linux 中用于进程间通信的一部分。对于一些需要大量共享内存的应用(例如深度学习模型的训练),增大该值可以避免因内存不足导致的错误。bash
进入容器后,启动一个 Bash shell,就像你在普通的 Linux 系统中操作一样。-v D:/vlm_r1:/workspace
这是一个卷挂载(Volume Mount)。它将主机上的 D:/vlm_r1 目录挂载到容器内的 /data/zm 目录。这样你可以在容器内访问 D:/vlm_r1 目录中的文件,并对其进行读写操作。--net host
让容器与主机共享网络。这样容器中的应用就可以直接使用主机的 IP 地址和端口,不需要进行端口映射。适用于需要与主机进行密切网络交互的场景。bash
在容器中启动一个 bash shell,允许你进入容器内进行交互操作。
2.1.2 进入容器后,可查看挂载的文件
cd /data/zm
ls
注
可以将当前用户添加到 Docker 组,就不用每次都sudo了
sudo usermod -aG docker $USER #$USER 会自动替换为当前用户名):
- 退出并重新登录: 修改用户组后,你需要退出当前会话并重新登录,或者重新启动系统,确保权限变更生效。
验证
重新登录后,可以通过以下命令验证用户是否已被成功添加到 Docker 组:如果你看到 docker 出现在输出中,说明当前用户已经具有运行 Docker 命令的权限。
groups
2.1.3 重新进入容器
如果不小心退出容器了
#查看容器
docker ps -a #(还能看到已退出/已停止的容器)
#启动
docker start <container_id_or_name>
#进入
docker exec -it <container_id_or_name> bash
如果挂载目录错了,需要退出容器删除后,重新run
如果之前run过,删除后再次run会很快,因为有缓存
#退出容器
exit
#停止容器
dockers stop 容器名
#删除容器
docker rm 容器名
#强制删除
docker rm -f 容器名
#然后重新开始run,见2.1
2.1.4 安装一些缺失的包,可运行test.py后检测
网络问题
【更新源】
- 更换软件源
在更改软件源之前,最好先备份当前的源文件:
cp /etc/apt/sources.list /etc/apt/sources.list.bak
- 编辑 sources.list 文件: 使用文本编辑器打开
vi /etc/apt/sources.list
更换为阿里云的镜像源: 将文件内容替换为以下内容:
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
#网络不行,互相替换尝试
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
【设置代理】
可以设置或取消,尝试!!!
127.0.0.1:17890
在网络和Internet——高级网络设置——Internet选项——连接——局域网设置——代理服务器中可以看到
#####################################临时有效################################################
#Lunix
#设置
export http_proxy="http://127.0.0.1:17890"
export https_proxy="https://127.0.0.1:17890"
#取消
unset http_proxy
unset https_proxy
#Windows
#设置
set http_proxy=http://127.0.0.1:17890
set https_proxy=https://127.0.0.1:17890
#取消
set http_proxy=
set https_proxy=
#########################################################################################
###################################永久有效###############################################
#编辑
nano ~/.bashrc #或