MOSS-VL-Realtime-SGLANG实时会话完全指南:从push_frame到流式输出的实操清单
人工智能大模型多模态计算机视觉视频【免费下载链接】MOSS-VL-Realtime-SGLANG项目地址https://ai.gitcode.com/OpenMOSS/MOSS-VL-Realtime-SGLANG点击查看免费下载MOSS-VL-Realtime-SGLANG 是面向实时视频理解的开源多模态推理包通过push_frame逐帧推送画面模型以流式输出增量文本并支持在视频流任意时刻提问、打断回答、无需回应时主动静默。本文整理了一份从加载模型、建立实时会话到读取流式输出的实操清单新手照着 6 步即可跑通。 一、MOSS-VL-Realtime-SGLANG 是什么这是一个 11B 参数、BF16 权重、256K 上下文的多模态大模型推理包专为边看边答的实时场景设计逐帧视频理解 增量文本生成画面还没播完答案已开始流式输出随时提问与打断流式过程中可随时追加问题打断当前回答主动静默无关画面或证据不足时输出|silence|不瞎说话时间戳感知基于帧时间戳理解事件先后顺序与持续时间配置项值参数量 / 权重11B / BF16模型上下文256K推荐服务配置 131072视觉 patch / 时间 patch16 / 1直接 Transformers 推理每个实例 1 个活跃实时会话SGLang-Omni 推理会话容量可配置受 GPU 显存限制MOSS-VL 使用交叉注意力分离视觉编码与语言推理带时间戳的帧通过 XRoPE 位置编码在时间、高度、宽度三个维度上对齐文本与视觉 patch——这正是逐帧输入、流式输出能力的底层基础。⚡ 二、数据流从 push_frame 到流式输出发生了什么理解一次实时会话的内部数据流排查问题时心里就有底了push_frame(画面时间戳) → 帧队列(默认256) → 后台生成循环逐帧决策 → 增量文本 → poll_output / stream_outputs 流式取走 push_prompt(提问) → 提示词队列 ─┘push_frame把(图像, 时间戳)放入有界帧队列队列满时默认丢弃最旧帧保证实时性后台生成循环逐帧消费画面模型每一帧独立决定回答还是静默产出的增量文本进入输出队列由poll_output(timeout)轮询取走或交给stream_outputs()迭代器自动流式消费输出中会混入|round_start|、|silence|、|round_end|等控制 token应用层需自行过滤或处理 三、快速获取完整模型仓库模型公开可访问请下载完整仓库含 5 个 BF16 权重分片、tokenizer、processor 与自定义代码不要只下载个别权重文件git clone https://gitcode.com/OpenMOSS/MOSS-VL-Realtime-SGLANG.git本仓库包含权重、配置与自定义代码但不包含正在运行的服务直接 Python 推理时也不需要先起 SGLang 服务。✅ 四、6 步建立实时会话核心实操清单完整示例见 inference.md下面是精简化清单。第一步加载模型与处理器from transformers import AutoModelForCausalLM, AutoProcessor import torch processor AutoProcessor.from_pretrained(checkpoint, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained( checkpoint, trust_remote_codeTrue, device_mapauto, dtypetorch.bfloat16, attn_implementationeager, ) model.eval()⚠️ 直接 Transformers 推理路径使用 eager attention与 SGLang-Omni 后端的注意力配置是两条独立路径不要混用也不要混入原版 Transformers 4.57 系列的自定义文件。第二步create_realtime_session 创建实时会话session model.create_realtime_session( processor, initial_prompt逐帧描述视频中的重要变化无关时保持静默, frame_queue_size256, max_tokens_per_turn12, max_new_tokens4096, do_sampleFalse, ) session.start()参数示例值作用initial_prompt逐帧描述…首条 user 消息在第一帧到达前完成 tokenizesystem_prompt可省略不传则使用内置的实时视频分析助手提示frame_queue_size256帧队列容量满时默认丢最旧帧max_tokens_per_turn12单轮回答最大 token 数控制输出节奏max_new_tokens/do_sample4096 / False透传解码参数第三步push_frame 逐帧推送画面from PIL import Image image Image.open(data/frame_0001.jpg).convert(RGB) session.push_frame(image, timestamp0.0) # 时间戳单位秒image需为 PIL 兼容图像RGBtimestamp必须单调不减否则抛出ValueError: Frame timestamps must be non-decreasing不传timestamp时默认按会话开始时间自动计时画面来源可以是摄像头、屏幕采集、解码后的视频文件或浏览器帧采样第四步poll_output 读取流式输出while True: chunk session.poll_output(timeout0.0) if chunk is None: break print(chunk, end, flushTrue)timeout0立即返回无输出时为None非阻塞轮询timeout0可阻塞等待适合推完一帧后等一小段回答的节奏也可用迭代器一键消费for chunk in session.stream_outputs(): print(chunk, end)会话结束自动停止第五步随时提问、打断回答session.push_prompt(最近几帧发生了什么变化)push_prompt在流运行中追加问题新提问会打断当前回答模型从新上下文继续push_prompt_frame(prompt, image, timestamp)可让提问与某一帧精确对齐实时会话会一直存活等待新输入因此生产者结束后务必显式关闭并用try/finally兜底try: ... # 推帧与提问 finally: session.close() 五、实时会话 API 速查表API源码位置作用model.create_realtime_session(...)modeling_moss_vl.py创建部署友好的会话封装session.push_frame(image, timestamp)modeling_moss_vl.py追加一帧返回是否发生了丢帧session.push_prompt(text)modeling_moss_vl.py流中追加提问、打断回答session.push_prompt_frame(...)modeling_moss_vl.py帧 提问同批对齐送入session.poll_output(timeout)modeling_moss_vl.py取一个增量文本块session.stream_outputs(...)modeling_moss_vl.py迭代器方式消费流式输出session.close(timeout)modeling_moss_vl.py停止生成线程、关闭会话model.online_generate(...)modeling_moss_vl.py队列式推理适合服务部署 六、三种接入方式怎么选场景入口说明原型开发 / 调试create_realtime_session会话式 API每实例 1 个活跃会话后端服务帧生产与推理分离online_generate队列式输入队列项可携带frame、prompt、event、reset_session、stop_online_generate等控制字段纯离线整段视频offline_video_generate / offline_batch_generate一次性输入完整图像/视频支持批量查询⏱️ 七、时间戳与主动静默控制输出节奏的两个关键机制时间戳是模型的时钟帧时间戳秒单调不减决定事件顺序与持续时间的推理结果。视频回放、屏幕采集时都应按真实流逝时间打戳。主动静默是训练出来的行为模型每帧独立决定回答或静默无关画面会输出|silence|而不是硬编内容。应用层需要处理|silence|、|round_start|、|round_end|这三类控制 token。视觉历史有限丢帧与视觉 KV 窗口会限制模型可回看的画面范围跨上下文延续需要应用层自己做记忆管理。帧队列满 默认丢最旧帧push_frame返回True表示有旧帧被丢弃实时应用中可据此做降级提示。 八、部署与调优清单上下文推荐服务配置使用 131072 context按可用 GPU 显存调整上下文长度与并发数延迟响应延迟受硬件、帧率、传输与解码配置共同影响压测时固定帧率基线版本配套后端使用 Transformers 5.12.1 SGLang 0.5.16 PyTorch 2.11.0需配套特化 SGLang-Omni 后端安装通用sglang-omni包不等于获得 MOSS-VL 接入硬件CUDA 兼容不等于支持 NPU选型时确认加速卡支持矩阵️ 九、核心文件导航文件说明README_zh.md中文项目说明功能、架构、兼容性、限制inference.md完整 Python 推理示例会话式/队列式/离线modeling_moss_vl.py模型实现 实时会话与生成循环configuration_moss_vl.py模型配置类定义processing_moss_vl.py图像处理 processorvideo_processing_moss_vl.py视频帧预处理逻辑config.json / chat_template.json模型结构与对话模板model.safetensors.index.json5 个权重分片的索引映射一句话总结create_realtime_session建会话 →push_frame带时间戳推帧 →push_prompt随时提问 →poll_output/stream_outputs流式取文本 →close收尾五步就是一个最小可用的实时视频理解应用。赞分享人工智能大模型多模态计算机视觉视频【免费下载链接】MOSS-VL-Realtime-SGLANG项目地址https://ai.gitcode.com/OpenMOSS/MOSS-VL-Realtime-SGLANG点击查看免费下载相关推荐40 个实战项目全解析全栈作品集的 12 周路线图40 个实战项目全解析全栈作品集的 12 周路线图 面试官翻着你的简历第一句就是“挑一个做过的项目完整讲讲”。很多候选人卡在这里简历全是课程作业拿不出人工智能大模型多模态计算机视觉视频Gods Eye View 实时 3D 地球上手指法指南6 个免 Key 玩法一次讲透Gods Eye View 实时 3D 地球上手指法指南6 个免 Key 玩法一次讲透 Gods Eye View 是把实时开源空间情报搬进浏览器的一只实前端数据可视化GISAI 应用Sliver 客户端 exit 命令实现剖析从会话确认到输出清理的完整退出流程Sliver 客户端 exit 命令实现剖析从会话确认到输出清理的完整退出流程 导读 exit 是 Sliver 客户端控制台中最基础却也最容易被忽视的命令网络安全上一篇C模板递归gh_mirrors/st/STL中的编译期递归与递归终止下一篇ndb中的代码格式化Prettier集成与自动格式化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考