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。

相关新闻

grunt-contrib-copy 错误排查手册:常见问题与解决方案

grunt-contrib-copy 错误排查手册:常见问题与解决方案

grunt-contrib-copy 错误排查手册:常见问题与解决方案 【免费下载链接】grunt-contrib-copy Copy files and folders. 项目地址: https://gitcode.com/gh_mirrors/gr/grunt-contrib-copy 你是否在使用grunt-contrib-copy时遇到文件复制失败的问题&#xff1f…

2026/7/21 19:17:08 阅读更多 →
Wwise音频文件终极解密:免费工具解锁游戏音频修改新境界

Wwise音频文件终极解密:免费工具解锁游戏音频修改新境界

Wwise音频文件终极解密:免费工具解锁游戏音频修改新境界 【免费下载链接】wwiseutil Tools for unpacking and modifying Wwise SoundBank and File Package files. 项目地址: https://gitcode.com/gh_mirrors/ww/wwiseutil 你是否曾想过修改游戏中的音效和背…

2026/7/21 19:17:09 阅读更多 →
5个理由告诉你:为什么这款免费开源卡拉OK游戏值得你立即尝试

5个理由告诉你:为什么这款免费开源卡拉OK游戏值得你立即尝试

5个理由告诉你:为什么这款免费开源卡拉OK游戏值得你立即尝试 【免费下载链接】USDX The free and open source karaoke singing game UltraStar Deluxe, inspired by Sony SingStar™ 项目地址: https://gitcode.com/gh_mirrors/us/USDX 还在为寻找完美的家庭…

2026/7/23 23:16:44 阅读更多 →

最新新闻

从Token到词元:中文AI计量单位的变革与实践

从Token到词元:中文AI计量单位的变革与实践

1. 从Token到词元:AI计量单位本土化的深层逻辑 上周在调试大模型API时,突然发现官方文档里所有"Token"字样都被替换成了"词元"。这个看似简单的术语变更,实际上折射出中文AI领域正在发生的计量体系重构。就像原油交易用&…

2026/7/24 9:15:02 阅读更多 →
强抗风压防火门 双重防护技术优势解析

强抗风压防火门 双重防护技术优势解析

抗风压防火门是针对高层建筑、户外洞口、厂区风口等复杂工况研发的特种消防门,融合高强度抗风结构与标准防火性能,打破普通防火门抗变形能力弱、大风易渗漏的短板,同时满足消防防火分区隔断与户外风压防护双重需求,是建筑外墙、机…

2026/7/24 9:15:02 阅读更多 →
AI如何解决本科毕业论文写作四大痛点

AI如何解决本科毕业论文写作四大痛点

1. 论文写作痛点与AI解决方案 本科毕业论文写作对大多数学生来说都是一场噩梦。从选题开题到文献综述,从数据收集到格式排版,每个环节都充满挑战。根据我的指导经验,90%的学生会遇到以下典型问题: 选题阶段:缺乏学术敏…

2026/7/24 9:15:02 阅读更多 →
AI Agent评估体系:核心指标与行业实践

AI Agent评估体系:核心指标与行业实践

1. AI Agent评估体系的核心价值与挑战在智能体技术快速发展的今天,评估体系的建立已经成为行业共识。一个完善的评估框架不仅能客观衡量AI Agent的性能表现,更能为技术迭代提供明确方向。我在多个企业级AI Agent项目中深刻体会到,缺乏系统评估…

2026/7/24 9:14:02 阅读更多 →
PC端组件库:针对大屏优化的表格与树组件(259)

PC端组件库:针对大屏优化的表格与树组件(259)

在 PC 端大屏(Dashboard)开发场景中,表格与树组件通常需要承载海量数据并支持实时刷新。为了兼顾视觉表现与极致的渲染性能,开发者通常会采用以下两类优化方案:一、 企业级低代码/报表工具方案对于追求快速搭建、低维护…

2026/7/24 9:14:02 阅读更多 →
LMK03000精密时钟调理器:从PLL原理到多通道同步实战

LMK03000精密时钟调理器:从PLL原理到多通道同步实战

1. 项目概述:为什么我们需要LMK03000这样的精密时钟调理器? 在高速数字系统、数据转换器(ADC/DAC)时钟、无线基站以及高端测试测量设备的设计中,工程师们常常面临一个核心挑战:如何为系统中的多个关键芯片提…

2026/7/24 9:14:02 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/7/23 17:49:47 阅读更多 →

月新闻