当前位置: 首页 > news >正文

UnifoLM-VLA vs LingBot-VA:动作输出方式对比


name: Act chunk comparison
overview: 对比 UnifoLM-VLA 和 LingBot-VA 两个模型的 server 出动作方式,分析 LingBot-VA 是否必须逐步吐动作,以及如何让真机一次拿到整 chunk。
todos: []
isProject: false

UnifoLM-VLA vs LingBot-VA:动作输出方式对比

架构本质差异

两个模型的架构完全不同,导致它们出动作的方式有根本区别:

UnifoLM-VLA(无状态,每次全量推理)

POST /act
(图+state)

Qwen-VL 全量编码

DiT Action Head
(flow-matching)

actions: (T, D)
一次性返回整个 horizon

POST /act
(新图+state)

重新全量编码

DiT Action Head

actions: (T, D)

  • 无 KV cache / 无状态:每次请求都是独立的,VLM 全量编码图像 + text
  • 一次返回整个 action_horizon:比如(16, action_dim)就是 16 步动作
  • 不需要 buffer:server 没有任何跨请求的状态
  • 没有/act_chunk:因为/act本身就返回多步

LingBot-VA(有状态,自回归 chunk 推理 + KV cache)

Chunk 2: 后续推理

compute_kv_cache
(key_frames + 上次 action)
更新 Transformer KV cache

Transformer 去噪
(利用 KV cache)
生成下一 chunk

action buffer
F*H 步

消费 buffer

POST /act → pop 1步

POST /act → pop 1步
每 H 步存 key_frame

... 直到 buffer 空

Chunk 1: 首次推理

POST /act (图)

VAE 编码图像
→ latent

Transformer 去噪
生成 video latent + action

action buffer
(F-1)*H 步

  • 有状态 + KV cache:Transformer 在 chunk 间保持 KV cache,后续 chunk 的推理依赖前面所有 chunk 的 key_frames 和 predicted actions
  • 一次推理产出一个 chunkframe_chunk_size=4, action_per_frame=8→ 一个 chunk = 32 步(首次 24 步)
  • 关键约束:后续 chunk 推理前,必须先用中间的观测图像(key_frames)更新 KV cache,这些 key_frames 是在执行动作过程中采集的真实图像

核心问题解答

LingBot-VA 是否必须一个一个吐?

不是。模型本身一次推理就产出一整个 chunk(24/32 步)。当前/act接口设计成逐步返回只是为了:

  1. 在每action_per_frame=8步时,用当时的真实图像记录 key_frame
  2. 这些 key_frames 用于下一 chunk 推理前的 KV cache 更新

/act_chunk接口已经支持一次性返回整个 chunk。问题在于真机端需要自己在执行过程中采集 key_frames,然后在下一次请求时带上。

推荐方案:真机用/act_chunk+ 自行采集 key_frames

真机客户端的工作流:

ServerRobotServerRobotloop[每执行 8 步]loop[每执行 8 步]以此类推...POST /act_chunk {image, instruction, state}{actions: [24步], action_per_frame: 8}执行 action[0..7]拍照存为 key_framePOST /act_chunk {image, instruction, state, key_frames: [3张图]}{actions: [32步], action_per_frame: 8}执行 action[0..7]拍照存为 key_framePOST /act_chunk {key_frames: [4张图]}

需要修改的内容很少,只需要确保/act_chunkkey_frames处理逻辑正确即可(当前已实现)。

对比总结

  • UnifoLM-VLA: 无状态,每次/act= 全量推理 → 返回完整 horizon。简单但每次都要重新编码
  • LingBot-VA: 有状态(KV cache),每次/act_chunk= 用 cache 加速推理 → 返回完整 chunk。更快(后续 chunk 不用重新编码历史),但需要 key_frames 回传

结论:LingBot-VA 完全可以一次吐出整个 chunk,用/act_chunk就行。逐步吐只是为了在 server 端自动收集 key_frames,如果真机端自己收集并传回来,就可以直接用/act_chunk

http://www.jsqmd.com/news/655697/

相关文章:

  • FanControl终极指南:5分钟学会Windows风扇智能控制,告别噪音烦恼
  • ILI9341驱动解析之【一】TFT-LCD像素矩阵与电场控制原理
  • 2026年铁西区靠谱的独栋式月子中心品牌有哪些 - 品牌排行榜
  • 【仅限首批200家企业的SITS2026白名单工具】:AI面试模拟器部署实录与ROI测算表
  • 20252820 2025-2026-2 《网络攻防实践》第5次作业
  • STM32F407定时器ETR模式深度解析:如何突破16位计数限制实现更高频率测量?
  • 15分钟精通FreeCAD绘图尺寸标注:从入门到高效工作流
  • 无线通信模组出海指南:从CCC到ICASA,全球主流市场准入认证全解析
  • VisionPro实战:手把手教你用CogPatInspectTool搞定PCB板缺陷检测(附C#脚本)
  • 数组属性显示为table的配置 - 张永全
  • Obsidian终极B站视频播放指南:Media Extended B站插件完整教程
  • 2026云南自考机构推荐排行榜:Top7深度测评,帮你精准避坑 - 商业科技观察
  • Mac上抓包别再折腾Mono了!Fiddler Everywhere保姆级安装与HTTPS证书配置指南
  • 如何挑选高性价比可用性实验室?采购指南 - 品牌推荐大师
  • Maven插件怎么用?Maven插件配置和开发详解
  • 智慧校园平台如何提升校园安全管理水平?这套系统值得了解
  • 别再瞎调K-Means的K值了!用sklearn的silhouette_score和silhouette_samples帮你科学选簇数
  • B站视频下载终极指南:为什么BiliDownload能完美解决你的视频保存难题?
  • RDMA网卡如何化身‘内存搬运工’?深入拆解WRITE和READ操作的硬件执行流水线
  • Winhance中文版:3步完成Windows系统优化与个性化定制的终极指南
  • UniApp项目实战:用ba-tree-picker插件打造一个可复用的‘部门-员工’选择组件(附完整代码)
  • MATLAB还是Python?MODIS HDF转TIFF及全球拼接的两种实战方案对比
  • React 用 Flux 怎么管理状态?
  • CentOS 7 安装 Redis(使用默认 6379 端口)完整实践与踩坑总结
  • UniPush消息推送实战:如何让安卓、iOS的在线/离线消息都能稳定送达并正确跳转?
  • -:RAG 入门-向量存储与企业级向量数据库 milvus
  • 西门子840D后处理实战:用TCL脚本自动生成刀具清单,告别手动编号
  • 终极指南:如何使用TlbbGmTool轻松管理单机游戏数据
  • TCP可靠传输的基石:从停止等待到滑动窗口,ARQ协议如何守护你的数据?
  • Obsidian Smart Connections 技术深度解析:如何构建零配置的AI笔记关联引擎