JoyAI-VL-Interaction-AutoDL部署教程
JoyAI-VL-Interaction 在 AutoDL 上的完整部署教程本教程记录了在 AutoDL 单卡vGPU-48GB / RTX 4090 48G上从零部署京东开源的 JoyAI-VL-Interaction 实时视觉语言交互模型并成功让模型分析自定义视频的全过程。已踩平所有坑照着走即可。零、环境与前提项目地址https://github.com/jd-opensource/JoyAI-VL-Interaction这个项目只能跑在 Linux NVIDIA GPU 上底层是 vLLM vLLM-Omni不支持原生 Windows。本教程实测环境AutoDL 实例单张 vGPU-48GBRTX 4090 48G 显存版CPU 25 核 / 内存 92GB / 系统盘 30G / 数据盘 50G镜像PyTorch 2.x CUDA 12.xPython 3.12vLLM 版本0.22.0显存说明这套系统默认是为双卡设计的主模型一张卡、摘要模型一张卡。单卡要跑通核心技巧是跳过摘要模型见第六步。如果你租的是双卡可以直接用官方默认配置省去大量调参。四个模型总大小约 33GB模型大小作用JoyAI-VL-Interaction-Preview主模型8B~17.5G核心视觉交互Qwen3-VL-4B-Instruct摘要模型~8.9G长期记忆压缩单卡可跳过Qwen3-ASR-1.7B~3.5G语音输入可选Qwen3-TTS-1.7B~3.5G语音输出可选一、租实例与省钱下载1.1 选实例GPU单张 48G 显存的卡最省心能一卡跑通。若选 24G 卡需更激进地砍参数。镜像选 PyTorch CUDA 12.x 基础镜像。数据盘50G 基本够模型 33G 依赖紧张的话扩到 60-100G。1.2 【省钱关键】用无卡模式下载GPU 模式按小时计费如 3 元/时而下载模型用不到 GPU。做法实例创建后先关机用无卡模式开机约 0.1 元/时在无卡模式下完成 clone 代码、装依赖、下载模型全部下完再关机切换回 GPU 模式跑服务⚠️坑无卡模式内存小下载 17.5G 主模型时可能被 OOM 杀掉报Killed。若遇到改用 GPU 模式下载内存大或用后面的 hf-mirror 单线程方案。二、装依赖2.1 所有数据放数据盘cd/root/autodl-tmpgitclone https://github.com/jd-opensource/JoyAI-VL-Interaction.gitcdJoyAI-VL-Interaction⚠️坑模型和数据必须放数据盘/root/autodl-tmp/。官方默认路径是/tmp/models但 AutoDL 的/tmp在 30G 的系统盘上会撑爆。后面所有模型路径都要手动指到数据盘。2.2 装依赖关键网络方向别搞反# 装国内 pip 包 → 必须【关闭】学术加速代理unsethttp_proxy https_proxy HTTP_PROXY HTTPS_PROXY# uv 配置国内镜像 拉长超时 copy 模式 缓存放数据盘exportUV_DEFAULT_INDEXhttps://mirrors.aliyun.com/pypi/simple/exportUV_HTTP_TIMEOUT600exportUV_LINK_MODEcopyexportUV_CACHE_DIR/root/autodl-tmp/.uv-cache ./install/install.sh --with-all⚠️坑学术加速代理会拖垮国内 pip 源。source /etc/network_turbo是为了下 GitHub/HuggingFace 的装国内 pip 包时必须先unset关掉否则大 wheel如 av、opencv会超时失败error decoding response body。记忆口诀装 pip 包 → 关代理unset下 HuggingFace 模型 → 开代理network_turbo。方向正好相反。装完后.uv-cache可占用 9G装完可删释放空间rm-rf/root/autodl-tmp/.uv-cache三、下载模型3.1 激活环境每次新终端都要做source/root/autodl-tmp/JoyAI-VL-Interaction/services/.venv/bin/activate确认命令行前面出现(.venv)前缀。3.2 下载推荐 hf-mirror 关 XetexportHF_ENDPOINThttps://hf-mirror.comexportHF_HUB_DISABLE_XET1# 关键关掉 Xet否则 401 报错exportMODEL_PATH/root/autodl-tmp/models/JoyAI-VL-Interaction-PreviewexportSUMMARY_MODEL_PATH/root/autodl-tmp/models/Qwen3-VL-4B-Instruct /root/autodl-tmp/JoyAI-VL-Interaction/install/download-models.sh--all⚠️坑 1Xet 协议 401 错误。新版 huggingface_hub 默认走 Xet 下载hf-mirror 认证不了会报401 Unauthorized。必须export HF_HUB_DISABLE_XET1退回传统 HTTP 下载。⚠️坑 2hf-mirror 大文件卡住。公益镜像高峰期单个大文件可能卡死。若卡住CtrlC后重跑自动断点续传。备选Qwen 系列用 ModelScope 更快国内满速pipinstall-ihttps://mirrors.aliyun.com/pypi/simple/ modelscope modelscope download--modelQwen/Qwen3-VL-4B-Instruct--local_dir/root/autodl-tmp/models/Qwen3-VL-4B-Instruct3.3 验证模型完整du-sh/root/autodl-tmp/models/*主模型约 17.5G、Qwen3-VL-4B 约 8.9G数值接近即完整。四、切换 GPU 模式理解显存机制下载完成后关机 → GPU 模式开机。关键认知vLLM 显存机制gpu_memory_utilization是按整张卡算的百分比不是按剩余显存。单卡跑两个模型时谁先启动谁按百分比圈走显存容易把后启动的挤到没有 KV cache报负数。主模型加载占 16.65Gmax_model_len默认 13107212万上下文光 KV cache 就要 18G是显存杀手。五、清理显存的通用操作反复要用每次启动失败后vLLM 进程常残留占着显存重启前必须清干净否则新进程抢不到显存# 杀掉所有占 GPU 的进程nvidia-smi --query-compute-appspid--formatcsv,noheader|xargs-rkill-9pkill-9-flive_adaptersleep3# 必须确认显存归零0MiB / xxxxxMiBNo running processes foundnvidia-smi⚠️坑pkill -9 -f vllm有时杀不干净进程名是大写VLLM::EngineCore。用上面nvidia-smi --query-compute-apps抓 PID 的方式最可靠。看到 0MiB 才能重启。六、【核心】单卡启动服务跳过摘要模型单卡无法同时跑主模型 摘要模型显存互抢摘要 KV cache 永远负数。解法把摘要健康检查指向主模型端口跳过它。摘要只负责长期记忆压缩跳过不影响实时视觉交互。先按第五步清干净显存确认0MiB后source/root/autodl-tmp/JoyAI-VL-Interaction/services/.venv/bin/activatecd/root/autodl-tmp/JoyAI-VL-InteractionexportMODEL_PATH/root/autodl-tmp/models/JoyAI-VL-Interaction-PreviewexportSUMMARY_MODEL_PATH/root/autodl-tmp/models/Qwen3-VL-4B-InstructexportMAIN_GPU0exportSUMMARY_GPU0exportMAX_MODEL_LEN32768# 砍上下文省显存默认 131072 太大exportMAIN_GPU_MEMORY_UTILIZATION0.85# 主模型独占大显存exportSUMMARY_PORT7060# 【关键】跳过摘要指向主模型端口./services/scripts/run.sh minimal原理脚本用wait_for_http检查http://127.0.0.1:${SUMMARY_PORT}/v1/models来判断摘要是否就绪。把SUMMARY_PORT设成 7060主模型端口这个检查会去查活着的主模型秒过脚本直接启动 WebUI不再等永远起不来的摘要。启动成功的标志日志依次出现Ready: webinfer main model. Ready: webinfer summary model. ← 跳过检查秒过 Ready: webinfer adapter. [2/2] Started WebUI. Running on https://0.0.0.0:8099主模型Available KV cache memory是正的十几 G即正常。这个窗口是前台运行 WebUI别关。⚠️坑单卡各种显存报错汇总Available KV cache memory: -X GiB/No available memory→ 摘要和主模型抢显存。单卡用上面的跳过摘要方案解决。max seq len (131072) needs 18 GiB KV cache→max_model_len太大砍到 32768。address already in use (8070)→ 上次的适配器进程没退按第五步清干净重启。双卡用户更简单不用跳过摘要直接export SUMMARY_GPU1用官方默认主模型 GPU 0、摘要 GPU 1 各占一张卡无需调参。七、连接浏览器SSH 隧道WebUI 跑在服务器的https://127.0.0.1:8099且需要 localhost 才能获得摄像头权限。用SSH 隧道转发在本地电脑不是服务器新开终端把 AutoDL 控制台的 SSH 登录指令加上端口转发ssh-p你的端口-L8099:127.0.0.1:8099 root你的AutoDL主机名保持这个窗口开着本地浏览器打开https://localhost:8099过掉自签证书警告“高级” → “继续前往”即可看到界面。⚠️重要提示SSH 隧道传不了 WebRTC。这个 WebUI 的实时画面无论摄像头还是 RTSP都通过 WebRTC 回传浏览器而 WebRTC 走 UDP ICE 打洞穿不过只转发 TCP 的 SSH 隧道。表现为画面几秒就断、0 frames received、ICE connection state: checking卡住。所以在纯 SSH 隧道下浏览器里看不到实时画面预览。但这不影响模型工作——见第九步用命令行直接验证模型效果。八、可选RTSP 推流分析视频文件比起摄像头用视频文件推 RTSP 更适合云端。流在服务器内部生成和消费但画面预览仍受 WebRTC 限制无法回传浏览器模型分析本身正常。8.1 装 MediaMTX 和 ffmpegcd/root/autodl-tmpsource/etc/network_turbowgethttps://github.com/bluenviron/mediamtx/releases/download/v1.19.2/mediamtx_v1.19.2_linux_amd64.tar.gztar-xzfmediamtx_v1.19.2_linux_amd64.tar.gzunsethttp_proxy https_proxyaptupdateaptinstall-yffmpeg⚠️坑MediaMTX 端口冲突。默认它会开 HLS(8888)、RTMP(1935) 等端口任一被占就整个退出。精简配置只留 RTSPcat/root/autodl-tmp/mediamtx.ymlEOF rtsp: yes rtspAddress: :8554 rtmp: no hls: no webrtc: no srt: no paths: all_others: EOF8.2 启动推流各开一个终端都要保持运行# 终端 A启动 RTSP 服务器cd/root/autodl-tmp./mediamtx# 终端 B把视频循环推成 RTSP 流-an 去音频cd/root/autodl-tmp ffmpeg-re-stream_loop-1-i1.mp4-ccopy-an-frtsp rtsp://127.0.0.1:8554/live8.3 WebUI 填地址Video Source → RTSP Stream tab → 填rtsp://127.0.0.1:8554/live→ Start。显示✅ Connected!即后端已读到流但画面预览仍受 WebRTC 限制。九、【推荐】命令行直接验证模型效果绕开 WebRTC直接把视频帧发给主模型看分析效果。这是纯 SSH 隧道下验证模型能力最可靠的方式。9.1 从视频抽一帧cd/root/autodl-tmp ffmpeg-i1.mp4-vfselecteq(n\,100)-frames:v1frame.jpg9.2 发给模型分析source/root/autodl-tmp/JoyAI-VL-Interaction/services/.venv/bin/activatecd/root/autodl-tmp python3EOF import base64, requests, json with open(frame.jpg, rb) as f: img_b64 base64.b64encode(f.read()).decode() resp requests.post( http://127.0.0.1:7060/v1/chat/completions, json{ model: JoyAI-VL-Interaction-Preview, messages: [{ role: user, content: [ {type: text, text: 详细描述这张图片里的内容}, {type: image_url, image_url: {url: fdata:image/jpeg;base64,{img_b64}}} ] }], max_tokens: 512 }, timeout60 ) print(resp.json()[choices][0][message][content]) EOF改text那句就能问不同问题例如做 SOP 检测“这位工人的操作是否规范有没有遗漏防护措施”十、停止服务与省钱跑服务的窗口CtrlC停止或./services/scripts/stop.sh all。测完立刻去 AutoDL 控制台关机——GPU 模式一直烧钱。模型已在数据盘下次无卡开机 → GPU 开机 → 直接第六步启动不用重下。附关键环境变量速查变量值说明MODEL_PATH/root/autodl-tmp/models/JoyAI-VL-Interaction-Preview主模型路径放数据盘SUMMARY_MODEL_PATH/root/autodl-tmp/models/Qwen3-VL-4B-Instruct摘要模型路径MAIN_GPU/SUMMARY_GPU0/0单卡或0/1双卡GPU 分配MAX_MODEL_LEN32768主模型上下文默认 131072 太大MAIN_GPU_MEMORY_UTILIZATION0.85单卡跳过摘要主模型显存配额SUMMARY_PORT7060单卡跳过摘要的关键HF_ENDPOINThttps://hf-mirror.com下载用镜像HF_HUB_DISABLE_XET1下载时关 Xet 防 401附常见报错速查现象原因解决error decoding response body装依赖学术加速代理拖垮国内源unset http_proxy https_proxyKilled下模型无卡模式内存不足 OOM换 GPU 模式下或--max-workers 1401 Unauthorized下模型Xet 协议export HF_HUB_DISABLE_XET1No available memory for cache blocks单卡双模型抢显存跳过摘要SUMMARY_PORT7060max seq len needs X GiB KV cache上下文太大MAX_MODEL_LEN32768address already in use旧进程残留占端口第五步清进程failed to be inspected/ NVMLInvalid Argument摘要摘要被分到不存在的 GPU 1单卡设SUMMARY_GPU0画面几秒就断 /0 frames receivedWebRTC 穿不过 SSH 隧道用第九步命令行验证模型本教程基于 2026 年 7 月实测整理vLLM 0.22.0 / MediaMTX 1.19.2。项目为 Preview 版模型本身可能仍有更新遇到未知问题可查仓库 Issues。

