StreamPI
港大开源的视觉-语言-动作多模态流式推理框架
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
港大开源的视觉-语言-动作多模态流式推理框架
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象你让机器人去厨房拿一个杯子。它刚刚观察了抽屉的位置,转头去拿杯子——但就在这短短几秒的转头间隙里,如果它"忘记"了刚才看到的抽屉位置,就得重新低头去看。人类完成这个动作毫不费力,因为我们的大脑有记忆,能在视野切换时保持对关键信息的追踪。但现有主流的视觉-语言-动作(VLA)模型,恰恰是"眨眼就忘"的典型。
以 Physical Intelligence 的 π0.5 为代表的单帧 VLA 模型,每次只处理当前画面的一帧视觉信息,无法在时序上保留历史观察。这带来的问题是:机器人转头时丢失空间记忆,无法完成需要"先观察再操作"的串联动作。与此同时,业界已有的窗口式多帧模型虽然能处理多帧历史,但每次都要重新编码全部历史帧,计算开销随时间线性增长,实时部署几乎不可能。
这就是 StreamPI 要解决的核心问题——如何让 VLA 模型在保持记忆的同时,又不引入额外的参数和过高的计算开销?

StreamPI 来自香港大学(HKU)Super AI Lab(SAIL)实验室,由赵恒爽教授团队与 ACE Robotics 合作开发。该团队长期聚焦于计算机视觉与具身智能的交叉研究,在 CVPR、ICCV、NeurIPS 等顶会上发表了大量高质量工作。赵恒爽教授是视觉感知领域的知名学者,其团队的研究方向覆盖从 2D 图像理解到 3D 场景重建的完整链条。
StreamPI 的核心设计思路在 2026 年 8 月以技术报告形式发布在 arXiv(编号 2608.26067),代码和模型权重也同步开源。赵恒爽教授团队选择基于 Physical Intelligence 的 openpi 框架进行扩展开发,而不是从零搭建,一方面是尊重原始工作的工程积累,另一方面也体现了学术界"站在巨人肩膀上"的务实风格——特别是在 JAX 分布式训练这个工程深水区,借用成熟的底层设施是明智之举。
StreamPI 的核心创新叫做指令锚定式时序建模(Instruction-Anchored Temporal Modeling)。其核心思想是:将每一对"视觉观察 + 语言指令"视为一个不可分割的时序单元(temporal unit),然后在多个单元之间建立跨时序的注意力连接。
具体来说,StreamPI 将最新的 T 个时序单元首尾相接构成输入序列。每个单元内部,各视觉 token 与语言指令 token 之间通过**双向注意力(intra-pair bidirectional attention)完成完整的跨模态融合;相邻单元之间则通过因果注意力(inter-pair causal attention)**实现时序建模,模型可以回看历史单元,但无法窥视未来——这既保证了推理的单向性,也模拟了真实部署中"未来尚未发生"的实际场景。
关键在于:每来到一个新的时间步,模型都会重新锚定语言指令。这意味着即使模型已经处理了 10 个历史帧,语言指令在每一个时间步都会被重新"粘贴"进来,成为持续唤醒任务目标的信号。这个设计巧妙地防止了"目标稀释"问题——当视觉上下文越来越长时,任务目标不会被淹没在浩如烟海的历史 token 中。
StreamPI 并没有修改 π0.5 的网络结构。它完全继承了该模型预训练的权重,只通过扩展输入 token 序列和调整注意力 mask来实现时序建模。这意味着不需要额外训练一个时序建模模块,不需要重新预训练,不需要任何新的可学习参数。对于已经在 π0.5 上投入大量训练资源的团队来说,这是一个巨大的优势——他们只需对 StreamPI 的注意力结构做微调,即可获得时序记忆能力。
真实机器人的传感器数据流并非完美等间隔到达,网络延迟、传感器抖动都会造成帧与帧之间的时间间隔波动。StreamPI 提出了随机间隔流式训练(Random-Interval Streaming Training)来应对这一挑战:训练时,模型采样随机的历史帧间隔(论文中采用 [3, 7] 帧的均匀采样),模拟真实世界的时间不确定性;同时对最早的一些单元施加随机 masking(隐藏 0 到 T-1 个单元),让模型学会在不完整的上下文中也能做出合理的动作预测。这两个机制共同弥合了同步训练数据与异步部署环境之间的鸿沟。

