From b57516b57bfa31457c7f76f349f34861e0cb8112 Mon Sep 17 00:00:00 2001 From: seeker Date: Sun, 12 Jul 2026 19:16:27 +0800 Subject: [PATCH] add task-conditioned pi0.5 hierarchy --- README.md | 33 ++-- outputs/overfit/evaluation.json | 12 +- outputs/overfit/summary.json | 12 +- outputs/overfit/training_history.json | 220 +++++++++++----------- outputs/overfit/trajectory_comparison.png | Bin 89369 -> 88066 bytes src/pi05mini/data.py | 13 +- src/pi05mini/infer.py | 21 ++- src/pi05mini/tokenizer.py | 113 ++++++++++- src/pi05mini/train.py | 40 ++-- tests/test_data.py | 35 +++- 10 files changed, 325 insertions(+), 174 deletions(-) diff --git a/README.md b/README.md index b40f44c..27c2d69 100644 --- a/README.md +++ b/README.md @@ -7,22 +7,23 @@ ## 验证内容 ```text -图像 + 本体状态 - │ - ▼ -小型视觉/语言主干 ──→ 高层语义 subtask - │ │ - └──── semantic prefix┘ - │ - noisy action + time │ - └──────────▼ +图像 + 离散本体状态 + 总体任务指令 + │ + ▼ + 高层语义 subtask 预测 + │ predicted subtask + ▼ +图像 + 离散本体状态 + 低层 subtask command + │ + noisy action + time + └───────▼ action expert(双向 action attention) - │ - ▼ - flow velocity → action chunk + │ + ▼ + flow velocity → action chunk ``` -默认任务使用 `64×64` 前视相机图像、离散化历史 XY 状态和一句 subtask,预测未来 `16×2` 的二维轨迹。样本少且重复训练,因此成功标准是“能够记忆训练集”,而不是泛化。 +默认任务使用 `64×64` 前视相机图像、离散化历史 XY 状态、总体任务指令和一句 subtask,预测未来 `16×2` 的二维轨迹。样本少且重复训练,因此成功标准是“能够记忆训练集”,而不是泛化。 ## 与 π0.5 的对应关系 @@ -34,6 +35,8 @@ - flow matching 训练连续动作,推理时从高斯噪声做 Euler 积分; - timestep 通过 adaptive RMSNorm 调制 action expert; - 同时优化高层语义目标和低层连续动作目标。 +- 高层调用显式读取总体任务指令;低层调用只读取 observation 与预测 subtask, + 对应论文分解 `π(action | observation, subtask) · π(subtask | observation, task)`; - VLM 自回归输出高层 subtask 以及 64-bin 离散动作 token; - 推理时分别还原 VLM token 轨迹和 flow/diffusion 轨迹,与真值三方比较。 @@ -41,7 +44,7 @@ - 小型自定义视觉编码器和 Transformer 取代 PaliGemma 2B; - 隐藏宽度、层数、图像尺寸和 action horizon 大幅缩小; -- 使用固定小词表的 subtask 分类/生成,而非开放式语言理解; +- 使用固定小词表的 task/subtask 分类与生成,而非开放式语言理解; - 使用二维驾驶轨迹,取代多机器人、多相机和高维关节控制; - 默认使用 1 个 PAI 驾驶样本的 4 个视觉增强版本,没有机器人或网页联合训练数据; - 使用正交 DCT-II、低频优先排列和 64-bin 量化实现 FAST-lite;保留全部频率系数,因此只验证表示与训练接口,不复现官方压缩率; @@ -97,7 +100,7 @@ pi05mini-train --config configs/overfit.yaml python -m pi05mini.train --config configs/overfit.yaml ``` -配置默认先进行 300 步离散 VLM/FAST-lite 预训练,再进行 500 步联合 post-training。Stage 1 不更新 flow action expert;Stage 2 联合优化 token CE 与 flow loss。CPU 可以运行;Apple Silicon 可自动选择 MPS,CUDA 可自动选择 GPU。 +配置默认先进行 300 步离散 VLM/FAST-lite 预训练,再进行 500 步联合 post-training。Stage 1 不更新 flow action expert;Stage 2 使用同一模型的两个调用联合优化:总体任务条件下的 token CE,以及预测/teacher-forced subtask 条件下的 flow loss。CPU 可以运行;Apple Silicon 可自动选择 MPS,CUDA 可自动选择 GPU。 ## 推理与效果图 diff --git a/outputs/overfit/evaluation.json b/outputs/overfit/evaluation.json index efb31eb..1c3e036 100644 --- a/outputs/overfit/evaluation.json +++ b/outputs/overfit/evaluation.json @@ -2,33 +2,37 @@ { "sample_id": "314f59c2-e420-4fcd-9df2-a51d572e0c20_1503899:aug0", "target_subtask": "steer_left", + "task_instruction": "Follow the visible road.", "predicted_subtask": "steer_left", "vlm_action_tokens_valid": true, "vlm_trajectory_mse": 0.07854792475700378, - "diffusion_trajectory_mse": 0.27604275941848755 + "diffusion_trajectory_mse": 0.14029410481452942 }, { "sample_id": "314f59c2-e420-4fcd-9df2-a51d572e0c20_1503899:aug1", "target_subtask": "steer_left", + "task_instruction": "Follow the visible road.", "predicted_subtask": "steer_left", "vlm_action_tokens_valid": true, "vlm_trajectory_mse": 0.025470610707998276, - "diffusion_trajectory_mse": 0.20049458742141724 + "diffusion_trajectory_mse": 0.11049529910087585 }, { "sample_id": "314f59c2-e420-4fcd-9df2-a51d572e0c20_1503899:aug2", "target_subtask": "steer_left", + "task_instruction": "Follow the visible road.", "predicted_subtask": "steer_left", "vlm_action_tokens_valid": true, "vlm_trajectory_mse": 0.013774838298559189, - "diffusion_trajectory_mse": 0.03129641339182854 + "diffusion_trajectory_mse": 0.04682297259569168 }, { "sample_id": "314f59c2-e420-4fcd-9df2-a51d572e0c20_1503899:aug3", "target_subtask": "steer_left", + "task_instruction": "Follow the visible road.", "predicted_subtask": "steer_left", "vlm_action_tokens_valid": true, "vlm_trajectory_mse": 0.059195056557655334, - "diffusion_trajectory_mse": 0.11321215331554413 + "diffusion_trajectory_mse": 0.1004234328866005 } ] \ No newline at end of file diff --git a/outputs/overfit/summary.json b/outputs/overfit/summary.json index 887b413..9527da1 100644 --- a/outputs/overfit/summary.json +++ b/outputs/overfit/summary.json @@ -1,19 +1,19 @@ { "device": "mps", "samples": 4, - "parameters": 816482, + "parameters": 817346, "initial": { "stage": "pretrain", "step": 1, - "loss": 78.87449645996094, - "text_loss": 78.87449645996094, + "loss": 80.38571166992188, + "text_loss": 80.38571166992188, "flow_loss": null }, "final": { "stage": "posttrain", "step": 500, - "loss": 0.12353827804327011, - "text_loss": 3.1691649837739533e-06, - "flow_loss": 0.06176755577325821 + "loss": 0.1929057091474533, + "text_loss": 2.784368575703411e-07, + "flow_loss": 0.09645271301269531 } } \ No newline at end of file diff --git a/outputs/overfit/training_history.json b/outputs/overfit/training_history.json index fdb3275..5231953 100644 --- a/outputs/overfit/training_history.json +++ b/outputs/overfit/training_history.json @@ -2,295 +2,295 @@ { "stage": "pretrain", "step": 1, - "loss": 78.87449645996094, - "text_loss": 78.87449645996094, + "loss": 80.38571166992188, + "text_loss": 80.38571166992188, "flow_loss": null }, { "stage": "pretrain", "step": 20, - "loss": 2.475086212158203, - "text_loss": 2.475086212158203, + "loss": 2.5035173892974854, + "text_loss": 2.5035173892974854, "flow_loss": null }, { "stage": "pretrain", "step": 40, - "loss": 1.1025534868240356, - "text_loss": 1.1025534868240356, + "loss": 1.3843837976455688, + "text_loss": 1.3843837976455688, "flow_loss": null }, { "stage": "pretrain", "step": 60, - "loss": 0.601564884185791, - "text_loss": 0.601564884185791, + "loss": 0.8159888386726379, + "text_loss": 0.8159888386726379, "flow_loss": null }, { "stage": "pretrain", "step": 80, - "loss": 0.25571808218955994, - "text_loss": 0.25571808218955994, + "loss": 0.19992661476135254, + "text_loss": 0.19992661476135254, "flow_loss": null }, { "stage": "pretrain", "step": 100, - "loss": 0.03314117714762688, - "text_loss": 0.03314117714762688, + "loss": 0.05571526661515236, + "text_loss": 0.05571526661515236, "flow_loss": null }, { "stage": "pretrain", "step": 120, - "loss": 0.005310459993779659, - "text_loss": 0.005310459993779659, + "loss": 0.005689455661922693, + "text_loss": 0.005689455661922693, "flow_loss": null }, { "stage": "pretrain", "step": 140, - "loss": 3.0251239877543412e-05, - "text_loss": 3.0251239877543412e-05, + "loss": 0.00010565178672550246, + "text_loss": 0.00010565178672550246, "flow_loss": null }, { "stage": "pretrain", "step": 160, - "loss": 1.1354763955750968e-05, - "text_loss": 1.1354763955750968e-05, + "loss": 4.098461431567557e-05, + "text_loss": 4.098461431567557e-05, "flow_loss": null }, { "stage": "pretrain", "step": 180, - "loss": 6.638075319642667e-06, - "text_loss": 6.638075319642667e-06, + "loss": 2.716351991693955e-05, + "text_loss": 2.716351991693955e-05, "flow_loss": null }, { "stage": "pretrain", "step": 200, - "loss": 5.348983449948719e-06, - "text_loss": 5.348983449948719e-06, + "loss": 2.2414897102862597e-05, + "text_loss": 2.2414897102862597e-05, "flow_loss": null }, { "stage": "pretrain", "step": 220, - "loss": 4.736786195280729e-06, - "text_loss": 4.736786195280729e-06, + "loss": 1.9143404642818496e-05, + "text_loss": 1.9143404642818496e-05, "flow_loss": null }, { "stage": "pretrain", "step": 240, - "loss": 4.316162630857434e-06, - "text_loss": 4.316162630857434e-06, + "loss": 1.6641104593873024e-05, + "text_loss": 1.6641104593873024e-05, "flow_loss": null }, { "stage": "pretrain", "step": 260, - "loss": 3.975574600190157e-06, - "text_loss": 3.975574600190157e-06, + "loss": 1.4626367374148685e-05, + "text_loss": 1.4626367374148685e-05, "flow_loss": null }, { "stage": "pretrain", "step": 280, - "loss": 3.6877775073662633e-06, - "text_loss": 3.6877775073662633e-06, + "loss": 1.2977556252735667e-05, + "text_loss": 1.2977556252735667e-05, "flow_loss": null }, { "stage": "pretrain", "step": 300, - "loss": 3.4408508327032905e-06, - "text_loss": 3.4408508327032905e-06, + "loss": 1.16078899736749e-05, + "text_loss": 1.16078899736749e-05, "flow_loss": null }, { "stage": "posttrain", "step": 1, - "loss": 8.707193374633789, - "text_loss": 3.428078571232618e-06, - "flow_loss": 4.353594779968262 + "loss": 3.8964109420776367, + "text_loss": 1.1545746929186862e-05, + "flow_loss": 1.94819974899292 }, { "stage": "posttrain", "step": 20, - "loss": 3.533726453781128, - "text_loss": 0.14151602983474731, - "flow_loss": 1.6961052417755127 + "loss": 4.304055690765381, + "text_loss": 2.3414058887283318e-05, + "flow_loss": 2.1520161628723145 }, { "stage": "posttrain", "step": 40, - "loss": 3.0850143432617188, - "text_loss": 0.00014649856893811375, - "flow_loss": 1.5424339771270752 + "loss": 2.925170660018921, + "text_loss": 2.142304765584413e-06, + "flow_loss": 1.4625842571258545 }, { "stage": "posttrain", "step": 60, - "loss": 1.3556954860687256, - "text_loss": 0.00011281041224719957, - "flow_loss": 0.6777913570404053 + "loss": 1.7996485233306885, + "text_loss": 5.1970469030493405e-06, + "flow_loss": 0.8998216390609741 }, { "stage": "posttrain", "step": 80, - "loss": 1.4165724515914917, - "text_loss": 6.599419066333212e-06, - "flow_loss": 0.7082829475402832 + "loss": 2.0647871494293213, + "text_loss": 3.251374073443003e-05, + "flow_loss": 1.0323773622512817 }, { "stage": "posttrain", "step": 100, - "loss": 0.8609042167663574, - "text_loss": 8.11900736152893e-06, - "flow_loss": 0.430448055267334 + "loss": 2.3402059078216553, + "text_loss": 2.50748803409806e-06, + "flow_loss": 1.1701016426086426 }, { "stage": "posttrain", "step": 120, - "loss": 0.5642163753509521, - "text_loss": 7.576879397674929e-06, - "flow_loss": 0.28210440278053284 + "loss": 1.4503896236419678, + "text_loss": 6.828942105130409e-07, + "flow_loss": 0.7251944541931152 }, { "stage": "posttrain", "step": 140, - "loss": 0.7110214233398438, - "text_loss": 6.249698344618082e-06, - "flow_loss": 0.35550758242607117 + "loss": 0.23238907754421234, + "text_loss": 1.3709052382182563e-07, + "flow_loss": 0.1161944717168808 }, { "stage": "posttrain", "step": 160, - "loss": 0.18725578486919403, - "text_loss": 2.876289045161684e-06, - "flow_loss": 0.09362645447254181 + "loss": 0.46604833006858826, + "text_loss": 2.1542784622852196e-07, + "flow_loss": 0.23302406072616577 }, { "stage": "posttrain", "step": 180, - "loss": 0.33923929929733276, - "text_loss": 6.748496616637567e-06, - "flow_loss": 0.16961628198623657 + "loss": 0.169603168964386, + "text_loss": 2.418236704215815e-07, + "flow_loss": 0.08480146527290344 }, { "stage": "posttrain", "step": 200, - "loss": 0.3003162443637848, - "text_loss": 9.495882295595948e-06, - "flow_loss": 0.15015336871147156 + "loss": 0.7555881142616272, + "text_loss": 8.855541011598689e-08, + "flow_loss": 0.3777940273284912 }, { "stage": "posttrain", "step": 220, - "loss": 0.23716998100280762, - "text_loss": 5.660519946104614e-06, - "flow_loss": 0.11858215928077698 + "loss": 0.10211063176393509, + "text_loss": 1.3623892414216243e-07, + "flow_loss": 0.05105524882674217 }, { "stage": "posttrain", "step": 240, - "loss": 0.42717865109443665, - "text_loss": 8.400202204938978e-06, - "flow_loss": 0.21358512341976166 + "loss": 0.4649242162704468, + "text_loss": 2.2819931189133058e-07, + "flow_loss": 0.23246198892593384 }, { "stage": "posttrain", "step": 260, - "loss": 0.11702287942171097, - "text_loss": 4.122769951209193e-06, - "flow_loss": 0.058509379625320435 + "loss": 0.280495822429657, + "text_loss": 1.3198149417803506e-07, + "flow_loss": 0.14024785161018372 }, { "stage": "posttrain", "step": 280, - "loss": 0.19245445728302002, - "text_loss": 5.941245035501197e-06, - "flow_loss": 0.09622425585985184 + "loss": 0.5054064989089966, + "text_loss": 9.451582627661992e-08, + "flow_loss": 0.2527031898498535 }, { "stage": "posttrain", "step": 300, - "loss": 0.18475297093391418, - "text_loss": 4.744139005197212e-06, - "flow_loss": 0.09237411618232727 + "loss": 0.19181671738624573, + "text_loss": 4.453279984772962e-07, + "flow_loss": 0.09590813517570496 }, { "stage": "posttrain", "step": 320, - "loss": 0.38481318950653076, - "text_loss": 3.1461640901397914e-06, - "flow_loss": 0.19240501523017883 + "loss": 0.20589734613895416, + "text_loss": 2.8524956974251836e-07, + "flow_loss": 0.10294853150844574 }, { "stage": "posttrain", "step": 340, - "loss": 0.2163764089345932, - "text_loss": 4.1934181354008615e-06, - "flow_loss": 0.10818611085414886 + "loss": 0.09927964955568314, + "text_loss": 1.0132762895409542e-07, + "flow_loss": 0.04963977262377739 }, { "stage": "posttrain", "step": 360, - "loss": 0.23533868789672852, - "text_loss": 3.3019753118423978e-06, - "flow_loss": 0.11766768991947174 + "loss": 0.2213846743106842, + "text_loss": 1.2942695093443035e-07, + "flow_loss": 0.11069227010011673 }, { "stage": "posttrain", "step": 380, - "loss": 0.08397223055362701, - "text_loss": 8.292082384286914e-06, - "flow_loss": 0.04198196902871132 + "loss": 0.9335335493087769, + "text_loss": 1.3964488232431904e-07, + "flow_loss": 0.46676671504974365 }, { "stage": "posttrain", "step": 400, - "loss": 0.13249839842319489, - "text_loss": 1.0871653103095014e-05, - "flow_loss": 0.06624376028776169 + "loss": 0.12127648293972015, + "text_loss": 7.578287153364727e-08, + "flow_loss": 0.06063820421695709 }, { "stage": "posttrain", "step": 420, - "loss": 0.4479130506515503, - "text_loss": 1.0128642315976322e-05, - "flow_loss": 0.22395145893096924 + "loss": 0.1503632515668869, + "text_loss": 4.0871746875836834e-08, + "flow_loss": 0.07518160343170166 }, { "stage": "posttrain", "step": 440, - "loss": 0.22416232526302338, - "text_loss": 2.6114355478057405e-06, - "flow_loss": 0.11207985877990723 + "loss": 0.15399529039859772, + "text_loss": 2.0435869885204738e-08, + "flow_loss": 0.07699763774871826 }, { "stage": "posttrain", "step": 460, - "loss": 0.06346385926008224, - "text_loss": 3.1035808660817565e-06, - "flow_loss": 0.031730376183986664 + "loss": 0.18908466398715973, + "text_loss": 4.172323286866231e-08, + "flow_loss": 0.09454230964183807 }, { "stage": "posttrain", "step": 480, - "loss": 0.385486900806427, - "text_loss": 2.184032382501755e-06, - "flow_loss": 0.19274236261844635 + "loss": 0.2329331636428833, + "text_loss": 2.8099325533048614e-08, + "flow_loss": 0.11646656692028046 }, { "stage": "posttrain", "step": 500, - "loss": 0.12353827804327011, - "text_loss": 3.1691649837739533e-06, - "flow_loss": 0.06176755577325821 + "loss": 0.1929057091474533, + "text_loss": 2.784368575703411e-07, + "flow_loss": 0.09645271301269531 } ] \ No newline at end of file diff --git a/outputs/overfit/trajectory_comparison.png b/outputs/overfit/trajectory_comparison.png index dde41eaef5d18831cbd3dcb98a503d72536e3c27..cd30a7c05e0174f5f80634f93ce69fe7fb0ea893 100644 GIT binary patch literal 88066 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
=^pxoG;f@1KU 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

