SimToken / setup_simtoken.md
yfan07's picture
Add files using upload-large-folder tool
65fb4ac verified

SimToken Setup

本文档用于在新机器上重建 SimToken 环境,并准备后续 A-min 实验。


1. Create Environment

先确认 GPU 和 CUDA driver 状态:

nvidia-smi

创建 conda 环境:

/opt/miniforge3/condabin/conda create -n simtoken python=3.10 -y
/opt/miniforge3/condabin/conda activate simtoken

python -m pip install --upgrade pip wheel "setuptools<81"

pip install \
  torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 \
  --index-url https://download.pytorch.org/whl/cu121

pip install \
  transformers==4.30.2 \
  peft==0.2.0 \
  accelerate==0.21.0 \
  sentencepiece \
  protobuf \
  safetensors \
  numpy==1.26.4 \
  pandas \
  matplotlib \
  opencv-python \
  pillow \
  tqdm \
  einops \
  timm \
  requests \
  towhee \
  huggingface_hub

快速验证:

python - <<'PY'
import torch
print("torch:", torch.__version__)
print("cuda available:", torch.cuda.is_available())
print("device:", torch.cuda.get_device_name(0) if torch.cuda.is_available() else "cpu")
PY

2. Check Workspace After Migration

使用服务器平台的迁移工具完成目录迁移后,在新机器上确认关键文件:

cd /workspace/SimToken

ls -lh checkpoints/simtoken_pretrained.pth
ls -lh models/segment_anything/sam_vit_h_4b8939.pth
ls -d data/image_embed data/gt_mask data/audio_embed data/media

如果迁移后只有压缩包而没有解压目录,重新解压:

cd /workspace/SimToken/data

tar -xf image_embed.tar
tar -xzf gt_mask.tar.gz
tar -xzf audio_embed.tar.gz
tar -xf media.tar

清理迁移中不需要的缓存:

cd /workspace/SimToken
find . -name "__pycache__" -prune -exec rm -rf {} +
find . -name ".pytest_cache" -prune -exec rm -rf {} +
find . -name ".cache" -prune -exec rm -rf {} +
find . -name "*.pyc" -delete

3. Download from HuggingFace

如果新机器不使用迁移工具,而是从 HuggingFace 重新初始化,先登录:

huggingface-cli login

下载完整 repo:

mkdir -p /workspace/SimToken
cd /workspace/SimToken

huggingface-cli download yfan07/SimToken \
  --repo-type model \
  --local-dir . \
  --local-dir-use-symlinks False

下载完成后解压数据:

cd /workspace/SimToken/data

tar -xf image_embed.tar
tar -xzf gt_mask.tar.gz
tar -xzf audio_embed.tar.gz
tar -xf media.tar

4. Pre-download Model Weights

transformers==4.30.2 与新版 huggingface_hub 可能存在网络/API 兼容问题。建议先用 CLI 将模型下载到本地缓存,实验时再加 TRANSFORMERS_OFFLINE=1

# Chat-UniVi-7B
huggingface-cli download Chat-UniVi/Chat-UniVi-7B-v1.5

# CLIP ViT-L
huggingface-cli download openai/clip-vit-large-patch14

下载完成后做离线验证:

cd /workspace/SimToken

TRANSFORMERS_OFFLINE=1 /opt/miniforge3/condabin/conda run -n simtoken \
  python -m py_compile train.py load_model.py decoder_invariance_check.py

5. Smoke Test

先跑一个轻量 sanity check,确认 checkpoint、数据和离线模型缓存都能正常读取:

cd /workspace/SimToken

TRANSFORMERS_OFFLINE=1 /opt/miniforge3/condabin/conda run -n simtoken \
  python decoder_invariance_check.py \
  --eval_split test_s \
  --max_eval_rows 1

如果可以正常加载模型并输出 per-frame diff,就可以启动完整 A-min 训练:

cd /workspace/SimToken
mkdir -p log checkpoints

TRANSFORMERS_OFFLINE=1 /opt/miniforge3/condabin/conda run -n simtoken \
  python -W ignore train.py \
  --name amin_full_e1 \
  --init_from_saved_model \
  --epochs 1 \
  --batch_size 2 \
  --lr 1e-4 \
  --saved_model /workspace/SimToken/checkpoints/simtoken_pretrained.pth \
  --log_root /workspace/SimToken/log \
  --checkpoint_root /workspace/SimToken/checkpoints

启动日志中应出现:

initialized training from saved model: /workspace/SimToken/checkpoints/simtoken_pretrained.pth
missing keys: ... | unexpected keys: ...

6. Upload to HuggingFace

实验结束后,如需重新上传到 HuggingFace,先将数据目录压缩为归档文件,减少文件数量:

cd /workspace/SimToken/data

tar -cf image_embed.tar image_embed/
tar -czf gt_mask.tar.gz gt_mask/
tar -czf audio_embed.tar.gz audio_embed/
tar -cf media.tar media/

ls -lh *.tar*
rm -rf image_embed/ gt_mask/ audio_embed/ media/

清理缓存并上传:

cd /workspace/SimToken

find . -name "__pycache__" -prune -exec rm -rf {} +
find . -name ".pytest_cache" -prune -exec rm -rf {} +
find . -name ".cache" -prune -exec rm -rf {} +
find . -name "*.pyc" -delete

huggingface-cli login
python upload_hf.py --repo yfan07/SimToken