waxal2026-backup / archive /scripts_B /queue_rebuild.sh
Pricile's picture
Upload folder using huggingface_hub
c887738 verified
Raw
History Blame Contribute Delete
2.86 kB
#!/bin/bash
# RECONSTRUCTION COMPLETE depuis w2v-bert-2.0, avec TOUTES les donnees de la page Data.
#
# Justification : ALLDATA (continuation) porte la penalite de continuation mesuree
# (evals ~0.299 vs 0.2848 pour le champion). Repartir de zero est le SEUL moyen d y
# echapper. Les deux paris sont complementaires et tournent en parallele.
#
# Donnees : lin + sna + lug, splits train + validation + test (Phase 1 autorisee pour
# la Phase 2, fil 34195). Le champion n avait ni les test ni les validation.
#
# Pas de selection de checkpoint (LOAD_BEST=0) : devhard est a 100 % dans le train,
# choisir le "meilleur" revient a choisir celui qui memorise le mieux.
set -e
export HF_HUB_ENABLE_HF_TRANSFER=0
echo "########## 1. parquets manquants (test + luganda) ##########"
/root/venv/bin/python - <<'PY'
from huggingface_hub import snapshot_download
snapshot_download(repo_id="google/WaxalNLP", repo_type="dataset",
local_dir="/scratch/data/waxal", max_workers=8,
allow_patterns=["data/ASR/lin/lin-test-*.parquet",
"data/ASR/sna/sna-test-*.parquet",
"data/ASR/lug/lug-train-*.parquet",
"data/ASR/lug/lug-validation-*.parquet",
"data/ASR/lug/lug-test-*.parquet"])
print("PARQUETS_OK")
PY
echo "########## 2. extraction FLAC (CPU, sans gener le GPU) ##########"
/root/venv/bin/python /root/prep_data.py 2>&1 | tail -6
echo "########## 3. inventaire des donnees etiquetees ##########"
/root/venv/bin/python - <<'PY'
import json, glob, os
M="/scratch/prep/manifests"
tot=0; keep=[]
for f in sorted(glob.glob(M+"/waxal_*.jsonl")):
n=os.path.basename(f)[:-6]
if not any(k in n for k in ["lin","sna","lug"]): continue
if "unlabeled" in n: continue
rows=[json.loads(l) for l in open(f,encoding="utf-8")]
lab=[r for r in rows if r.get("text","").strip()]
if not lab: continue
if not os.path.exists(lab[0]["audio"]): print(" SANS AUDIO:",n); continue
h=sum(r.get("duration",0) for r in lab)/3600
tot+=h; keep.append(f)
print(" %-28s %6d clips | %6.1f h"%(n,len(lab),h))
print(" TOTAL : %.1f h sur %d manifests"%(tot,len(keep)))
open("/root/rebuild_manifests.txt","w").write(" ".join(keep))
PY
echo "########## 4. attente du GPU ##########"
while pgrep -f "train_wbert.py|train_ahb.py" > /dev/null; do sleep 60; done
sleep 20
echo "GPU libre $(date -u '+%H:%M UTC')"
echo "########## 5. entrainement depuis zero ##########"
TRAINSET=$(cat /root/rebuild_manifests.txt)
echo "manifests : $TRAINSET"
SAVE_LIMIT=16 LOAD_BEST=0 /root/venv/bin/python /root/train_wbert.py \
--lang lin --out /scratch/runs/rebuild \
--init facebook/w2v-bert-2.0 \
--train $TRAINSET \
--eval /scratch/prep/manifests/waxal_lin_validation.jsonl \
--lr 1e-4 --epochs 8 --bs 4 --grad_accum 15 --warmup 800 --eval_steps 300
echo REBUILD_TRAIN_DONE