SeanWang0027's picture
add files 3601-3956
a925f29 verified
Raw History Blame Contribute Delete
2.03 kB
#!/bin/bash
# 把 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" 可用"}'