相关新闻

TestDisk  PhotoRec 数据恢复工具:3分钟掌握免费开源的数据拯救方案

TestDisk PhotoRec 数据恢复工具:3分钟掌握免费开源的数据拯救方案

TestDisk & PhotoRec 数据恢复工具:3分钟掌握免费开源的数据拯救方案 【免费下载链接】testdisk TestDisk & PhotoRec 项目地址: https://gitcode.com/gh_mirrors/te/testdisk 当你的重要文件意外消失、硬盘分区神秘失踪,或者存储设备突然…

2026/7/19 18:38:02阅读更多 →
从Figma到Unity:3步实现UI设计无缝导入的终极指南

从Figma到Unity:3步实现UI设计无缝导入的终极指南

从Figma到Unity:3步实现UI设计无缝导入的终极指南 【免费下载链接】FigmaToUnityImporter The project that imports nodes from Figma into unity. 项目地址: https://gitcode.com/gh_mirrors/fi/FigmaToUnityImporter 还在为游戏UI设计与开发之间的繁琐转换…

2026/7/19 18:38:02阅读更多 →
Artisan咖啡烘焙软件终极指南:从新手到专家的完整解决方案

Artisan咖啡烘焙软件终极指南:从新手到专家的完整解决方案

Artisan咖啡烘焙软件终极指南:从新手到专家的完整解决方案 【免费下载链接】artisan artisan: the worlds most trusted roasting software 项目地址: https://gitcode.com/gh_mirrors/ar/artisan 你是否曾为咖啡烘焙过程中的温度控制而烦恼?是否…