在推理阶段,StreamPI 采用流式(streaming)模式,第一帧完成完整的编码和动作预测后,将 Key-Value 表示存入 KV Cache;后续每一帧只需编码当前时序单元,该单元的注意力可以覆盖到缓存中的全部历史 KV。整个过程中,已处理过的历史帧不需要重新计算,大幅降低了延迟。
在 NVIDIA RTX 4090 单卡上,将上下文从 1 帧扩展到 5 帧,平均推理延迟仅增加 9.2ms(从 94.4ms 到 103.6ms),这在实时机器人控制中是完全可以接受的。延迟增加的幅度与帧数增加并不成正比,这得益于 KV Cache 避免了历史帧的重复编码。
StreamPI 基于 Physical Intelligence 的 openpi 框架构建,核心依赖包括:
代码组织上,src/openpi/ 下包含核心模型(models/、models_pytorch/)、策略(policies/)、训练(training/)和服务(serving/)等子模块。packages/openpi-client/ 提供了轻量级的 WebSocket 客户端,供机器人端代码调用远程推理服务。examples/ 下覆盖了 CALVIN、LIBERO、ALOHA、DROID 等多个主流仿真和真实机器人实验环境。
StreamPI 的定位是研究级框架,而非开箱即用的产品级工具,因此部署存在一定门槛。
依赖环境方面,项目要求 Python 3.11+、CUDA 12、JAX(支持 CUDA 12),并使用 uv 作为包管理器。JAX 对 GPU 驱动的版本匹配要求较为严格,安装时需要确保 CUDA 版本与 JAX 编译时绑定的 CUDA 版本一致。
Docker 部署是官方推荐的方案。项目在 scripts/docker/compose.yml 提供了完整的 Docker Compose 配置,各示例环境(ALOHA、CALVIN、LIBERO 等)也有独立的 compose 文件。Docker 方案的优势在于隔离了 JAX 的版本依赖,但构建镜像本身需要较长时间。
推理侧支持远程服务器模式:策略服务器(scripts/serve_policy.py)运行在具有大显存的 GPU 机器上,机器人端通过 openpi-client WebSocket 客户端以低带宽连接调用策略。这是一种将计算密集的策略推理与机器人控制解耦的常见架构设计。
训练侧是部署难度最高的部分。StreamPI 提供了 JAX 多节点分布式训练支持,需要 MPI 或类似的集群通信基础设施。
StreamPI 目前仍处于早期开源阶段。模型权重于 2026 年 8 月 30 日才正式发布,公开的训练 checkpoint 和更详细的评估基准尚未完全公开。Docker 依赖较重,需要较高规格的 GPU(推理建议 24GB+ 显存)。此外,StreamPI 的时序窗口长度受限于 LLM backbone 的最大上下文长度。
StreamPI 的价值不仅在于技术本身,更在于它代表了一个重要趋势——VLA 模型正在从单帧决策走向连续时序决策。从 π0.5 到 StreamPI,模型从"每帧独立决策"进化到"带记忆的流式决策",这为机器人完成"先观察环境,再执行任务,再根据反馈调整"的真实世界操控序列奠定了基础。
随着具身智能研究的持续升温,类似的时序建模技术将变得越来越重要。StreamPI 的"零参数增量"思路尤其值得关注——它证明了在不改变模型结构的前提下,通过训练策略和推理范式的创新,可以解锁全新的能力。