File size: 1,764 Bytes
c887738 | 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 | #!/bin/bash
# Attend la fin de la transcription shona, puis entraine la ponctuation sur les
# VRAIES sorties ASR (lingala + shona), puis publie le modele.
#
# REGLE ANTI-AUTO-BLOCAGE : motif a crochet "[r]eal_asr_punct".
exec >> /root/queue_real.log 2>&1
echo "########## file ponctuation REELLE demarree $(date -u '+%d/%m %H:%M UTC') ##########"
V=/root/venv/bin/python
echo "attente de la transcription shona..."
while pgrep -f "[r]eal_asr_punct" > /dev/null; do sleep 30; done
sleep 10
echo "transcriptions terminees $(date -u '+%H:%M')"
wc -l /scratch/real_lin.jsonl /scratch/real_sna.jsonl 2>/dev/null
# afro-xlmr-base : c est LUI qui gagne au LB, pas mBERT (0.696 de precision hors ligne
# mais meilleur au reel). On garde donc la base gagnante et on ne change QUE les donnees.
$V /root/train_punct.py \
--out /scratch/runs/punct_real --base Davlan/afro-xlmr-base \
--real /scratch/real_lin.jsonl /scratch/real_sna.jsonl \
--lr 3e-5 --epochs 4 --bs 16 \
|| echo "!! entrainement reel echoue"
if [ -d /scratch/runs/punct_real/best ]; then
$V -c "
from huggingface_hub import HfApi
HfApi(token=open('/root/.cache/huggingface/token').read().strip()).upload_folder(
folder_path='/scratch/runs/punct_real/best', path_in_repo='punct/real_best',
repo_id='Pricile/waxal2026-backup', repo_type='model')
print('PONCT_REELLE_PUBLIEE')" || echo "!! publication echouee (depot HF plein ?)"
# repli : liaison directe B -> A si HF refuse
echo "copie directe vers A"
scp -r -o StrictHostKeyChecking=no -o BatchMode=yes /scratch/runs/punct_real/best \
root@151.115.78.57:/scratch/punct_real_best 2>/dev/null \
&& echo COPIE_A_OK || echo "(pas de cle B->A, utiliser HF ou tirer depuis A)"
fi
echo "FILE_REELLE_TERMINEE $(date -u '+%H:%M')"
|