LingBot-World:开源世界模型技术深度解析
论文:Advancing Open-source World Models
arXiv:https://arxiv.org/abs/2601.20540
代码:https://github.com/robbyant/lingbot-world
项目主页:https://technology.robbyant.com/lingbot-world
模型权重:https://huggingface.co/robbyant/lingbot-world
团队:蚂蚁集团 · 灵波科技(Robbyant Team)
一、研究背景与动机
1.1 什么是世界模型
世界模型(World Model)是一种能够学习并理解物理世界运行规律的AI系统。给定视觉状态序列 V={x1,x2,…,xT}\mathcal{V} = \{x_1, x_2, \ldots, x_T\}V={x1,x2,…,xT} 和控制信号序列 A={a1,a2,…,aT}\mathcal{A} = \{a_1, a_2, \ldots, a_T\}A={a1,a2,…,aT},世界模型学习参数化的状态转移函数:
xt+1∼pθ(⋅∣x≤t,a≤t,c)x_{t+1} \sim p_\theta(\cdot | x_{\leq t}, a_{\leq t}, c)xt+1∼pθ(⋅∣x≤t,a≤t,c)
其中 ccc 是条件信号(如文本提示),θ\thetaθ 是模型参数。
与传统视频生成模型不同,世界模型不仅追求视觉逼真,更要求生成内容符合物理规律和因果关系。
1.2 视频生成 vs 世界模型的本质区别
视频生成模型(如Sora)学习的是像素级分布:
pθ(V∣c)=∏tpθ(xt∣x<t,c)p_\theta(\mathcal{V} | c) = \prod_t p_\theta(x_t | x_{<t}, c)pθ(V∣c)=t∏pθ(xt∣x<t,c)
它优化的是"什么样的画面看起来像真实视频",但无法保证物理一致性。
世界模型学习的是受动作驱动的条件转移:
pθ(xt+1∣x≤t,a≤t,c)p_\theta(x_{t+1} | x_{\leq t}, a_{\leq t}, c)pθ(xt+1∣x≤t,a≤t,c)
它要求动作 ata_tat 与视觉结果 xt+1x_{t+1}xt+1 之间因果对齐——不仅仅"看起来对",更要"物理上对"。
1.3 三大核心挑战
构建一个实用的世界模型需要解决三个根本性鸿沟:
| 鸿沟 | 描述 | 现有方法的困境 |
|---|---|---|
| 能力鸿沟 | 从5秒短视频到分钟级长视频,需要长期记忆和场景一致性 | 现有视频模型生成超过5秒就"失忆"——场景漂移、物体变形 |
| 交互鸿沟 | 模型必须精确响应控制信号,且动作与视觉结果因果对齐 | 视频模型是"被动"的,无法接受和响应动作输入 |
| 效率鸿沟 | 实时交互需要低延迟(<1秒),高帧率(16fps) | 标准扩散模型多步去噪+双向注意力,每帧需数秒 |
1.4 LingBot-World的策略:三阶段渐进演化
| 阶段 | 目标 | 解决的鸿沟 |
|---|---|---|
| Pre-Training | 建立通用视频先验 | 能力鸿沟的基础 |
| Middle-Training | 注入世界知识+长期动态+交互控制 | 能力鸿沟+交互鸿沟 |
| Post-Training | 因果架构适配+少步蒸馏 | 效率鸿沟 |
二、模型架构
2.1 DiT扩散Transformer基座
LingBot-World基于**DiT(Diffusion Transformer)**架构,将扩散模型与Transformer结合。
2.1.1 Flow Matching框架
给定数据样本 x1x_1x1(目标视频潜表示)和噪声 ϵ∼N(0,I)\epsilon \sim \mathcal{N}(0, I)ϵ∼N(0,I),Flow Matching定义线性插值路径:
z(s)=(1−s)ϵ+s⋅x1,s∈[0,1]z^{(s)} = (1 - s)\epsilon + s \cdot x_1, \quad s \in [0, 1]z(s)=(1−s)ϵ+s⋅x1,s∈[0,1]
真实速度场为:
z˙(s)=x1−ϵ\dot{z}^{(s)} = x_1 - \epsilonz˙(s)=x1−ϵ
模型学习预测向量场 vθv_\thetavθ,训练目标:
LFM=Es,ϵ,x1[∥vθ(z(s),s,c)−(x1−ϵ)∥2]\mathcal{L}_{\text{FM}} = \mathbb{E}_{s, \epsilon, x_1} \left[ \left\| v_\theta(z^{(s)}, s, c) - (x_1 - \epsilon) \right\|^2 \right]LFM=Es,ϵ,x1[vθ(z(s),s,c)−(x1−ϵ)2]
推理时通过ODE积分:
x1=ϵ+∫01vθ(z(s),s,c) dsx_1 = \epsilon + \int_0^1 v_\theta(z^{(s)}, s, c) \, dsx1=ϵ+∫01vθ(z(s),s,c)ds
设计原理:Flow Matching相比DDPM,训练目标更简洁(直接回归速度场而非噪声),生成路径更直(Linear Interpolation),支持更少的采样步骤,且训练稳定性更好。
2.1.2 潜空间操作
通过预训练因果视频VAE将视觉观测编码为紧凑潜表示:
zt=E(ot∣o<t)z_t = E(o_t | o_{<t})zt=E(ot∣o<t)
生成在潜空间中进行,最终通过VAE解码器恢复像素:
o^t=D(zt)\hat{o}_t = D(z_t)o^t=D(zt)
设计原理:潜空间操作将高维像素空间(H×W×3H \times W \times 3H×W×3)压缩到低维潜空间,显著降低扩散模型的计算和存储开销。因果VAE编码器确保编码过程是时间因果的。
2.2 基座选择:Wan2.2 14B I2V
LingBot-World选择Wan2.2 14B Image-to-Video作为基座:
| 选择理由 | 说明 |
|---|---|
| 参数规模适中 | 14B在视频生成领域"够大又不至于无法训练" |
| 时空一致性优化 | 专门针对复杂时空一致性优化,物体持久性和运动连贯性优秀 |
| MoE架构预留 | 已采用MoE架构,便于后续扩展到28B参数 |
2.3 MoE双专家架构(28B参数)
在Middle-Training阶段,将14B基座扩展为28B参数的双专家MoE模型:
路由机制:给定输入token h\mathbf{h}h,路由器根据噪声水平 sss 选择专家:
Expert(h,s)={Ehigh(h)if s>sthreshold(High-Noise Expert)Elow(h)if s≤sthreshold(Low-Noise Expert)\text{Expert}(\mathbf{h}, s) = \begin{cases} E_{\text{high}}(\mathbf{h}) & \text{if } s > s_{\text{threshold}} \quad \text{(High-Noise Expert)} \\ E_{\text{low}}(\mathbf{h}) & \text{if } s \leq s_{\text{threshold}} \quad \text{(Low-Noise Expert)} \end{cases}Expert(h,s)={Ehigh(h)Elow(h)if s>sthreshold(High-Noise Expert)if s≤sthreshold(Low-Noise Expert)
| Expert | 职责 | 设计原理 |
|---|---|---|
| High-Noise Expert | 处理高噪声阶段(s→0s \to 0s→0),负责全局结构和粗粒度布局 | 高噪声阶段需要"大局观"——确定场景整体构图、物体位置、运动方向 |
| Low-Noise Expert | 处理低噪声阶段(s→1s \to 1s→1),负责细粒度纹理和时空细节 | 低噪声阶段需要"精雕细琢"——渲染细节纹理、光影效果、时序连贯性 |
推理效率:每步只激活一个Expert,计算量仍为14B级别。总参数28B但实际推理成本不翻倍。
2.4 动作条件注入机制
2.4.1 动作表示
用户的键盘和鼠标操作是离散+连续的混合体:
at=[pt⏟Plu¨cker Embedding⊕kt⏟Multi-hot Vector]a_t = [\underbrace{\mathbf{p}_t}_{\text{Plücker Embedding}} \oplus \underbrace{\mathbf{k}_t}_{\text{Multi-hot Vector}}]at=[Plu¨cker Embeddingpt⊕Multi-hot Vectorkt]
-
连续旋转信号 pt\mathbf{p}_tpt:使用Plücker Embedding编码3D相机旋转
p=[d×m,d]∈R6\mathbf{p} = [\mathbf{d} \times \mathbf{m}, \mathbf{d}] \in \mathbb{R}^6p=[d×m,d]∈R6
其中 d\mathbf{d}d 是旋转轴方向,m\mathbf{m}m 是力矩向量,×\times× 是叉积。
-
离散按键信号 kt\mathbf{k}_tkt:使用Multi-hot Vector编码WASD等按键
-
两者在通道维度拼接:⊕\oplus⊕ 表示concatenation
设计原理:Plücker坐标是3D旋转的最小冗余参数化——6个参数完整表示3D旋转,无奇点问题,相比四元数(4参数,需单位约束)或欧拉角(3参数,有万向锁问题)更适合神经网络处理。
2.4.2 AdaLN注入方式
通过**自适应层归一化(Adaptive Layer Normalization)**将动作信号注入DiT block:
h′=γ(at)⊙LayerNorm(h)+β(at)\mathbf{h}' = \gamma(a_t) \odot \text{LayerNorm}(\mathbf{h}) + \beta(a_t)h′=γ(at)⊙LayerNorm(h)+β(at)
其中 γ(at)\gamma(a_t)γ(at) 和 β(at)\beta(a_t)β(at) 是由动作信号 ata_tat 通过MLP生成的scale和shift参数。
设计原理:AdaLN的设计哲学是**“引导"而非"接管”**——
- 直接拼接/Cross-Attention:动作信号直接参与特征计算,可能破坏预训练好的视觉先验
- AdaLN:动作信号只通过scale和shift调制已有特征,不改变特征的方向,只调节其强度和偏移
- 这确保了动作控制能力与视频生成质量解耦——学习控制时不影响视觉质量
2.5 因果架构适配(Post-Training)
2.5.1 从双向到因果的架构改造
Middle-Training产出的模型使用双向注意力(必须看到全部帧才能生成),注意力计算为:
Attnbidirectional(Q,K,V)=softmax(QKTdk)V\text{Attn}_{\text{bidirectional}}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) VAttnbidirectional(Q,K,V)=softmax(dkQKT)V
Post-Training将其改造为因果注意力:
Attncausal(Q,K,V)=softmax(QKTdk⊙Mcausal)V\text{Attn}_{\text{causal}}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}} \odot M_{\text{causal}}\right) VAttncausal(Q,K,V)=softmax(dkQKT⊙Mcausal)V
其中 McausalM_{\text{causal}}Mcausal 是下三角因果掩码:
Mcausal[i,j]={0if j≤i−∞if j>iM_{\text{causal}}[i, j] = \begin{cases} 0 & \text{if } j \leq i \\ -\infty & \text{if } j > i \end{cases}Mcausal[i,j]={0−∞if j≤iif j>i
保留策略:帧内注意力保持双向,仅帧间改为因果。这样帧内生成质量不受影响,而帧间的因果性确保可以自回归推理。
2.5.2 初始化策略
从MoE模型中取出High-Noise Expert初始化因果学生模型。
选择High-Noise Expert的原因:实验证明High-Noise Expert在动态建模方面明显更强——它在训练中负责从高噪声(s≈0s \approx 0s≈0)中恢复全局运动结构:
vhigh(z(s),s≈0,c)≈x1−ϵv_{\text{high}}(z^{(s)}, s \approx 0, c) \approx x_1 - \epsilonvhigh(z(s),s≈0,c)≈x1−ϵ
此时 z(s)≈ϵz^{(s)} \approx \epsilonz(s)≈ϵ,几乎无视觉信息,Expert必须仅凭条件 ccc 推断场景的整体运动方向——这恰好是交互式世界模型最需要的全局动态规划能力。
2.5.3 KV-Cache自回归推理
引入KV-Cache实现增量计算:自回归推理中,第 ttt 步只需计算新token的Query与缓存的所有历史Key/Value的注意力,历史部分无需重复计算。
2.6 少步蒸馏
标准Flow Matching推理需要50步ODE积分,LingBot-World通过蒸馏缩减至4-8步:
教师模型:双向MoE模型,多步去噪生成高质量视频
学生模型:因果模型,少步去噪逼近教师质量
蒸馏损失:
Ldistill=E[∥vstudent(z(s),s,c)−vteacher(z(s),s,c)∥2]\mathcal{L}_{\text{distill}} = \mathbb{E}\left[\left\| v_{\text{student}}(z^{(s)}, s, c) - v_{\text{teacher}}(z^{(s)}, s, c) \right\|^2\right]Ldistill=E[vstudent(z(s),s,c)−vteacher(z(s),s,c)2]
最终推理性能:
| 指标 | 数值 |
|---|---|
| 帧率 | 16 fps @ 480×832480 \times 832480×832 |
| 延迟 | < 1秒端到端 |
| 自回归 | 支持无限续写 |
三、数据处理
3.1 数据引擎三阶段架构
LingBot-World将数据引擎构建为三阶段统一流水线:
Raw Data→CollectionCollected Data→AnalysisFiltered Data→CaptioningTraining Data\text{Raw Data} \xrightarrow{\text{Collection}} \text{Collected Data} \xrightarrow{\text{Analysis}} \text{Filtered Data} \xrightarrow{\text{Captioning}} \text{Training Data}Raw DataCollectionCollected DataAnalysisFiltered DataCaptioningTraining Data
3.2 数据采集(Data Collection)
3.2.1 通用视频筛选器
从内部和开源数据中筛选符合训练目标的高价值样本。筛选函数:
score(v)=w1⋅diversity(v)+w2⋅quality(v)+w3⋅motion(v)\text{score}(v) = w_1 \cdot \text{diversity}(v) + w_2 \cdot \text{quality}(v) + w_3 \cdot \text{motion}(v)score(v)=w1⋅diversity(v)+w2⋅quality(v)+w3⋅motion(v)
优先考虑多样化世界探索的视频内容,涵盖不同视角和运动类型。
相关数据集/来源:
| 数据集 | 地址 |
|---|---|
| Ego4D(第一人称) | https://ego4d-data.org/ |
| OpenX-Embodiment | https://github.com/google-deepmind/open_x_embodiment |
| H2O | https://taohuumlab.github.io/H2O/ |
3.2.2 游戏数据采集平台
采集策略分四大类:
| 类别 | 子类别 | 采集目的 |
|---|---|---|
| 导航 | 自由导航、循环漫游、过渡导航 | 覆盖一般移动模式 |
| 观光 | 场景细节检查、地标旋转 | 多视角一致性 |
| 长尾场景 | 静止观察(360°旋转)、后退导航 | 罕见但关键的数据分布 |
| 世界交互 | 局部动作(拾取/开门)、重大事件(战斗/破坏) | 因果性的智能体-环境关系 |
3.2.3 合成渲染管线(Unreal Engine)
利用**虚幻引擎(UE)**生成可扩展合成数据集。
轨迹生成采用两种模式:
模式1:程序化路径生成
几何图案合成的轨迹由结构化参数生成:
Trect(t)=p0+d1⋅(tmod L1)+d2⋅⌊tL1⌋\mathbf{T}_{\text{rect}}(t) = \mathbf{p}_0 + \mathbf{d}_1 \cdot (t \mod L_1) + \mathbf{d}_2 \cdot \left\lfloor \frac{t}{L_1} \right\rfloorTrect(t)=p0+d1⋅(tmodL1)+d2⋅⌊L1t⌋
360°旋转轨迹:
Trot(t)=c+r⋅[cos(ωt),sin(ωt),0]\mathbf{T}_{\text{rot}}(t) = \mathbf{c} + r \cdot [\cos(\omega t), \sin(\omega t), 0]Trot(t)=c+r⋅[cos(ωt),sin(ωt),0]
其中 c\mathbf{c}c 是旋转中心,rrr 是半径,ω\omegaω 是角速度。
多点插值:
Tspline(t)=∑iBi(t)⋅Pi\mathbf{T}_{\text{spline}}(t) = \sum_i B_i(t) \cdot \mathbf{P}_iTspline(t)=i∑Bi(t)⋅Pi
其中 Bi(t)B_i(t)Bi(t) 是B样条基函数,Pi\mathbf{P}_iPi 是控制点。
模式2:真实世界轨迹导入——将物理设备捕获的路径直接映射到UE中。
碰撞检测:每条轨迹经过严格碰撞检测后确认:
valid(T)={Trueif ∀t:dist(T(t),mesh)>δminFalseotherwise\text{valid}(\mathbf{T}) = \begin{cases} \text{True} & \text{if } \forall t: \text{dist}(\mathbf{T}(t), \text{mesh}) > \delta_{\min} \\ \text{False} & \text{otherwise} \end{cases}valid(T)={TrueFalseif ∀t:dist(T(t),mesh)>δminotherwise
| 工具/引擎 | 地址 |
|---|---|
| Unreal Engine | https://www.unrealengine.com/ |
| Habitat-Sim | https://github.com/facebookresearch/habitat-sim |
3.3 数据分析(Data Analysis)
3.3.1 基本过滤与时间分割
- 提取视频时长、分辨率、文件大小等基本属性
- 剔除分辨率不足或时长不够的视频
- 利用Koala切片算法 + TransNetV2分割视频
| 工具 | 地址 |
|---|---|
| TransNetV2 | https://github.com/soCzech/TransNetV2 |
3.3.2 语义分析
使用VLM提取过滤属性,并为普通视频生成相机姿态伪标签:
P^t,K^t=MegaSAM(ot)\hat{P}_t, \hat{K}_t = \text{MegaSAM}(o_t)P^t,K^t=MegaSAM(ot)
其中 P^t∈SE(3)\hat{P}_t \in SE(3)P^t∈SE(3) 是估计的相机位姿,K^t\hat{K}_tK^t 是内参矩阵。
| 工具 | 地址 |
|---|---|
| MegaSAM | https://github.com/mega-sam/mega-sam |
3.4 数据标注(分层Caption策略)
使用VLM为语料库生成三层语义描述:
| 标注层 | 描述 | 作用 |
|---|---|---|
| 综合叙事性描述 | Cnarr=VLM(V,"描述整个视频")C_{\text{narr}} = \text{VLM}(\mathcal{V}, \text{"描述整个视频"})Cnarr=VLM(V,"描述整个视频") | 全局语义提示 |
| 场景静态描述 | Cstatic=VLM(V,"只描述场景,忽略运动")C_{\text{static}} = \text{VLM}(\mathcal{V}, \text{"只描述场景,忽略运动"})Cstatic=VLM(V,"只描述场景,忽略运动") | 动作-场景解耦 |
| 密集时间性描述 | Cdense={c1,c2,…}C_{\text{dense}} = \{c_1, c_2, \ldots\}Cdense={c1,c2,…}, ci=VLM(V[ti:ti+1])c_i = \text{VLM}(\mathcal{V}_{[t_i:t_{i+1}]})ci=VLM(V[ti:ti+1]) | 时间对齐训练 |
设计原理:三层描述的核心思想是将"内容(what)"和"运动(how)"语义解耦:
- 场景静态描述只描述"画面里有什么",刻意省略镜头运动和角色动作
- 这确保文本prompt不会泄露动作信息——模型必须依赖动作信号 ata_tat 来控制运动,而非从文本中"偷看"
- 如果描述中包含"镜头向右移动",模型可能学会只从文本推断运动,忽略真正的动作输入
四、训练方案:三阶段渐进式演化
4.1 第一阶段:Pre-Training(建立通用视频先验)
目标:对自然视频序列的无条件分布建模,建立视觉动态的通用先验。
minθE[LFM(vθ)]\min_\theta \mathbb{E}\left[\mathcal{L}_{\text{FM}}(v_\theta)\right]θminE[LFM(vθ)]
做法:直接使用Wan2.2 14B I2V预训练模型作为基座,不做任何额外训练。
模型能力画像:
| ✅ 能做 | ❌ 不能做 |
|---|---|
| 生成5秒高质量开放域视频 | 接受用户动作控制 |
| 物体纹理和场景结构合理 | 保持分钟级记忆 |
| 实时交互 |
设计原理:"先学会看世界,再学怎么和世界互动。"强大的视觉生成基础是世界模型的必要前提——如果一个模型连5秒视频都生成不好,不可能做好分钟级的世界模拟。
4.2 第二阶段:Middle-Training(注入世界知识与交互控制)
4.2.1 基础世界模型:让模型学会"记忆"
架构:扩展为28B双专家MoE模型。
核心技术1:渐进式课程训练(Progressive Curriculum Training)
Ttrain(e)={5se∈[0,E1)10se∈[E1,E2)30se∈[E2,E3)60se∈[E3,E4)T_{\text{train}}^{(e)} = \begin{cases} 5\text{s} & e \in [0, E_1) \\ 10\text{s} & e \in [E_1, E_2) \\ 30\text{s} & e \in [E_2, E_3) \\ 60\text{s} & e \in [E_3, E_4) \end{cases}Ttrain(e)=⎩⎨⎧5s10s30s60se∈[0,E1)e∈[E1,E2)e∈[E2,E3)e∈[E3,E4)
设计原理:不是简单的"加长"训练序列,而是让模型逐步适应越来越长的时间跨度。当训练序列足够长时,模型必须学会在60秒内保持场景结构稳定,这自发涌现出空间记忆能力——能"记住"视野外的场景状态,绕一圈回来时场景依然合理。
核心技术2:多任务训练
同时训练两种能力,统一目标函数:
Lmulti=λi2v⋅Li2v+λv2v⋅Lv2v\mathcal{L}_{\text{multi}} = \lambda_{\text{i2v}} \cdot \mathcal{L}_{\text{i2v}} + \lambda_{\text{v2v}} \cdot \mathcal{L}_{\text{v2v}}Lmulti=λi2v⋅Li2v+λv2v⋅Lv2v
- Image-to-Video (I2V):从单帧 →\to→ 预测未来,条件 c={x0,l}c = \{x_0, l\}c={x0,l}
- Video-to-Video (V2V):从历史序列 →\to→ 外推未来,条件 c={x≤t,l}c = \{x_{\leq t}, l\}c={x≤t,l}
设计原理:I2V让模型学会"从任意初始状态启动",V2V让模型学会"从任意历史续写"。两者合在一起实现**“任意初始状态都能续写”**——交互式世界模型在任意时刻都应能基于当前状态继续生成。
核心技术3:Flow Shift缩放
标准Flow Matching对所有timestep均匀采样 s∼U(0,1)s \sim \mathcal{U}(0, 1)s∼U(0,1)。LingBot-World引入Flow Shift参数 σ\sigmaσ,将采样分布偏向高噪声timestep:
s∼ShiftedUniform(0,1;σ),偏向 s≈0s \sim \text{ShiftedUniform}(0, 1; \sigma), \quad \text{偏向 } s \approx 0s∼ShiftedUniform(0,1;σ),偏向 s≈0
且 σ\sigmaσ 随视频时长渐进增加:
σ(Ttrain)=σ0+α⋅log(TtrainT0)\sigma(T_{\text{train}}) = \sigma_0 + \alpha \cdot \log\left(\frac{T_{\text{train}}}{T_0}\right)σ(Ttrain)=σ0+α⋅log(T0Ttrain)
设计原理:长视频生成需要更多"全局规划"时间(高噪声阶段 s≈0s \approx 0s≈0)来确定场景整体布局和运动方向。短视频则可更多"细节打磨"时间(低噪声阶段 s≈1s \approx 1s≈1)。Flow Shift随长度动态调整这一比例,显著提升长视频的场景稳定性。
4.2.2 动作条件世界模型:让模型学会"听指挥"
关键设计:冻结DiT主干 + 只训Action Adapter
θDiT←frozen,θadapter←trainable\theta_{\text{DiT}} \leftarrow \text{frozen}, \quad \theta_{\text{adapter}} \leftarrow \text{trainable}θDiT←frozen,θadapter←trainable
可训练参数包括:动作嵌入投影层 + AdaLN的 γ,β\gamma, \betaγ,β 参数。
总损失:
Laction=E[∥vθ(z(s),s,c,at)−(x1−ϵ)∥2]\mathcal{L}_{\text{action}} = \mathbb{E}\left[\left\| v_\theta(z^{(s)}, s, c, a_t) - (x_1 - \epsilon) \right\|^2\right]Laction=E[vθ(z(s),s,c,at)−(x1−ϵ)2]
设计原理:
- 解耦视频生成和动作控制:冻结主干确保学习动作注入时不破坏已有的视觉生成质量
- 防止灾难性遗忘:高质量动作标注数据稀缺(主要来自合成游戏数据),全量微调极易把"好看的视频生成"学没了,只学会粗糙的动作响应
- 参数高效:只新增极少量参数,不增加推理负担
4.2.3 并行基础设施
28B参数 × 60秒视频的训练需要分布式策略:
FSDP2(全分片数据并行):
模型参数、梯度、优化器状态均匀分片到 NNN 个GPU:
Parami=Shard(θ,i,N),i∈{0,1,…,N−1}\text{Param}_i = \text{Shard}(\theta, i, N), \quad i \in \{0, 1, \ldots, N-1\}Parami=Shard(θ,i,N),i∈{0,1,…,N−1}
每张卡只存储 1N\frac{1}{N}N1 的参数,通信与计算重叠。
Ulysses Context Parallel:
沿序列维度切分输入,通过All-to-All通信:
Attn(Qi,Ki,Vi)→All-to-AllAttn(Qi,Kall,Vall)\text{Attn}(Q_i, K_i, V_i) \xrightarrow{\text{All-to-All}} \text{Attn}(Q_i, K_{\text{all}}, V_{\text{all}})Attn(Qi,Ki,Vi)All-to-AllAttn(Qi,Kall,Vall)
每张卡只计算自己那部分的注意力,解决长序列激活值显存爆炸。
4.3 第三阶段:Post-Training(因果适配与实时推理)
4.3.1 因果架构适配
| 设计点 | 方案 |
|---|---|
| 初始化 | 从MoE取High-Noise Expert初始化因果学生 |
| 注意力改造 | 帧间 →\to→ 因果mask,帧内保留双向attention |
| 自回归推理 | KV-Cache增量计算 |
| 去噪步骤 | 通过蒸馏从50步减至4-8步 |
蒸馏损失:
Ldistill=Es,ϵ[∑i=1Sfew∥vcausal(z(si),si,c)−vbidir(z(si),si,c)∥2]\mathcal{L}_{\text{distill}} = \mathbb{E}_{s, \epsilon}\left[\sum_{i=1}^{S_{\text{few}}} \left\| v_{\text{causal}}(z^{(s_i)}, s_i, c) - v_{\text{bidir}}(z^{(s_i)}, s_i, c) \right\|^2\right]Ldistill=Es,ϵ[i=1∑Sfewvcausal(z(si),si,c)−vbidir(z(si),si,c)2]
其中 Sfew={s1,s2,…,sS}S_{\text{few}} = \{s_1, s_2, \ldots, s_{S}\}Sfew={s1,s2,…,sS},S∈{4,8}S \in \{4, 8\}S∈{4,8} 是少步采样的timestep集合。
五、核心能力与涌现特性
5.1 超长时序稳定生成
近10分钟连续稳定生成(16fps = 9600帧)。第9600帧仍能"记住"第1帧的场景——空间记忆涌现。
镜头移开 Δt\Delta tΔt 秒后转回,场景物体仍存在且结构一致:
一致性(scene0,sceneΔt)≈一致,Δt≤60s\text{一致性}(\text{scene}_0, \text{scene}_{\Delta t}) \approx \text{一致}, \quad \Delta t \leq 60\text{s}一致性(scene0,sceneΔt)≈一致,Δt≤60s
5.2 实时交互
16fps @ 480×832480 \times 832480×832,端到端延迟 < 1秒。
5.3 Zero-shot泛化
输入任意图片 x0x_0x0,模型即可将其"变活":
{xt}t=1T∼pθ(⋅∣x0,{at},l)\{x_t\}_{t=1}^T \sim p_\theta(\cdot | x_0, \{a_t\}, l){xt}t=1T∼pθ(⋅∣x0,{at},l)
5.4 文本驱动世界事件
自然语言触发场景变化(如"让天气变成下雪"),变化中几何关系保持一致——模型理解"内容"和"风格"的解耦:
xt+1∼pθ(⋅∣x≤t,a≤t,lsnow)x_{t+1} \sim p_\theta(\cdot | x_{\leq t}, a_{\leq t}, l_{\text{snow}})xt+1∼pθ(⋅∣x≤t,a≤t,lsnow)
5.5 涌现的物理约束
- 动态屏外记忆:对离开画面的对象持续记忆并推断屏外行为
- 物理碰撞:执行真实碰撞动力学,防止"穿模"
六、推理部署
6.1 模型变体
| 变体 | 说明 |
|---|---|
| LingBot-World-Base-Cam | 基础模型 + 相机控制(WASD + 鼠标) |
| LingBot-World-Base-Act | 基础模型 + 动作控制(更通用动作空间) |
6.2 关键推理参数
| 参数 | 说明 |
|---|---|
--task i2v-A14B | 任务类型(I2V,基于A14B架构) |
--size | 分辨率(480×832480 \times 832480×832 / 720×1280720 \times 1280720×1280) |
--frame_num | 生成帧数(需满足 4n+14n+14n+1,如49/161/321/961) |
--ulysses_size | 序列并行分片数(= GPU数量) |
--dit_fsdp / --t5_fsdp | DiT/T5的FSDP并行 |
--t5_cpu | T5编码器放CPU节省8-10GB显存 |
6.3 输入数据格式
| 文件 | 格式 | 说明 |
|---|---|---|
image.jpg | PNG/JPG | 视频第一帧图像 |
intrinsics.npy | [Nframes,4][N_{\text{frames}}, 4][Nframes,4] | 相机内参 [fx,fy,cx,cy][f_x, f_y, c_x, c_y][fx,fy,cx,cy] |
poses.npy | [Nframes,4,4][N_{\text{frames}}, 4, 4][Nframes,4,4] | 相机外参变换矩阵(OpenCV坐标系) |
prompt.txt | 文本 | 场景描述(可选,也可通过命令行指定) |
6.4 硬件需求
| 配置 | 推理 | 最佳 |
|---|---|---|
| GPU | 1-2张 RTX 4090 48GB | 8×A100 80GB(长视频) |
| 显存 | 24-48GB | - |
| 模型 | HuggingFace / ModelScope | https://huggingface.co/robbyant/lingbot-world |
七、局限性与未来方向
7.1 局限性
| 局限 | 描述 |
|---|---|
| 推理成本 | 需要企业级GPU,消费级硬件难普及 |
| 环境漂移 | 记忆从上下文窗口涌现而非显式存储 → 长时间运行场景结构逐渐失稳 |
| 控制粗粒度 | 仅基础导航,缺乏复杂交互和精细操控 |
| 蒸馏损失 | 因果蒸馏为实现实时性牺牲了一定视觉保真度 |
7.2 未来方向
- 扩展动作空间和物理引擎:dim(A)↑\dim(\mathcal{A}) \uparrowdim(A)↑,支持更复杂交互
- 引入显式记忆模块:MexplicitM_{\text{explicit}}Mexplicit 替代纯涌现记忆,提升长期稳定性
- 消除生成漂移:实现可无限运行的稳健世界模拟
- LingBot家族协同:Depth(感知) + VLA(决策) + World(模拟) + VA(行动)
八、与同类工作对比
| 特性 | LingBot-World | Genie 3 | Mirage 2 |
|---|---|---|---|
| 开源 | ✅ 完全开源 | ❌ 闭源 | ❌ 闭源 |
| 通用领域 | ✅ | ✅ | 部分 |
| 长时序 | ✅ ~10分钟 | 有限 | 有限 |
| 实时交互 | ✅ 16fps, <1s | 部分 | 部分 |
| 高动态度 | ✅ | 妥协 | 妥协 |
九、核心技术贡献总结
- 三阶段渐进演化:Pre-Training→Middle-Training→Post-Training,逐步解决能力/交互/效率鸿沟
- MoE双专家架构:28B参数但14B推理成本,路由函数 E(h,s)E(h, s)E(h,s) 按噪声水平选择专家
- 渐进式课程训练:TtrainT_{\text{train}}Ttrain 从5s→60s递进,涌现空间记忆
- Flow Shift缩放:σ(T)=σ0+αlog(T/T0)\sigma(T) = \sigma_0 + \alpha \log(T/T_0)σ(T)=σ0+αlog(T/T0),随视频时长动态调整噪声调度
- AdaLN动作注入:h′=γ(at)⊙LN(h)+β(at)h' = \gamma(a_t) \odot \text{LN}(h) + \beta(a_t)h′=γ(at)⊙LN(h)+β(at),冻结主干+只训Adapter
- 因果架构适配:High-Noise Expert初始化,帧间因果+帧内双向
- 少步蒸馏:50步→4-8步,Ldistill=E[∥vcausal−vbidir∥2]\mathcal{L}_{\text{distill}} = \mathbb{E}[\|v_{\text{causal}} - v_{\text{bidir}}\|^2]Ldistill=E[∥vcausal−vbidir∥2]
- 可扩展数据引擎:通用视频+游戏数据+UE合成渲染的三源混合
- 三层Caption解耦:CnarrC_{\text{narr}}Cnarr + CstaticC_{\text{static}}Cstatic + CdenseC_{\text{dense}}Cdense,语义解耦内容与运动
更多推荐
所有评论(0)