How to?

Papers batch 1

Jan 1, 2025
papers
4 Minutes
754 Words

RT-2

  • https://hjfy.top/arxiv/2307.15818 和 OpenVLA 同属一派,将 VLM 的最后 256 个 token id 分配给动作,直接将 x, y, z, yaw, pitch, roll, gripper 划分为 256 个离散桶,七个动作维度共享 token id 并通过位置区分语义,直接拼接丢给 VLM 输出隐状态,一个 head 解码出 id 再映射回动作空间. 缺点是离散化和自回归导致的精度不够.

TODO: 数据集这一块儿有空可以再看看.

World Model for Robot Learning: A Comprehensive Survey

default

Fast-WAM (Yuanet al., 2026)

可被视为该家族中的一个混合点:它采用具有共享注意力的 Transformer 混合体骨干网络 及耦合的视频与动作分支,但结论认为主要优势可能更多来自训练期间的视频协同训练,而非推理阶段 的显式未来想象。在这些变体中,视频分支越来越不再被视为需要忠实渲染的输出,而是被看作一种预 测性潜在过程,其隐状态用于指导动作生成.

Lingbot-va

  • https://hjfy.top/arxiv/2601.21998
  • [ok] 自回归扩散
    • [ok] 对统一序列施加因果注意力掩码,确保预测的视觉状态和动作命令均受先前状态的约
1
obs0 -> VAE -> z0
2
3
infer #1 (frame_st_id=0):
4
1) flow denoise video chunk [z0_anchor, z1_hat] # 2帧,不是(z1,z2)两个未来
5
- 第0帧被 init_latent=z0 钉住
6
- 第1帧才是预测的未来 latent
7
2) flow denoise action chunk [a_grp0(16步), a_grp1(16步)] # 共32步
8
- 条件:cache(空) + 刚预测的 video chunk
9
execute #1(第一轮特殊):
10
start_idx=1 -> 跳过 a_grp0,只执行 a_grp1 的 16 步
11
每 4 步收一次 obs -> key_frame_list(约 4 个真实 obs)
12
compute_kv_cache #1:
13
clear_pred_cache() # 删掉 z_hat、a_hat,不是“替换某几帧”
14
real_z = VAE(key_frame_list)
15
若 frame_st_id==0: cat(init_latent=z0, real_z)
12 collapsed lines
16
real_a = preprocess(executed action chunk)
17
写入 cache(is_pred=False)
18
19
infer #2:
20
预测下一个 chunk [z2_hat, z3_hat] + [a_grp2, a_grp3]
21
条件:cache 里的 real history
22
execute #2 起:
23
start_idx=0 -> 执行完整 32 步
24
每 4 步收 obs -> key_frame_list(约 8 个)
25
compute_kv_cache #2:
26
再次 clear_pred_cache()
27
追加新的 real_z / real_a

RTC

1
# H: (Prediction Horizon), M: 动作维度 (Action Dim), O: 观测维度
2
def rtc_inference(v_net, o_t, A_prev, d, s, n=5, beta=5):
3
# o_t: 观测 [O], A_prev: 旧动作块的残余部分 [H, M] (已 pad0 至H长度)
4
# d: 推理延迟 s: 执行步长 n: 迭代步数 beta: 引导项裁剪值
5
A_tau = torch.randn((H, M)) # [H, M] 采样初始噪声
6
W = compute_soft_mask(d, s, H) # [H, 1] 软掩码权重,1 ~ 0递减
7
for tau in np.linspace(0, 1, n): # n 步流匹配迭代
8
v = v_net(A_tau, o_t, tau) # [H, M] 当前速度场预测
9
# A_hat_1: [H, M] 预估当前步如果去噪完成后的最终动作轨迹
10
A_hat_1 = A_tau + (1 - tau) * v
11
# 计算带权重的 Inpainting 误差
12
loss = 0.5 * (W * (A_prev - A_hat_1)**2).sum() # 标量 Scalar
13
# g: [H, M] 获取修正梯度,指引 A_tau 向 A_prev 靠拢
14
g = torch.autograd.grad(loss, A_tau)[0]
15
scale = min(beta, get_weight_scale(tau)) # get_weight_scale 是一个随 tau 递减的权重
3 collapsed lines
16
# A_tau: [H, M] 结合原始预测与裁剪后的引导项进行更新
17
A_tau += (1/n) * (v + scale * g)
18
return A_tau # [H, M] 平滑衔接的新动作块
Article title:Papers batch 1
Article author:Julyfun
Release time:Jan 1, 2025
Copyright 2026
Sitemap