proiect-pvmd / scripts /run_training.sh
alexandrubent's picture
Initial project upload
a039392 verified
Raw
History Blame Contribute Delete
2.23 kB
#!/bin/bash
set -e
echo "==================================="
echo "PVMD - Parakeet Romanian Fine-tuning"
echo "==================================="
# Activare mediu
source /opt/conda/etc/profile.d/conda.sh
conda activate pvmd
# Variabile
export HF_HOME=/mnt/parakeet-training/cache/huggingface
export HF_DATASETS_CACHE=/mnt/parakeet-training/cache/datasets
export PYSPARK_PYTHON=/opt/conda/envs/pvmd/bin/python
export PYSPARK_DRIVER_PYTHON=/opt/conda/envs/pvmd/bin/python
DATASET_NAME="datadriven-company/TTS-Romanian"
MODEL_PATH="/mnt/parakeet-training/models/parakeet-romanian/SpeD-ParakeetRo_110M_TDT-CTC.nemo"
AUDIO_DIR="/mnt/parakeet-training/datasets/audio_wav"
MANIFEST_DIR="/mnt/parakeet-training/datasets/manifests"
OUTPUT_DIR="/mnt/parakeet-training/outputs/nemo-finetune"
mkdir -p "$AUDIO_DIR" "$MANIFEST_DIR" "$OUTPUT_DIR"
echo "[1/4] Extragere audio din dataset..."
python src/extract_audio_for_nemo.py \
--dataset_name "$DATASET_NAME" \
--output_audio_dir "$AUDIO_DIR" \
--output_manifest "$MANIFEST_DIR/full_manifest.json" \
--target_sr 16000 \
--cache_dir /mnt/parakeet-training/cache/datasets
echo "[2/4] Împărțire train/validation..."
python -c "
import json, random
random.seed(42)
with open('$MANIFEST_DIR/full_manifest.json') as f:
lines = f.readlines()
random.shuffle(lines)
split = int(len(lines) * 0.95)
train = lines[:split]
val = lines[split:]
with open('$MANIFEST_DIR/train_manifest.json', 'w') as f:
f.writelines(train)
with open('$MANIFEST_DIR/val_manifest.json', 'w') as f:
f.writelines(val)
print(f'Train: {len(train)}, Val: {len(val)}')
"
echo "[3/4] Preprocesare PySpark (opțional - filtre avansate)..."
# python src/preprocess_nemo_manifest.py ...
echo "[4/4] Antrenament NeMo..."
python src/train_nemo.py \
--model_path "$MODEL_PATH" \
--train_manifest "$MANIFEST_DIR/train_manifest.json" \
--val_manifest "$MANIFEST_DIR/val_manifest.json" \
--output_dir "$OUTPUT_DIR" \
--max_epochs 10 \
--batch_size 16 \
--lr 2e-3 \
--warmup_steps 5000 \
--precision bf16-mixed \
--accumulate_grad_batches 4
echo "==================================="
echo "Antrenament finalizat!"
echo "Output: $OUTPUT_DIR"
echo "==================================="