wall-x 源码逐行精读

WALL-OSS(Qwen2_5_VLMoEForAction)三个核心源文件 + 本项目补丁的完整逐行讲解—— 共 4600 行,每一行代码右侧都有中文旁注(做什么 / 为什么 / tensor shape / 坑)。 源码零改写,与仓库 commit 97406f2 逐字节一致。概览版见 Notebook 导读, 实战结果见 LIBERO 微调页

建议阅读顺序:先读 Notebook 导读建立整体地图(30 分钟), 再按下面顺序逐文件精读。行号可直链,如 vla_mixin.html#L34 直接跳到 TokenTypeRouter。

① vla_mixin.py — VLA 积木(987 行)

最短也最核心:TokenTypeRouter 查表路由、SparseMoeBlock 双专家 FFN(permute/unpermute 技巧)、 图像/状态/动作 embedding 注入、注意力掩码拼装。读懂它,MoE 化改造就全懂了。

wall_x/model/vla_mixin.py

② action_head.py — 动作头(808 行)

flow matching 的全部数学:Normalizer per-数据集 min/max 查表、时间步正弦编码、 ActionProcessor 的加噪(Beta 采样 + 直线插值)/40→2048 投影/flow loss(dof_mask 屏蔽空槽)。

wall_x/model/action_head.py

③ modeling_qwen2_5_vl_act.py — 主模型(2716 行)

最长的一件:ViT 视觉塔、M-RoPE、36 层 decoder(FFN 换 MoE)、训练 forward(CE+flow 双损失)、 generate_flow_action(5 步 Euler + 前缀 KV cache)与 FAST 离散分支。大部分继承自 Qwen2.5-VL, 逐行注释会标出"哪些是原版、哪些是 VLA 改动"。

wall_x/model/qwen2_5_based/modeling_qwen2_5_vl_act.py

④ train_libero_wrapper.py — 本项目补丁(89 行)

docker 挂载的猴子补丁:LIBERO 7 维动作 pad 进 20 维布局前 7 槽, PROPRI_DROPOUT 随机隐藏本体状态治"捷径学习/失明"。最短,但是本项目闭环成功的关键。

scratchpad/train_libero_wrapper.py(不入仓库,docker -v 覆盖)

生成于 wall-x LIBERO 微调项目 · 逐行注释由多 agent 交叉撰写并校验覆盖率(无空洞)· ← 返回结果页