Psi0 pick_and_place_between_two_tables:6k 部署交付包
此仓库保存 pick_and_place_between_two_tables 微调(Slurm 274378,计划 40k updates)的 checkpoint 6000,连同训练时实际使用的源码快照、归一化、Qwen tokenizer/processor、训练指令的 CLIP 向量、客户端和控制器补丁。它是中间 checkpoint,不是完成 40k 训练的最终模型。原计划的 5k 已被训练滚动清理删除,因此选用最近的 6k。
适用接口为 Unitree G1 + Dex3、SONIC v1.1:state43,action78 = SONIC token64 + 左手7 + 右手7,action chunk30,30Hz。线协议 cart78.v1 与 ChenyuanC/psi0-moving-dining-cart-4k5k 相同,控制器补丁也相同,但两个包不能混用:
| 本包 6k | moving_dining_cart 4k/5k | |
|---|---|---|
| 模型 | Qwen3-VL 全量微调、12 层 action expert、CLIP 指令向量,输入 240×320 | 冻结 VLM、6 层,180×320 |
| 手序(模型内) | Dex3 actuated:thumb0-2, index0-1, middle0-1,client 不重排 | URDF:index/middle 在前,client 重排 |
| RTC | 训练未用 RTC;重规划用上游 test-time guidance | 训练时 RTC |
| 默认推理 | 3 flow 步,冻结前缀 12 帧(400ms 预算) | 6 步,7 帧(233ms) |
| 指令 | 只接受 Pick an object from one table and place it on the other table. |
任意 |
client 依据 bundle 契约选择手序映射,未知契约直接拒绝。
文件与校验
| 文件 | 大小 | 内容 |
|---|---|---|
deploy_6k.tar |
6,259,578,880 bytes | 脚本、说明、测试证据及完整推理 bundle,解包到 deploy/ |
deploy_scripts_6k.zip |
344,658 bytes | 轻量脚本/说明/证据;不含模型权重 |
checksums.sha256 |
小文件 | 两个归档的 SHA256 |
upload_manifest.json |
小文件 | 交付身份、大小、SHA 及验证范围 |
| 身份 | SHA256 |
|---|---|
| checkpoint 6000 模型文件 | 190cc85b971518c29fffe96b3e1c8c5d26d66b945d114022a8b323e6a311701a |
| bundle manifest | 35771b48656d406f69e004462b5334cd0310ab28de1677a013c3903aa88afe85 |
deploy_6k.tar |
bb8a83d0188c8c62dbdcaf57ce081c3198285059479311eb32c9cb59442664ea |
tar 内 226 个普通文件已逐一重读,并与包内文件的大小和 SHA 核对。推理 bundle 含完整 VLM 与动作头权重(BF16),不需要训练数据、初始权重、CLIP 编码器或 optimizer 即可加载。没有打包 optimizer、scheduler、数据集、Python 环境、TLS 凭据或机器私钥;SONIC ONNX、TensorRT 和 Unitree 运行时需在目标机器另行准备,控制器必须匹配 bundle 记录的 v1.1 资产 SHA。
下载
私有仓库需要有访问权限的 Hugging Face 账号。不要把 token 写入共享脚本或命令记录。
python3 -m venv .venv-hf-download
source .venv-hf-download/bin/activate
python -m pip install --upgrade huggingface_hub
hf auth login
hf download ChenyuanC/psi0-pick-and-place-two-tables-6k \
deploy_6k.tar deploy_scripts_6k.zip checksums.sha256 upload_manifest.json \
--local-dir ./psi0-pick-and-place-two-tables-6k
cd psi0-pick-and-place-two-tables-6k
sha256sum -c checksums.sha256
mkdir -p unpacked && tar -xf deploy_6k.tar -C unpacked
cd unpacked/deploy
完整下载并解包约需 12.6GB 空间,另预留 Python 环境与缓存空间。
使用
./deploy_checkpoint.sh 6000 init
./deploy_checkpoint.sh 6000 verify
./setup_env.sh server
./setup_env.sh client --with-tests
./deploy_checkpoint.sh 6000 server --import-check
之后按解包后的 README.md 第 3–4 节:先 server --allow-execution + 原始录制 replay 做无发令 profiling,检查 /deployment-info 的 ready/latency_ok/fault,再进入真机三终端流程(controller 检查 → ] 进入 reference CONTROL → client dry-run → client --execute → 控制器终端手动 Enter)。client 不会自动 arm;250ms 收包 lease 失效会回到暂停 reference、保持手目标,不关闭电机力矩。
已做的测试与限制
2026-09-24,A100-SXM4-40GB、SDPA,只用 localhost 与录制观察,不发送任何机器人命令:
| 检查 | 结果 |
|---|---|
| 部署路径开环精度(54 帧,3 步) | token L1 0.0145、hand L1 0.0080;训练评估(step 6000)0.0132 / 0.0074 |
| 真实服务 WebSocket(3 步、12 帧前缀) | 重规划 p50 305 / p95 313 / 最大 316ms(预算 400ms);595 个 dry-run、54 个仅协议 execute 动作,无 fault |
| 4 步 | p95 398 / 最大 401ms,一次重规划超时被正确拒绝,余量不足 |
| 手序 | 全部 16 条原始录制经 client 转换后与训练 states 逐帧一致(最大差 0) |
| CPU/localhost 套件 | server/client/ZMQ lease/launcher/C++ guard 全部通过 |
没有验证 WS012744 的 RTX5090(尤其与 SONIC 控制器共用 GPU 时)的时延,也没有测量抓放成功率、接触稳定性或停止回退的实机效果。 服务在运行时逐次检查时延,超预算不会发动作。训练没有独立验证集(16 条示范全部用于训练),上表开环误差只证明部署路径与训练一致,不代表泛化或任务成功。
数据与训练背景
- 数据:
ChenyuanC/pick_and_place_between_two_tablesrev0316e05b;25 条录制中 16 条保留(9,222 帧),9 条丢弃。 - 初始化:
postpre.sonic1.0.unifolm.2609092156.40k;VLM 全量微调(lang 1e-6、vision 1e-5、projector/action 1e-4),全局 batch 128,cosine,计划 40k updates。 - 源码:Psi0
4f3720d45e102b36d7c3e9465ab8062274170518加训练时本地修改,快照与 patch 随 bundle 提供。
许可证与第三方组件
Psi0 上游代码的 Apache-2.0 声明保留在 licenses/Psi0-LICENSE.txt。推理权重继承 Psi0 预训练模型及 Qwen 骨干的适用条款;CLIP 指令向量由 OpenAI CLIP ViT-L/14 计算。SONIC 声明见 licenses/SONIC-LICENSE.txt;本 tar 未包含 SONIC ONNX 或 TensorRT/Unitree 运行时。完整来源记录见 THIRD_PARTY_NOTICES.md。