ModernProteinLM / run_finetune.sh
GrimSqueaker's picture
Upload run_finetune.sh with huggingface_hub
f81133b verified
#!/bin/bash
# ============================================================================
# Downstream fine-tuning script for ModernProteinLM
#
# Usage:
# bash run_finetune.sh --task fluorescence
# bash run_finetune.sh --task solubility,fluorescence,stability
# ============================================================================
set -e
# ----------------------------------------------------------------------------
# CONFIGURATION
# ----------------------------------------------------------------------------
# Pretrained checkpoint
PRETRAIN_DIR="${PRETRAIN_DIR:-./outputs/pretrain/final}"
TASKS="${TASKS:-fluorescence,solubility}"
# Fine-tuning
EPOCHS="${EPOCHS:-20}"
BATCH_SIZE="${BATCH_SIZE:-16}"
LR="${LR:-1e-4}"
WARMUP_RATIO="${WARMUP_RATIO:-0.1}"
WEIGHT_DECAY="${WEIGHT_DECAY:-0.01}"
# System
OUTPUT_DIR="${OUTPUT_DIR:-./outputs/finetune}"
NUM_WORKERS="${NUM_WORKERS:-4}"
NUM_GPUS="${NUM_GPUS:-1}"
# Precision
USE_AMP="${USE_AMP:-1}"
# Tracking
USE_TRACKIO="${USE_TRACKIO:-0}"
TRACKIO_PROJECT="${TRACKIO_PROJECT:-modern-protein-lm}"
# ----------------------------------------------------------------------------
# LAUNCH
# ----------------------------------------------------------------------------
PYTHON_ARGS=(
train_finetune.py
--pretrain_dir "$PRETRAIN_DIR"
--tasks "$TASKS"
--epochs "$EPOCHS"
--batch_size "$BATCH_SIZE"
--lr "$LR"
--warmup_ratio "$WARMUP_RATIO"
--weight_decay "$WEIGHT_DECAY"
--output_dir "$OUTPUT_DIR"
--num_workers "$NUM_WORKERS"
)
if [[ "$USE_AMP" == "1" ]]; then
PYTHON_ARGS+=(--use_amp)
fi
if [[ "$USE_TRACKIO" == "1" ]]; then
PYTHON_ARGS+=(--use_trackio --trackio_project "$TRACKIO_PROJECT")
fi
if command -v torchrun &> /dev/null && [[ "$NUM_GPUS" -gt 1 ]]; then
echo "Launching with torchrun on $NUM_GPUS GPUs..."
torchrun --standalone --nnodes=1 --nproc_per_node="$NUM_GPUS" "${PYTHON_ARGS[@]}"
else
python "${PYTHON_ARGS[@]}"
fi
echo "Fine-tuning complete. Results in $OUTPUT_DIR"