2026/7/19 18:38:02阅读更多 →
ngx_output_chain_get_buf

ngx_output_chain_get_buf

1 定义 ngx_output_chain_get_buf 函数 定义在 src/core/ngx_output_chain.cstatic ngx_int_t ngx_output_chain_get_buf(ngx_output_chain_ctx_t *ctx, off_t bsize) {size_t size;ngx_buf_t *b, *in;ngx_uint_t recycled;in ctx->in->buf;size ctx->buf…

2026/7/20 0:15:05阅读更多 →
互联网大厂常见Java面试题及答案汇总(2026持续更新)

互联网大厂常见Java面试题及答案汇总(2026持续更新)

金九银十即将来袭,又是一个跳槽的好季节,准备跳槽的同学都摩拳擦掌准备大面好几场,今天为大家准备了互联网面试必备的 1 到 5 年 Java 面试者都需要掌握的面试题,分别 JVM,并发编程,MySQL,Tomca…

2026/7/20 0:15:05阅读更多 →
python数据可视化技巧的100个练习 -- 31. 类别数据的点图

python数据可视化技巧的100个练习 -- 31. 类别数据的点图

重要性★★★☆☆ 难度★★☆☆☆ 你是一家零售公司的数据分析师。你的经理要求你可视化最近产品发布的客户满意度评级分布。评级是分类的,范围从“非常不满意”到“非常满意”。创建一个点图以显示每个评级类别的频率。使用 Python 进行数据处理和可视化。在代码中生成输入…

2026/7/20 0:13:05阅读更多 →
智能体走进物理世界,千里科技携舱驾协同成果亮相WAIC 2026

智能体走进物理世界,千里科技携舱驾协同成果亮相WAIC 2026

在2026世界人工智能大会(WAIC 2026)举办期间,千里科技董事长、阶跃星辰董事长印奇作为特邀嘉宾出席大会开幕式并在大会主论坛(上午场)发表主题演讲《当智能体进入物理世界》。在印奇看来,"智能体"…

2026/7/20 0:13:05阅读更多 →
商汤大装置发布“技术-生态-商业”闭环布局,共启“国产AI基础设施规模化商用元年”

商汤大装置发布“技术-生态-商业”闭环布局,共启“国产AI基础设施规模化商用元年”

7月18日,在WAIC 2026商汤科技 “基座大模型架构创新与生态合作论坛”上,商汤科技联合创始人、大装置事业群总裁杨帆发表《智变共生——加速AI基础设施持续升级》主题演讲,系统呈现了商汤大装置国产AI基础设施“技术-生态-商业”闭环布局&…

2026/7/20 0:13:05阅读更多 →
2026郑州美发学校避坑指南:拆解5种教学方式,谁在“流水线”谁在“真传技”?

2026郑州美发学校避坑指南:拆解5种教学方式,谁在“流水线”谁在“真传技”?

2026年想在郑州学美发,很多零基础学员最先搜索的问题就是:郑州美发学校哪家好?这个问题没有一个只看学校名字就能得出的答案。因为不同学校的课程方向、学习周期、教学方式和适合人群并不一样。有的更适合零基础,有的偏向发型师进修,还有的只做某一项短期技术培训。对于完全没…

2026/7/20 0:11:05阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/20 0:50:54阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/20 0:50:54阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/20 0:50:54阅读更多 →
2026 WAIC:努比亚二代“豆包手机”NaviX Ultra亮相,智能体验全面升级!

2026 WAIC:努比亚二代“豆包手机”NaviX Ultra亮相,智能体验全面升级!

7月18日智东西消息,在2026 WAIC期间,努比亚联合字节豆包打造的二代“豆包手机”努比亚NaviX Ultra首次亮相,相比一代有诸多升级。智能体手机理念中兴通讯终端事业部总裁、努比亚总裁倪飞表示,智能体手机要从人操作手机变为手机帮人…

2026/7/20 0:01:04阅读更多 →
努比亚NaviX Ultra亮相WAIC,智能体手机能否让用户生活更简单?

努比亚NaviX Ultra亮相WAIC,智能体手机能否让用户生活更简单?

努比亚NaviX Ultra:外观与功能双升级在2026 WAIC期间,首次亮相的努比亚NaviX Ultra吸引了众多目光。它是努比亚联合字节豆包打造的二代“豆包手机”,与一代努比亚M153相比,外观设计变化较大。其机身背部搭载横向排布的大尺寸影像模…

2026/7/20 0:01:04阅读更多 →
C# 将逗号分割的字符串转换为long,并添加到List<long>

C# 将逗号分割的字符串转换为long,并添加到List<long>

目录 方法1:使用Split和Convert.ToInt64 方法2:使用LINQ的Select和ToList 方法3:使用TryParse进行异常安全转换(推荐) 如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天…

2026/7/20 0:01:04阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/19 22:50:49阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/19 14:50:26阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/19 18:50:36阅读更多 →