_VLWuK2SLh`DXp~Dx<;&QR>$y{D{ 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%0AsWf zQ1EiAuZlQ9l=Bk|*)@lVN=GljYiQSbDA<8JULHLcPAIa#MsQoQ5G=OvpQ zlj}4r=kv${b}Gec%-VbH)+g(y%xiIm)V_>a#RM@Ou!j-6#C*z8^c&v^-kB?&F;-$6 zeVd`0&oQ$E_`{TH+?k6+o6(y0<{Q(@8T(lye)iNb`*rO+{XinqM4qnN?Edl8vl^0n zGUwB!lyDjHf7Vd$e@1yFjnMmEvs)=md_xm;^hXcQTc&hztg0e{(N!ej1D9^vVc1=V z;~%5azr@$_+x30}%@ra4kl&&V`MHUm)>8{pHbDhxtD8m~1a>#mU;F|MgCFrBO9&s{ zhC{mac=E^X!g+IL&Tl!I6@8nS{tmfYfxV9MR*C#<4<7@VLT<3XwM;L2h`IeTMw+Ej<5(WLca&@c_yqlyDoqof_Dj9a9N_!RyhtmYVMMYFn{;opY6N+&G1p z=B|-M5R^4gjQe)JfmdkmasPt+ekQ#V=fw{?gfzJdsSD_)m*(TyItFev86Cx72@N1S zj4YA9TlRvyATD?rtHdmtu`|+`dZao^m`z%)Atm(eQ?`i!c_zt-I92Gw{?q{NfWtSv zYW|E?1z$LaLJ9CUVYK-$)0f~w9ww2AE?-+X7et*`n)zm7WP{7z1*CN8^TVnnVjJ}wnWze8uMbCXWd?>>xq zr1j*G8E>4+%lEyxX@c<-hjX!nf7c^2a3o5&J>GIR8SOt^e2Om0P@ucRp)(0k+LC6L z^Y{d7oJ2N(oBODpIh_EjZC^TCWZlkoWUen=;%&dtYppkqnkU7m+FOWwY!(ywwwDIc z4VTMLd;zVpYKHvwK@KU|$kiWjxZZeAUTT~Fa#iDLSfslQ+RQk3&XO!DFW8F04jc9NS~6nOuKX&6}|6`1dSe(>q+1hE_MZ*FGknu=Eoq9>E4wJJec;{n3bCLz2tx9oi2w-k9+Rv?~cok_uWOes7}B}{D(IQQKjinAw7p)Rs~aj zYEEs-8?}BCiDJkAo&`lJtJzRt-r#gs?Zb)@zHZBcb-wp+wBocJt|7^w_Rc(KKEfCA zLW~y$x25^USV`*kdYU{)K3fkJ8h`n-Y*aiZlz9{{({6%lnR>sq0+abHlgPojfU-Mp zo>RjqfA1+O*XGequ}J6DxtW|j`+kN&RdOfMWNHTA%_Z7nO)zyHrE;9kkS{}IOH52$ zjNO5>t$g49kB9kBQbqTfHNgdT>)GV&VvSp&4sDC#{?NyyT`kbFoBsL6J3c{HD{WBU zJU|aUP89)!mRG%_{0p1&>Ed_~hjJ~and|(rX@SQa8OKm!gV164>C_cpMxrFrtCjPI znPxrYtjf)1=1~vt+NF1$@&KdjW#)OU1CNx8kv0~6=VOAOy~Aj++3*sdj(@aSjg7zb zXmk>n0xHi7Yb}Rc>|I9TN#%4uozr?lfhjxGV^S;p%6m%c2%UDMD(DU~M|W8HM+qKZ z5kU=9s!4%;$)M4Xd=}hp{19Vmu9CQDuE1jjjjU2RZZ{6&Zfe@CeTb8n?4hVh++mGG zku>gRuZVbg9-pgvo&RwUQMSS_UJ0AC=U+Wqob+KS_J=g$HL_4eJnjU3Ea$sBM~<49 zi}bG3oME$R%AJW~l(O%LIrj2Pfxs|58FDQ%_#iBeO4;}I-V=rALXcz>Zq3=+9>d>% zlofyevqM-Z-oV6&v$gPc*9cBDLtb_lBbRxjswd+aLt)JO#lG?<$x`*Mv*{h1^BQ-q z-+k((vf7s_w7NI)&<3MAcb0qL^cz2()#)CGd~CIZ*!js|gO#U{R*TDL9fRC;0@~yA zYFV~KK8+|TQMc1Qdq-ONYrCi>}njQfm&$sNR&*GlDaOMYbHWO#KCqr=#3M{_Z* zG`%K2Ta3#8MAU4rO&F{M0U5F{`Aef@a?2>e-Xd?0 zS-i4T-Y1G9{pRE2%QeK~f)bn|*#=AAvlJEO-_z}vhv;3U-iY>7k(}pHIA~;zJVi$7 zE$FhvlN#%skytwe3UA*#{I>G}HlSJ>$OlbzSh-BR6Lz*Z7A9}VTinxJEy0RW2m*9} zmOHGPx2Tnvlb4o{mD!})G}D9)Y)6_wkoE1!lv=UipxHFp%%MyTJ>h z%cf$t?I3XPhWWazfz1rx0Fmr42*EG#_}pOeyQ5xW9;28bc3%Am_I-ZQd|*^d^+E0B z0B6_7=+Ae4xvF2`uxbyYXoD6cnDb(bVFv}Lt2&qC+Aq^#hi?{MSh-6vQ=?eG1Ta(P zsria>y!GbWumT#QYcrIxU$(rzd~4-&7nDjeobm$Zb!fHesh)ws`$>QBFvNn*MoPP& z7QrVb4T#vnxnVrO8mie~sIJizhyVk0l%bALube)+86iel?5g-?b3@YNX zP_LRsw3i@i-{NKdfZ?lihgN%jJ-d34xO%>%0xGU7+qVIFV(j8P=}l*wCZM)Fzl@F$$2b`9Y8AJ+9KnN{t6kMwI-H5BqmWPTU z?b2aoWH8ijzH{R3YQe3t^++8(mO6@sdaH6d2DQSpY&39~^s{`~zzD|1>AN{Vu1s6O z=w*> z-c}j@`r?6D#D?xj^rvj~5@)SbivkhhM0Aq2_QC7Po2 zAal@t_ZZx?yPx*urzUgx{B3n*B)!CF6#jcf(GakrKkO*C!COP}SlCVa824!=V-IHA zV@T7=mA+a}yt^^9o%T%mH*}nIa#z!l+i*WWRMZetZ~*cjXz&g>R6&PKH)R3J9ocm6&VJd0rO! z+JR_d70YdnE2@=qwdj`Jc9~8*&Vg*-$4_SFyAsXZs)4=O(s_abO7a%^bwGc5f$|L} z&@UDW(q+gAK~A+H#HL?P3!fS9y1};5`QY-q>RiNy+ILHy<1!oS$?3Nusk>-Jd3CZf zOCj|gsplOotB!4{kJkMzG^e&8<=Z^9ftAymNu#vW-nlf-uie6Bdj)Sqbic#nh`nbp zbM-;4ioB2cQ?I@v6XpF8C_&Xm%=t3-aLf^GPmEg8%RwA4wpzdVM#N*n5P@BG2TS$N z4~kUhr*p}}#93!w=HA=`QSwC^<#hI^c6*>JW!_OARL>ius| zrBgbciga3-XrXjYX|ZIBC}kN-Xp_;Z7+cAnrJfcPD#|v<(x8Q`lU=7pO2o+62^q45 zj3j*Tw{u<3InVii|A6Ouu4nq?!zDh;`~7;|ulses?vIu|dyO6sxX*XEDt_3>wee&2 z%O=d#3iT`$-yt@r(j?F=^_p$pvZI=xz%XO?b%U^Txa8U^U9(KV?nq;8c~5R3A{jsD zbE_B#u!-_&#?w9{>l3CWW`;=_dJ3`+0@~5j&g>Jj7WKjvGGQ88UK*q3-MGv2rI?+^ z5VWe@gc|0L@2_xF=6#*;>kvdEAuS{~=%#j@+>|XR2j95TmZu z?-iNzn|M2f1M?-Px(_xMdV1*XyW3#Ny|;4~4@_cuNm5~a(?u=FX&kGXLtBI?yKT!h z9C-A&P}{sExoHaXHO5^^dlYo$1f-PO!DYlF3QJ0Myv~%m;a0tE$*^^hahpA&m~Bpq zt?ZY8KqK>Yc?w@fyDHlg@)Pr~3aBUSqFOfPI{obF@O-IU%EL8+fxM(ye!m7B|Fm2C zAid$Ck(Nt>K!CE&;q=|V{7er?=#-kFC9`7H=Dh(|H%UfHKF|%IEVJ*38Ymnum$oR( z=M7gMdi2wlglI~VGBrf6+cf5Mv>Ph}y}@F6`U|sa*QEB%^lP-xP39^wi9b_kCs0;H zCKjMnd;6u-iUP%m!i6dDGOXy6Q_?Y1Zf&gWy1kJeZ^cMBqi}JnyHWcA!#z^Y17U&e zBqJm0d3yEs9{D%BWOR-i&-{I#0VO2H>wD>4j}OU#7SxiR9nB-+_C_V=@*|IhP=p4? zpwaOc^`5m;gBiNADgTy^N*rV2Ozv1Q&DD>7skW}O+2*Fr;AaO8&7*(rWaV`w=B1kD zk0N&ke~7 zez+o9zU#&dm2zIPztprXxFl3?=8KRdTfix^_vCf0w}C9LLoOnHUAs%Yb>=Nx?ZSWP zdR?p3bl<(DP2YN&Pp&A)#7t#(Qq|7j-)9)g8U`Qm{H$`j%gwD06DW7SEHgcKG=KOb zQcy2#CB1^t_;ibcH&bHltAW0r+>QK?=r}779rB?J%K+*9kHQGeRR;4?y)5ew`uvnn zN)b~9-cyr;Z0SSk31jHss=h@;WzaoGOfxQwoeNg;_A*BBg9=2PgP^`x7W0Bp-6&D3 z`sQIWjEtRCq%Zkxf7nvG>oXEUVb4}uon-XD{Ld>ZS_X`n`pOI?-t(SjTzETFpP4@bXg_N_!E7jrYJoedsQi3n#|B> zu&9ms2<(FF96;`}C&!*2uMt=CYP>;Jt|4xtofv4#+Hwr}tIzF$#+7+ez9~hM?itV- zB{ZmFsEmbQyrpMJOTbFidLnkQ#80yH!new^DqXC==F%2XRo$!gqLe<=l#+y1u)dI! zWd`X`->6kwZXMe`X4=yYnC@7%U6b{jP#OFBEXHZ5p&~cy&yORC4c=(Btm7~Jv&-A- zvKXNSQsJP}>HsF23UPnc#&Zb@Eh zencQuIRZZ;*<=S7hN}N zFYIvKzeXibhV80WcsMDLIvEWiKr_FmzbTJP_x^k&k--H*p51@bbEtHk?YQOEC}kIU z&8zbVe~;XJ?9#+0!$-gJ8eDw^>B>esJf9E?ssi!P0Bf#TDz)dg$jwfMN_jMzi@?2ti zo8Dv*j@WDurnxugJj2|zCD}RhHnlhViWsP4_{+i(-m<4KFz}@WYyH~xAmVIUBvG!r z@a#(BzUZ|R>7h-fO{H}g?xBzUWAKHtjG8hc%(6svW64c1mmjM*%M31HE8=1H+~S-*ue$A?d4!%!bTh~TnLYMasf3Sfin-o zgi9o<*v_tjpJ0}KM_oSwON7p95F3^%r7g0o z?@Ua<^GOb~?FM5`#DPg1A=|oQC|2`Y{ixD~Zw}*ya!#qAlki;ms@DuYMj|>wMtW>2 zyPms%s#NPVNHS?nOdcMi#Ha+82l2U;uwVVpqjQ3DC>J`>W^+3KedsW5vPiuhfTsR5 z)ekb_y)W0i$g9Adm?$YBX?ecL#xz}8Lv^Y}%OvS53RM)K#@1*czW73?paw|qnX^D_ zSy~}Z?d<5|gK5Xh@nVmv<|5SAispIFBNyI*2T&qxkeV8-2&B2}ys6VsPIohq^4@<( z>QMw+k$H-|H(;Mv0dCdh<~=IzsNr^ujhjlRom)K`&>r zAL8)>9-~LGo`pXmJ+KYNYRg}^k$)6Q2koCn>iz07B`7U*Mczdjjy(NDY2VSG|Ew!el8)c`3yw$ z(?AH$k!0>I`v-I*f~o^}?D{$9J~5Hpw$Gj?;-KW*yDY5;(S}_y2HU#TH5TV9cgt7W zzPhm-VpB%%Knz?MI2or6@;rgJm>>*TS>8H3Ox$8Mt}ro@Uv&tJBjaql77rcT^BYW( z7P)&V3HnsU?^!sWk0p1dMmpB0=WynkV~ZCWk6?tYf#=j+C22MD-dzBIhFrqcWMC#E z5z2ws%UTlw7>Kj#alq7JIaAS5Lpws}&DXd-6MEb(zs%1_04LQ*FeBS+2)5M!^GL!) zf`m9L0fpHjpql)pVYu$Q@!{dD2fwJq=V+e0<_h{vS<#H6R#V%R`Gvsn7=lWI_V^+M`wCXxQ`!9)TdSq0h_c)Jt1jKN>I8YxF_VsGK0AElV88XbJeYDYEWyP9trmu zLGCf7PyO5vZ5)lewe(K$daz`=<72r09jnWSwWgP(Pm2)G?a%OCJm5Q=Kb`g02@CpA zhSs_qu19=yy^EpH3i(=-qo1S_?(1-VJw&!z=k&b^_r30<7VQ_R>P8Z7CkQraBX_j8Wd`*#a)%z>U_7`;7&x#NjL zejd=@-$ek>Z4~+;Y_!#^$ZMjvLZ^(pbqmz|-t`v;FuI+_X<;!)cL;N$PdL<`iD)1# z7U=BG*ro4ytv}=0CHw# zeBCKi*L@b>z82YCGD86BtH7?6g$u|KGsUH|EZkW+V0}`hz#V3iCq47btz_VsyL?^0 z%kx4e`Rt-_oLz&_cmhC%vxvH+D61WLK8+*Bs4jxD>#LBU<=bAFz{8#t`uUhgkuI`> zDL`L4N=!Zd!+Fk+AJ3Vfg(ShC;fEjcjLZu1fZS%0%aEN8OFtpU=AU`tR_u4DqH^;= zN~>ms^M2z->$R$qm6GuS#h^Xv1yp5}sMZ}S0mX?g3QnT2bV|IytBCdLL)_)(!jd{` zFHmW3ACAV}`hEmZY%}t1`kHTG_}A->^9lo-9lv^6Mctkq45B}%sc2V2UTU(Ep?QLi zUs!l}_%tz5>Q7HyJ}@dZ-oQ{gMT>uAwB-3zGwRwc5YpeH?XUK|N_Noda^1i`>mRlM zaQIq(EoCM}-yeOXFw7eK(TIMQW$lw=iswEWfgq2xc?uK~$s~?gi>Hey0!}gP{W=l_ z&eVx{M=8bHvE4y(su`@~&FD;IPwkk9Mr$Af-7^0UHT*Z5>GxjTRG5BG0D*WuQ(FM) zS`!p6e0vfVq4>dyIn_1SXHU?|EY3{)W(kk~{z>c)H<zJ$i2RTvg-TJ#yG>%^S7r$xw(f|Me literal 89369 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 list[SampleRecord]: SampleRecord( clip_id=str(row["clip_id"]), t0_us=int(row["t0_us"]), + task_instruction=str( + row.get("task_instruction", MiniTokenizer.DEFAULT_TASK_INSTRUCTION) + ), reasoning=str(row.get("reasoning", "")), image_path=_resolve_data_path(manifest_path, row["image_path"]), trajectory_path=_resolve_data_path(manifest_path, row["trajectory_path"]), @@ -156,6 +160,7 @@ def materialize_subset( { "clip_id": record.clip_id, "t0_us": record.t0_us, + "task_instruction": record.task_instruction, "reasoning": record.reasoning, "image_path": str(image_path.relative_to(destination)), "trajectory_path": str(trajectory_path.relative_to(destination)), @@ -303,7 +308,13 @@ class Pi05OverfitDataset(Dataset[dict[str, Any]]): actions = self.action_normalizer.encode(history_xy, future_xy) return { "image": self._load_image(base_index, variant), - "prefix_tokens": self.tokenizer.build_prefix(history_xy), + "prefix_tokens": self.tokenizer.build_prefix( + history_xy, record.task_instruction + ), + "low_level_prefix_tokens": self.tokenizer.build_low_level_prefix( + history_xy, target + ), + "task_instruction": record.task_instruction, "subtask_target": target, "subtask_label": self.tokenizer.subtasks.decode(target), "actions": actions, diff --git a/src/pi05mini/infer.py b/src/pi05mini/infer.py index 6dd9b2f..4b1b155 100644 --- a/src/pi05mini/infer.py +++ b/src/pi05mini/infer.py @@ -40,13 +40,20 @@ def evaluate(checkpoint_path: str, manifest: str | None = None) -> Path: generated: list[int] = [] expected_tokens = 1 + 2 + dataset.action_horizon * 2 current_tokens = tokens - for _ in range(expected_tokens): + for generation_step in range(expected_tokens): semantic = model( image, current_tokens, zero_action, torch.zeros(1, device=device), generated_token_start=tokens.shape[1] ) - next_token = int(semantic.text_logits[0, -1].argmax().cpu()) + if generation_step == 0: + candidates = torch.tensor( + dataset.tokenizer.subtasks.token_ids, device=device + ) + candidate_logits = semantic.text_logits[0, -1, candidates] + next_token = int(candidates[candidate_logits.argmax()].cpu()) + else: + next_token = int(semantic.text_logits[0, -1].argmax().cpu()) generated.append(next_token) current_tokens = torch.cat( (current_tokens, torch.tensor([[next_token]], device=device)), dim=1 @@ -62,13 +69,12 @@ def evaluate(checkpoint_path: str, manifest: str | None = None) -> Path: except ValueError: vlm_xy = np.full_like(sample["future_xy"].numpy(), np.nan) vlm_valid = False - conditioned_tokens = torch.cat( - (tokens, torch.tensor([[predicted_token]], device=device)), dim=1 - ) + conditioned_tokens = dataset.tokenizer.build_low_level_prefix( + sample["history_xy"], predicted_token + )[None].to(device) def velocity(x: torch.Tensor, t: torch.Tensor) -> torch.Tensor: return model( - image, conditioned_tokens, x, t, - generated_token_start=tokens.shape[1] + image, conditioned_tokens, x, t ).vector_field normalized = flow.sample( velocity, (1, dataset.action_horizon, 2), device, @@ -88,6 +94,7 @@ def evaluate(checkpoint_path: str, manifest: str | None = None) -> Path: predicted_label = f"token_{predicted_token}" rows.append({ "sample_id": sample["sample_id"], "target_subtask": target_label, + "task_instruction": sample["task_instruction"], "predicted_subtask": predicted_label, "vlm_action_tokens_valid": vlm_valid, "vlm_trajectory_mse": vlm_mse, diff --git a/src/pi05mini/tokenizer.py b/src/pi05mini/tokenizer.py index 461b644..17d3773 100644 --- a/src/pi05mini/tokenizer.py +++ b/src/pi05mini/tokenizer.py @@ -52,6 +52,61 @@ class CoordinateTokenizer: return low + encoded.float() / (self.bins - 1) * (high - low) +class TaskVocabulary: + """Small overall-task vocabulary for the high-level pi0.5 inference pass.""" + + labels = ( + "follow_road", + "clean_kitchen", + "clean_bedroom", + "pick_place", + "fold_laundry", + "open_close", + "unknown", + ) + + def __init__(self, first_token_id: int = 260) -> None: + self.first_token_id = int(first_token_id) + self._label_to_token = { + label: self.first_token_id + index for index, label in enumerate(self.labels) + } + self._token_to_label = {token: label for label, token in self._label_to_token.items()} + + @property + def token_ids(self) -> tuple[int, ...]: + return tuple(self._label_to_token[label] for label in self.labels) + + def classify(self, instruction: str) -> str: + text = instruction.casefold() + if any(term in text for term in ("road", "lane", "drive", "waypoint", "steer")): + return "follow_road" + if any(term in text for term in ("fold", "folding")): + return "fold_laundry" + if any(term in text for term in ("kitchen", "dish", "sink", "counter")): + return "clean_kitchen" + if any(term in text for term in ("bedroom", "bed", "pillow", "blanket")): + return "clean_bedroom" + if any(term in text for term in ("open", "close", "drawer", "cabinet", "fridge")): + return "open_close" + if any(term in text for term in ("pick", "place", "put", "move")): + return "pick_place" + return instruction if instruction in self._label_to_token else "unknown" + + def encode(self, label_or_instruction: str) -> int: + label = ( + label_or_instruction + if label_or_instruction in self._label_to_token + else self.classify(label_or_instruction) + ) + return self._label_to_token[label] + + def decode(self, token_id: int | torch.Tensor) -> str: + try: + return self._token_to_label[int(token_id)] + except KeyError as error: + raise ValueError(f"unknown task token: {int(token_id)}") from error + + class SubtaskVocabulary: """Small semantic vocabulary standing in for pi0.5's generated language subtask.""" @@ -114,7 +169,13 @@ class SubtaskVocabulary: class MiniTokenizer: - """Compose image/state, semantic, and FAST-lite action tokens. + """Compose hierarchical task/state, subtask, and FAST-lite action tokens. + + pi0.5 performs two semantically different calls with the same model. The + high-level call reads the overall task and predicts a semantic subtask. The + low-level call deliberately replaces the overall task with that predicted + subtask, matching ``pi(a | observation, predicted_subtask)`` rather than + allowing continuous actions to depend directly on the overall task. Actions are z-score-normalized by the dataset before reaching this tokenizer. A complete ``[horizon, 2]`` chunk is transformed along time @@ -130,11 +191,19 @@ class MiniTokenizer: high-frequency coefficients. """ + DEFAULT_TASK_INSTRUCTION = "Follow the visible road." + BOS = 256 IMAGE = 257 STATE = 258 - SUBTASK_QUERY = 259 - ACTION_START = SUBTASK_QUERY + 1 + len(SubtaskVocabulary.labels) + TASK = 259 + TASK_TOKEN_START = TASK + 1 + TASK_TOKEN_END = TASK_TOKEN_START + len(TaskVocabulary.labels) - 1 + SUBTASK_QUERY = TASK_TOKEN_END + 1 + SUBTASK_COMMAND = SUBTASK_QUERY + 1 + SUBTASK_TOKEN_START = SUBTASK_COMMAND + 1 + SUBTASK_TOKEN_END = SUBTASK_TOKEN_START + len(SubtaskVocabulary.labels) - 1 + ACTION_START = SUBTASK_TOKEN_END + 1 ACTION_END = ACTION_START + 1 ACTION_TOKEN_START = ACTION_END + 1 ACTION_BINS = 64 @@ -145,14 +214,16 @@ class MiniTokenizer: def __init__( self, coordinate_tokenizer: CoordinateTokenizer | None = None, + tasks: TaskVocabulary | None = None, subtasks: SubtaskVocabulary | None = None, ) -> None: self.coordinates = coordinate_tokenizer or CoordinateTokenizer() - self.subtasks = subtasks or SubtaskVocabulary(first_token_id=self.SUBTASK_QUERY + 1) + self.tasks = tasks or TaskVocabulary(first_token_id=self.TASK_TOKEN_START) + self.subtasks = subtasks or SubtaskVocabulary(first_token_id=self.SUBTASK_TOKEN_START) @property def vocab_size(self) -> int: - return max(max(self.subtasks.token_ids), self.ACTION_TOKEN_END) + 1 + return max(max(self.tasks.token_ids), max(self.subtasks.token_ids), self.ACTION_TOKEN_END) + 1 @property def action_token_ids(self) -> range: @@ -160,11 +231,37 @@ class MiniTokenizer: return range(self.ACTION_TOKEN_START, self.ACTION_TOKEN_END + 1) - def build_prefix(self, history_xy: torch.Tensor) -> torch.Tensor: + def build_observation(self, history_xy: torch.Tensor) -> torch.Tensor: coordinate_tokens = self.coordinates.encode(history_xy).reshape(-1) specials = torch.tensor([self.BOS, self.IMAGE, self.STATE], dtype=torch.long) - query = torch.tensor([self.SUBTASK_QUERY], dtype=torch.long) - return torch.cat((specials, coordinate_tokens.cpu(), query), dim=0) + return torch.cat((specials, coordinate_tokens.cpu()), dim=0) + + def build_prefix( + self, + history_xy: torch.Tensor, + task_instruction: str = DEFAULT_TASK_INSTRUCTION, + ) -> torch.Tensor: + """Build the high-level ``observation + overall task -> subtask`` prefix.""" + + observation = self.build_observation(history_xy) + task = torch.tensor( + [self.TASK, self.tasks.encode(task_instruction), self.SUBTASK_QUERY], + dtype=torch.long, + ) + return torch.cat((observation, task), dim=0) + + def build_low_level_prefix( + self, + history_xy: torch.Tensor, + subtask: str | int | torch.Tensor, + ) -> torch.Tensor: + """Build ``observation + predicted subtask`` for FAST/flow action inference.""" + + token = self.subtasks.encode(subtask) if isinstance(subtask, str) else int(subtask) + if token not in self.subtasks.token_ids: + raise ValueError(f"low-level command is not a subtask token: {token}") + command = torch.tensor([self.SUBTASK_COMMAND, token], dtype=torch.long) + return torch.cat((self.build_observation(history_xy), command), dim=0) def encode_subtask(self, reasoning: str) -> torch.Tensor: return torch.tensor(self.subtasks.encode(reasoning), dtype=torch.long) diff --git a/src/pi05mini/train.py b/src/pi05mini/train.py index 2524517..bb598e5 100644 --- a/src/pi05mini/train.py +++ b/src/pi05mini/train.py @@ -15,7 +15,8 @@ from .runtime import choose_device, load_config, seed_everything, write_json def _collate(rows: list[dict]) -> dict: tensor_keys = ( - "image", "prefix_tokens", "subtask_target", "actions", "action_tokens" + "image", "prefix_tokens", "low_level_prefix_tokens", "subtask_target", + "actions", "action_tokens" ) result = {key: torch.stack([row[key] for row in rows]) for key in tensor_keys} result["sample_id"] = [row["sample_id"] for row in rows] @@ -99,8 +100,8 @@ def train(config_path: str) -> Path: model_labels = torch.full_like(model_tokens, -100) query_index = tokens.shape[1] - 1 model_labels[:, query_index:] = targets - # Flow tokens may read observation/state and the generated semantic - # subtask, but not teacher-forced discrete action tokens. + # The action expert is present in the module but receives no loss in + # discrete pre-training, and its parameters are excluded from optimizer. zero_action = torch.zeros_like(actions) output = model( image, model_tokens, zero_action, @@ -136,6 +137,7 @@ def train(config_path: str) -> Path: batch, iterator = next_batch(iterator) image = batch["image"].to(device) tokens = batch["prefix_tokens"].to(device) + low_level_tokens = batch["low_level_prefix_tokens"].to(device) actions = batch["actions"].to(device) subtask = batch["subtask_target"].to(device)[:, None] action_tokens = batch["action_tokens"].to(device) @@ -143,27 +145,35 @@ def train(config_path: str) -> Path: model_tokens = torch.cat((tokens, targets[:, :-1]), dim=1) model_labels = torch.full_like(model_tokens, -100) model_labels[:, tokens.shape[1] - 1:] = targets - action_prefix_mask = torch.zeros_like(model_tokens, dtype=torch.bool) - action_prefix_mask[:, : tokens.shape[1] + 1] = True noisy, timestep, velocity = flow.training_batch(actions) - output = model( - image, model_tokens, noisy, timestep, - action_prefix_mask=action_prefix_mask, + # Text/FAST training uses the overall task and predicts the subtask. + # Continuous low-level actions use a second call whose prompt contains + # only the observation and teacher-forced subtask. This preserves the + # paper's factorization pi(a | observation, predicted_subtask). + token_output = model( + image, model_tokens, torch.zeros_like(actions), + torch.zeros(image.shape[0], device=device), generated_token_start=tokens.shape[1], - text_labels=model_labels, target_velocity=velocity, - text_loss_weight=cfg["train"]["semantic_loss_weight"], - flow_loss_weight=cfg["train"]["flow_loss_weight"], + text_labels=model_labels, + ) + flow_output = model( + image, low_level_tokens, noisy, timestep, + target_velocity=velocity, + ) + loss = ( + cfg["train"]["semantic_loss_weight"] * token_output.text_loss + + cfg["train"]["flow_loss_weight"] * flow_output.flow_loss ) optimizer.zero_grad(set_to_none=True) - output.loss.backward() + loss.backward() torch.nn.utils.clip_grad_norm_(model.parameters(), cfg["train"]["grad_clip_norm"]) optimizer.step() if step == 1 or step % cfg["train"]["log_every"] == 0: record = { "stage": "posttrain", "step": step, - "loss": float(output.loss.detach().cpu()), - "text_loss": float(output.text_loss.detach().cpu()), - "flow_loss": float(output.flow_loss.detach().cpu()), + "loss": float(loss.detach().cpu()), + "text_loss": float(token_output.text_loss.detach().cpu()), + "flow_loss": float(flow_output.flow_loss.detach().cpu()), } history.append(record) print(json.dumps(record)) diff --git a/tests/test_data.py b/tests/test_data.py index 7b23be7..3fb29f9 100644 --- a/tests/test_data.py +++ b/tests/test_data.py @@ -8,7 +8,12 @@ import torch from PIL import Image from pi05mini.data import Pi05OverfitDataset, load_manifest, materialize_subset -from pi05mini.tokenizer import CoordinateTokenizer, MiniTokenizer, SubtaskVocabulary +from pi05mini.tokenizer import ( + CoordinateTokenizer, + MiniTokenizer, + SubtaskVocabulary, + TaskVocabulary, +) def _make_source_project(root: Path) -> Path: @@ -35,6 +40,7 @@ def _make_source_project(root: Path) -> Path: row = { "clip_id": "clip-a", "t0_us": 1234, + "task_instruction": "Follow the road through the construction zone.", "reasoning": "Steer left through the construction lane.", "image_path": "data/processed/images/sample.jpg", "trajectory_path": "data/processed/trajectories/sample.npz", @@ -56,17 +62,28 @@ def test_coordinate_tokens_are_literal_bytes_and_round_trip() -> None: assert torch.allclose(decoded, coordinates, atol=10.1 / 255.0) -def test_subtask_vocabulary_and_prefix_contract() -> None: +def test_task_subtask_vocabulary_and_hierarchical_prefix_contract() -> None: tokenizer = MiniTokenizer() history = torch.zeros(8, 2) - prefix = tokenizer.build_prefix(history) + prefix = tokenizer.build_prefix(history, "Follow the road.") + other_task = tokenizer.build_prefix(history, "Clean the kitchen.") + subtask = tokenizer.encode_subtask("Steer left around the cones") + low_level = tokenizer.build_low_level_prefix(history, subtask) - assert prefix.shape == (20,) + assert prefix.shape == (22,) assert prefix[:3].tolist() == [tokenizer.BOS, tokenizer.IMAGE, tokenizer.STATE] + assert prefix[-3].item() == tokenizer.TASK + assert tokenizer.tasks.decode(prefix[-2]) == "follow_road" assert prefix[-1].item() == tokenizer.SUBTASK_QUERY - assert prefix[3:-1].min() >= 0 and prefix[3:-1].max() <= 255 - target = tokenizer.encode_subtask("Steer left around the cones") - assert tokenizer.subtasks.decode(target) == "steer_left" + assert prefix[3:19].min() >= 0 and prefix[3:19].max() <= 255 + assert other_task[-2] != prefix[-2] + assert low_level.shape == (21,) + torch.testing.assert_close(low_level[:19], prefix[:19]) + assert low_level[-2].item() == tokenizer.SUBTASK_COMMAND + assert low_level[-1].item() == subtask + assert tokenizer.TASK not in low_level + assert tokenizer.subtasks.decode(subtask) == "steer_left" + assert TaskVocabulary().classify("Clean all dishes in the kitchen") == "clean_kitchen" assert SubtaskVocabulary().classify("Slow down for a pedestrian") == "slow_down" @@ -98,7 +115,9 @@ def test_materialize_and_dataset_are_self_contained_and_deterministic(tmp_path: augmented = dataset[1] repeated = same_dataset[1] assert original["image"].shape == (3, 32, 48) - assert original["prefix_tokens"].shape == (20,) + assert original["prefix_tokens"].shape == (22,) + assert original["low_level_prefix_tokens"].shape == (21,) + assert original["task_instruction"].startswith("Follow the road") assert original["actions"].shape == (16, 2) assert original["subtask_target"].shape == () assert original["subtask_label"] == "steer_left"