Upload run_finetune.sh with huggingface_hub
Browse files- run_finetune.sh +71 -0
run_finetune.sh
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
# ============================================================================
|
| 3 |
+
# Downstream fine-tuning script for ModernProteinLM
|
| 4 |
+
#
|
| 5 |
+
# Usage:
|
| 6 |
+
# bash run_finetune.sh --task fluorescence
|
| 7 |
+
# bash run_finetune.sh --task solubility,fluorescence,stability
|
| 8 |
+
# ============================================================================
|
| 9 |
+
|
| 10 |
+
set -e
|
| 11 |
+
|
| 12 |
+
# ----------------------------------------------------------------------------
|
| 13 |
+
# CONFIGURATION
|
| 14 |
+
# ----------------------------------------------------------------------------
|
| 15 |
+
|
| 16 |
+
# Pretrained checkpoint
|
| 17 |
+
PRETRAIN_DIR="${PRETRAIN_DIR:-./outputs/pretrain/final}"
|
| 18 |
+
TASKS="${TASKS:-fluorescence,solubility}"
|
| 19 |
+
|
| 20 |
+
# Fine-tuning
|
| 21 |
+
EPOCHS="${EPOCHS:-20}"
|
| 22 |
+
BATCH_SIZE="${BATCH_SIZE:-16}"
|
| 23 |
+
LR="${LR:-1e-4}"
|
| 24 |
+
WARMUP_RATIO="${WARMUP_RATIO:-0.1}"
|
| 25 |
+
WEIGHT_DECAY="${WEIGHT_DECAY:-0.01}"
|
| 26 |
+
|
| 27 |
+
# System
|
| 28 |
+
OUTPUT_DIR="${OUTPUT_DIR:-./outputs/finetune}"
|
| 29 |
+
NUM_WORKERS="${NUM_WORKERS:-4}"
|
| 30 |
+
NUM_GPUS="${NUM_GPUS:-1}"
|
| 31 |
+
|
| 32 |
+
# Precision
|
| 33 |
+
USE_AMP="${USE_AMP:-1}"
|
| 34 |
+
|
| 35 |
+
# Tracking
|
| 36 |
+
USE_TRACKIO="${USE_TRACKIO:-0}"
|
| 37 |
+
TRACKIO_PROJECT="${TRACKIO_PROJECT:-modern-protein-lm}"
|
| 38 |
+
|
| 39 |
+
# ----------------------------------------------------------------------------
|
| 40 |
+
# LAUNCH
|
| 41 |
+
# ----------------------------------------------------------------------------
|
| 42 |
+
|
| 43 |
+
PYTHON_ARGS=(
|
| 44 |
+
train_finetune.py
|
| 45 |
+
--pretrain_dir "$PRETRAIN_DIR"
|
| 46 |
+
--tasks "$TASKS"
|
| 47 |
+
--epochs "$EPOCHS"
|
| 48 |
+
--batch_size "$BATCH_SIZE"
|
| 49 |
+
--lr "$LR"
|
| 50 |
+
--warmup_ratio "$WARMUP_RATIO"
|
| 51 |
+
--weight_decay "$WEIGHT_DECAY"
|
| 52 |
+
--output_dir "$OUTPUT_DIR"
|
| 53 |
+
--num_workers "$NUM_WORKERS"
|
| 54 |
+
)
|
| 55 |
+
|
| 56 |
+
if [[ "$USE_AMP" == "1" ]]; then
|
| 57 |
+
PYTHON_ARGS+=(--use_amp)
|
| 58 |
+
fi
|
| 59 |
+
|
| 60 |
+
if [[ "$USE_TRACKIO" == "1" ]]; then
|
| 61 |
+
PYTHON_ARGS+=(--use_trackio --trackio_project "$TRACKIO_PROJECT")
|
| 62 |
+
fi
|
| 63 |
+
|
| 64 |
+
if command -v torchrun &> /dev/null && [[ "$NUM_GPUS" -gt 1 ]]; then
|
| 65 |
+
echo "Launching with torchrun on $NUM_GPUS GPUs..."
|
| 66 |
+
torchrun --standalone --nnodes=1 --nproc_per_node="$NUM_GPUS" "${PYTHON_ARGS[@]}"
|
| 67 |
+
else
|
| 68 |
+
python "${PYTHON_ARGS[@]}"
|
| 69 |
+
fi
|
| 70 |
+
|
| 71 |
+
echo "Fine-tuning complete. Results in $OUTPUT_DIR"
|