Download tools/pack_data.sh from SeanWang0027/rose-opd-implementation: direct link, hf CLI and curl.
- Browser
- Download file 2.03 kB
-
https://huggingface.co/SeanWang0027/rose-opd-implementation/resolve/main/tools/pack_data.sh
- Command line
-
hf download hf://SeanWang0027/rose-opd-implementation/tools/pack_data.sh
-
curl -L -o pack_data.sh https://huggingface.co/SeanWang0027/rose-opd-implementation/resolve/main/tools/pack_data.sh
2.03 kB
| # 把 data-dq 的内容打包: 1462 个文件 -> 约 20 个 tar.gz | |
| # | |
| # 两个原因必须打包: | |
| # 1. HF 限制每仓库每小时 256 次 commit, 而 upload_file 一个文件一次 commit | |
| # 2. rollout 是纯文本 jsonl, gzip -1 实测 5.2x(261M -> 50M, 2 秒) | |
| set -uo pipefail | |
| D=/home/haojinw2 | |
| OUT=$D/_pack_data | |
| rm -rf "$OUT"; mkdir -p "$OUT" | |
| echo "=== evalout: 按目录分组打包(每组约 15 个目录)" | |
| cd $D/evalout | |
| ls -d */ 2>/dev/null | sed 's#/##' | sort > /tmp/_dirs.txt | |
| total=$(wc -l < /tmp/_dirs.txt) | |
| echo " 共 $total 个目录" | |
| n=0; g=0 | |
| split -l 15 /tmp/_dirs.txt /tmp/_grp_ | |
| for grp in /tmp/_grp_*; do | |
| g=$((g+1)) | |
| name=$(printf "evalout_%02d.tar.gz" $g) | |
| tar -czf "$OUT/$name" -T "$grp" 2>/dev/null | |
| sz=$(du -m "$OUT/$name" | cut -f1) | |
| cnt=$(wc -l < "$grp") | |
| printf " %-22s %4sM (%s 个目录)\n" "$name" "$sz" "$cnt" | |
| done | |
| rm -f /tmp/_grp_* /tmp/_dirs.txt | |
| # evalout 根下的散文件 | |
| cd $D/evalout && find . -maxdepth 1 -type f | head -1 >/dev/null 2>&1 && \ | |
| tar -czf "$OUT/evalout_loose.tar.gz" $(find . -maxdepth 1 -type f -printf "%P\n" 2>/dev/null) 2>/dev/null && \ | |
| echo " evalout_loose.tar.gz $(du -m $OUT/evalout_loose.tar.gz | cut -f1)M" | |
| echo "=== 其它目录" | |
| cd $D | |
| for x in datasets iter_data_keep; do | |
| [ -d "$x" ] || continue | |
| tar -czf "$OUT/${x}.tar.gz" "$x" 2>/dev/null | |
| printf " %-22s %4sM\n" "${x}.tar.gz" "$(du -m $OUT/${x}.tar.gz | cut -f1)" | |
| done | |
| tar -czf "$OUT/sciworld_sft.tar.gz" sciworld_sft_teacher32b_*.jsonl 2>/dev/null | |
| printf " %-22s %4sM\n" "sciworld_sft.tar.gz" "$(du -m $OUT/sciworld_sft.tar.gz | cut -f1)" | |
| echo | |
| echo "=== 汇总" | |
| before=$(du -sm $D/evalout $D/datasets $D/iter_data_keep $D/sciworld_sft_teacher32b_*.jsonl 2>/dev/null | awk '{s+=$1} END {print s}') | |
| after=$(du -sm "$OUT" | cut -f1) | |
| echo " 原始 $((before/1024))G -> 打包后 $((after/1024))G (压缩 $(awk -v a=$before -v b=$after 'BEGIN{printf "%.1f", a/b}')x)" | |
| echo " 文件数 1462 -> $(ls "$OUT" | wc -l)" | |
| df -h /home | tail -1 | awk '{print " 磁盘 "$4" 可用"}' | |