File size: 3,841 Bytes
51e0ad4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | # SimToken Setup
---
## 1. Create Environment
```bash
conda create -n simtoken python=3.10 -y
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
```
---
## 2. Download from HuggingFace(新机器初始化)
登录 HuggingFace(token 在 https://huggingface.co/settings/tokens 生成):
```bash
huggingface-cli login
```
下载完整 repo(代码 + 权重 + 压缩数据包,共约 190G):
```bash
mkdir -p /workspace/SimToken
cd /workspace/SimToken
huggingface-cli download yfan07/SimToken \
--repo-type model \
--local-dir . \
--local-dir-use-symlinks False
```
下载完成后解压数据包:
```bash
cd /workspace/SimToken/data
tar -xf image_embed.tar # ~5–10 分钟
tar -xzf gt_mask.tar.gz
tar -xzf audio_embed.tar.gz
tar -xf media.tar
```
---
## 3. Pre-download Model Weights(首次使用必做)
`transformers==4.30.2` 与新版 `huggingface_hub` 存在 API 不兼容(`use_auth_token` 已移除)。
解决方案:先用 CLI 将模型下载到本地缓存,之后运行实验时加 `TRANSFORMERS_OFFLINE=1`,跳过所有网络请求。
```bash
# Chat-UniVi-7B(~14G)
huggingface-cli download Chat-UniVi/Chat-UniVi-7B-v1.5
# CLIP ViT-L(~1.6G)
huggingface-cli download openai/clip-vit-large-patch14
```
下载完成后即永久缓存,新 session 无需重复下载。
---
## 4. Example Evaluation
所有评测命令统一加 `TRANSFORMERS_OFFLINE=1`:
```bash
cd /workspace/SimToken
# Unseen split(全量 1656 样本)
TRANSFORMERS_OFFLINE=1 python -W ignore load_model.py --eval_split test_u
# Seen split
TRANSFORMERS_OFFLINE=1 python -W ignore load_model.py --eval_split test_s
# Null split(S metric,越低越好)
TRANSFORMERS_OFFLINE=1 python -W ignore load_model.py --eval_split test_n
# 限制样本数(快速验证)
TRANSFORMERS_OFFLINE=1 python -W ignore load_model.py --eval_split test_u --max_eval_rows 50
# Stage 0 梯度连通性 + bypass 等价性检查(仅诊断)
TRANSFORMERS_OFFLINE=1 python -W ignore load_model.py --eval_split test_u --max_eval_rows 0
```
每次评估依次输出:Baseline + q-LTPO Stage 1 两组结果及诊断统计。
---
## 5. Upload to HuggingFace(实验结束后)
数据目录以压缩包形式存储,可大幅减少文件数量,避免 HuggingFace commit 频率限制。
**第一步:将数据目录压缩为归档文件(如尚未压缩)**
```bash
cd /workspace/SimToken/data
tar -cf image_embed.tar image_embed/ # 不压缩(.pt 已是二进制)
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/
```
**第二步:清理缓存并上传**
```bash
find /workspace/SimToken -name "__pycache__" -exec rm -rf {} + 2>/dev/null
find /workspace/SimToken -name "*.pyc" -delete
huggingface-cli login # token 在 https://huggingface.co/settings/tokens 生成(需 Write 权限)
cd /workspace/SimToken
python upload_hf.py --repo yfan07/SimToken
```
**注意事项:**
- 建议在 `tmux` 里运行,防止 SSH 断开:`tmux new -s upload`,完成后 `Ctrl+B D` detach
- 支持断点续传:中断后重新执行同一命令会自动跳过已上传文件
- 遇到 rate limit(HTTP 429)时脚本会自动等待约 1 小时后重试
- 监控进度:`tail -f /workspace/SimToken/upload.log`
|