#!/bin/bash # INITIALISATION DEPUIS L'ENCODEUR asr-africa LINGALA 109 h — piste JAMAIS testee. # # Pourquoi elle est nouvelle : le fichier de suivi a declare "toute la famille checkpoint # externe est morte" sur la base d'un argument de VOCABULAIRE (aucun n'a casse ni ponctuation). # Cet argument tue deux usages -- sortie directe et rescorage du formatage -- mais PAS le # troisieme : ne garder que l'ENCODEUR acoustique et remettre NOTRE tete CTC (avec casse et # ponctuation). L'encodeur a vu 109 h de lingala (Fleurs+AMMI+AFRIVOICE+LRSC), la notre est # partie du w2v-BERT generique. # # Conforme : modele public, licence MIT, sera declare dans COMPLIANCE.md. # # Deux precautions indispensables : # 1. retirer vocab.json du dossier d'init, sinon train_wbert.py REUTILISE le vocabulaire # asr-africa (63 symboles, sans casse ni ponctuation) => sortie catastrophique ; # 2. IGNORE_MISMATCH=1 pour que la tete CTC (65 -> 123) soit reinitialisee. set -e M=/scratch/prep/manifests SRC=/scratch/models/asrafrica_ln109 ENC=/scratch/models/afr_enc echo "########## attente du GPU ##########" while pgrep -f "train_wbert.py|train_xlsr.py" > /dev/null; do sleep 60; done echo "GPU libre a $(date -u '+%H:%M UTC')"; sleep 20 echo "########## preparation de l'encodeur (sans vocabulaire) ##########" rm -rf $ENC && mkdir -p $ENC cp $SRC/config.json $SRC/model.safetensors $ENC/ 2>/dev/null || cp $SRC/config.json $SRC/pytorch_model.bin $ENC/ ls $ENC [ -f $ENC/vocab.json ] && echo "ERREUR: vocab.json present, il serait herite" && exit 1 echo "OK : pas de vocab.json => train_wbert reconstruira le notre depuis le texte WAXAL" echo "########## entrainement depuis l'encodeur asr-africa ##########" SAVE_LIMIT=12 LOAD_BEST=0 IGNORE_MISMATCH=1 /root/venv/bin/python /root/train_wbert.py \ --lang lin --out /scratch/runs/afr \ --init $ENC \ --train $M/waxal_lin_train.jsonl $M/waxal_sna_train.jsonl \ --eval $M/waxal_lin_validation.jsonl \ --lr 5e-5 --epochs 6 --bs 4 --grad_accum 15 --warmup 300 --eval_steps 200 echo "AFR_TRAIN_DONE" echo "########## moyennage de fin de trajectoire + decodage lingala ##########" RUN=/scratch/runs/afr BASE=/root/sub_XRL10.csv /root/venv/bin/python /root/swa_avg.py || true echo "AFR_ALL_DONE"