#!/usr/bin/env bash set -euo pipefail # 在部署机上运行: # bash scripts/setup_deploy.sh /path/to/RoboticsDiffusionTransformer # # 目标: # 1. 把 checkpoint 链接到 RDT 项目 checkpoints/ # 2. 把 lang_embed 链接到 data/datasets/agilex/rdt_data/ # 3. 复制 configs # 4. 提醒下载 base model 和 SigLIP PACKAGE_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" RDT_ROOT="${1:-$(pwd)}" echo "PACKAGE_ROOT = $PACKAGE_ROOT" echo "RDT_ROOT = $RDT_ROOT" if [ ! -d "$RDT_ROOT" ]; then echo "ERROR: RDT_ROOT not found: $RDT_ROOT" exit 1 fi mkdir -p "$RDT_ROOT/checkpoints" mkdir -p "$RDT_ROOT/data/datasets/agilex" mkdir -p "$RDT_ROOT/configs" ln -sfn "$PACKAGE_ROOT/checkpoint" "$RDT_ROOT/checkpoints/rdt_agilex_best" ln -sfn "$PACKAGE_ROOT/lang_embed" "$RDT_ROOT/data/datasets/agilex/rdt_data" # 复制配置到项目 configs;已有文件会保留备份 for f in "$PACKAGE_ROOT"/configs/*; do [ -f "$f" ] || continue base="$(basename "$f")" if [ -f "$RDT_ROOT/configs/$base" ]; then cp "$RDT_ROOT/configs/$base" "$RDT_ROOT/configs/$base.bak_before_rdt_agilex_deploy" fi cp "$f" "$RDT_ROOT/configs/$base" done echo echo "Linked:" echo " checkpoint -> $RDT_ROOT/checkpoints/rdt_agilex_best" echo " lang_embed -> $RDT_ROOT/data/datasets/agilex/rdt_data" echo echo "Next required on deployment machine:" echo " 1. Download or prepare base RDT-1B model." echo " 2. Download or prepare SigLIP vision encoder." echo " 3. Use precomputed language embeddings; T5-XXL is not required for deployment if inference code does not re-encode text." echo