RDT-1B(robotics-diffusion-transformer/rdt-1b)是清华 THU-ML 开源的 10 亿参数机器人扩散 Transformer:以扩散建模机器人动作轨迹,语言指令(T5-xxl 4096 维 token)与多相机视觉观测(SigLIP 1152 维 token)经 adaptor 进入 DiT 主干(28 层 × 2048 隐层 × 32 头),输出 64 步 × 128 维动作块(action chunk),DDPM 5 步去噪采样。
toy_rdt.py 布局)| 项目 | 版本 |
|---|---|
| NPU | Ascend 910(64GB HBM) |
| CANN | 8.5.1 |
| torch / torch_npu | 2.9.0 |
| Python | 3.11.14 |
推理引擎:torch_npu(npu:0,fp16)。
外网代理对该 codebase 拉取失败,故按 checkpoint 键名逐张量自建主干(inference.py 内 RDT/RDTCore/Block 等,与官方 toy_rdt.py 布局一一对应):model.*(DiT 核心:x_pos_embed(1,67,2048)、t_embedder.mlp、freq_embedder.mlp、28×blocks(自注意力 fused-QKV+QK-Norm / 交叉注意力 / FFN,LayerNorm 无 bias)、final_layer)+ 顶层 lang/img/state_adaptor;DDPM 采用 squaredcos_cap_v2、prediction_type=sample、5 步推理,与 config.json 的 noise_scheduler 一致。
source /usr/local/Ascend/cann-8.5.1/set_env.sh
export RDT1B_MODEL_DIR=/tmp/bigw/rdt-1b # 已下载权重目录
python inference.py --device npuinference.py 自动完成:按 config 建主干 → strict 加载审计 → 合成观测(1024×4096 语言 token + 4374×1152 图像 token + 2×128 本体状态)+ 语言指令 → 5 步 DDPM 去噪 → 动作块统计与功能检查 → 性能统计,结果写入 /tmp/rdt1b_npu_results.json。
torch.load + load_state_dict(strict=True) 实测 0 missing / 0 unexpected / 0 mismatched(0/0/0),618 个张量逐一对齐(含全部 28 层 block、adaptor、pos embed)。config.json 全部维度字段(action_dim=128、pred_horizon=64、img_cond_len=4374、max_lang_cond_len=1024、rdt.depth/hidden_size/num_heads=28/2048/32、lang/img/state_token_dim、mlp2x/mlp3x_gelu adaptor 类型、DDPM 调度参数)均直接驱动主干构建,无静默默认值。用例:合成观测 + 语言指令 'pick_up_the_red_block'(25Hz 控制频率,5 步 DDPM)。
action chunk shape: (1, 64, 128) step0 (t=0) first 6 dims: [0.2122, 0.2952, 0.2106, -1.4561, -0.0635, 1.6924] step1 (t=1) first 6 dims: [0.2151, 0.2905, 0.2155, -1.5156, -0.0536, 1.7100] step32 (t=32) first 6 dims: [0.1788, 0.3865, 0.1683, -1.3564, 0.0059, 1.6152] chunk stats: mean=0.0214 std=0.2009 min=-1.5469 max=1.7305
指令 'open_the_drawer'(不同观测种子)输出同样非恒定(std=0.1919)且数值不同。
| 指标 | 数值 |
|---|---|
| 预热 / 正式 | 5 / 20 次完整 5 步去噪 rollout |
| 单次 rollout(64×128 动作块) | avg 0.172s / p50 0.169s / p95 0.181s / max 0.182s |
| 吞吐 | 5.83 rollouts/s |
| 峰值 HBM(torch.npu allocator) | 2.49 GB |
assets/agent_workflow.png:模型上卡日志(config 建主干 → strict 加载 → npu:0)assets/npu_device_call.png:npu-smi 实时占用 + torch_npu 设备断言assets/model_result.png:真机 NPU 动作预测输出#NPU