JoyAI-VL-Interaction长视频流永不遗忘的秘密三级记忆与Chunk摘要压缩机制详解【免费下载链接】JoyAI-VL-InteractionJoyAI-VL-Interaction: An Open Real-time Video-Language Interaction System项目地址: https://gitcode.com/gh_mirrors/jo/JoyAI-VL-InteractionJoyAI-VL-Interaction 是一个开源的实时视频语言交互系统其核心难题是如何让模型在数小时甚至更长的视频流中永不遗忘。答案是它内置的三级记忆体系近期帧工作记忆→ Chunk 中期摘要 → 长期记忆压缩块。本文带你完整拆解这套 Chunk 摘要压缩机制的工作原理、关键参数与源码位置帮助新手快速理解长视频记忆系统的工程实现。一、为什么长视频流会失忆实时视频流推理与一次性处理短视频完全不同帧量爆炸以 1 fps 连续输入1 小时就是 3600 帧全部塞进上下文是不可能的上下文窗口有限VLM 的 token 预算很快被历史帧吃掉不能丢弃一切丢掉所有历史模型就无法回答刚才那杯咖啡放在哪了这类跨时段问题。JoyAI-VL-Interaction 的解法是分层压缩原始视频帧逐层降解为文字记忆越久远的信息压缩得越狠但关键证据状态变化、可读文字、因果关系被刻意保留下来。上图展示了系统的整体架构其中webinfer服务负责管理视频帧、chunk 记忆、中期摘要和长期记忆。二、三级记忆架构总览整个记忆流水线由 services/webinfer/ 下的两个核心文件协作完成层级内容载体触发时机一级工作记忆最近若干帧当前画面图像帧 时间戳每个推理请求实时注入二级中期记忆Chunk 级文字摘要摘要 VLM 生成的段落每满CHUNK帧默认 100 帧三级长期记忆跨多个 Chunk 的压缩块多段中期摘要再压缩每累计COMPRESS_EVERY_N_CHUNKS段默认 5 段1. 一级记忆近期帧 时间戳适配器 live_adapter.py 把每一帧封装成时间范围 图像的内部消息。推理时主模型看到的上下文由四部分组成当前视觉帧最近的工作记忆Video History看不到更早画面时的文字背景QA History历史问答User Query当前用户问题其中 Video History 的注入文案明确告诉主模型这些是你已无法看到的早期视频片段的文字摘要决策时优先参考当前帧与用户问题见 live_adapter.py。2. 二级记忆Chunk 摘要压缩中期记忆每满一个 Chunk默认 100 帧独立的摘要模型默认Qwen3-VL-4B-Instruct端口 8065就会把这段视频读图作文成一段事实性描述。压缩规则定义在 memory_summarizer.py 的DETAILED_SUMMARY_PROMPT中要点包括按优先级保留信息最高优先级是片段结束时的交接状态屏幕上还剩什么、任务推进到哪一步和不可逆事件高优先级是可读文字、数字、首次出现的实体中优先级是背景布局不确定性必须保留识别不确定的内容标注疑似 X / 约 X / 不可读而不是瞎猜这是记忆而非字幕均衡保留状态、实体、动作、文字与数值并限制 3-5 个时间锚点避免逐帧流水账静默帧不凑长度画面几乎没有变化时一两句话即可。3. 三级记忆中期摘要的再压缩长期记忆中期摘要积累到 5 段后会触发batch_compress_to_longterm()把多段中期摘要合并压缩为一个长期记忆块BATCH_COMPRESS_PROMPT。这一步的精髓在于——它被明确定义为压缩任务而非简单合并只保留最终的期末状态前面各段的拿起又放下打开又关闭等已被覆写的状态直接省略或降级为过程信息实体命名归一同一物体在不同片段叫红色杯子 → 马克杯 → 容器统一为信息量最高的名称重复次数有信息量就保留敲门 5 次要留次数持续搅拌则合并为一个时间范围不确定性标注传递合并时不允许把疑似洗成确定表述。压缩结果以时间范围标记追加到长期记忆块尾部并受long_term_memory_window滑动窗口控制默认 40 块防止长期记忆无限膨胀。三、关键参数速查以下参数可在 services/webinfer/README.zh-CN.md 中找到完整说明参数默认值作用CHUNK100每个中期记忆 Chunk 的帧数COMPRESS_EVERY_N_CHUNKS5触发长期记忆压缩的中期摘要数量ASYNC_SUMMARY_LEAD_FRAMES20在 Chunk 边界前提前异步生成摘要减少推理等待SUMMARIZER_KEY_FRAMES00用全部帧做摘要大于 0 时均匀采样SUMMARIZER_MAX_PIXELS262144摘要输入图像的最大像素数LONG_TERM_MAX_TOKENS/LONG_TERM_TARGET_TOKEN_COUNT2000 / 1000长期记忆块的输出上限与目标长度⚡ 值得注意的工程细节摘要模型与主模型是两个独立的 vLLM 实例端口 8065 vs 7060并且摘要在 Chunk 边界前 20 帧就异步启动这样等帧真正滚出工作记忆时文字记忆已经就位主模型推理几乎零等待。四、这套机制好在哪里永不遗忘但不忘细节的代价原始帧被丢弃但交接状态 不可逆事件 可读数值始终可回溯模型可以回答数小时前的画面问题显存友好的双模型分工主模型专注实时交互摘要模型负责离线压缩互不抢占可调试开启debug后每次中期摘要与长期压缩的完整输入都会落盘到result_v2目录方便排查为什么它记错了。五、延伸阅读推理与记忆流程完整说明services/webinfer/README.zh-CN.md系统架构与端口分配doc/architecture.zh-CN.md快速上手部署doc/getting_started.zh-CN.md摘要压缩提示词全文中英文对照services/webinfer/memory_summarizer.py理解了工作记忆 → Chunk 摘要 → 长期压缩这条数据降级链你就掌握了 JoyAI-VL-Interaction 在长视频流中保持连续认知的核心设计。【免费下载链接】JoyAI-VL-InteractionJoyAI-VL-Interaction: An Open Real-time Video-Language Interaction System项目地址: https://gitcode.com/gh_mirrors/jo/JoyAI-VL-Interaction创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考