GrimSqueaker commited on
Commit
f81133b
·
verified ·
1 Parent(s): b388cd5

Upload run_finetune.sh with huggingface_hub

Browse files
Files changed (1) hide show
  1. 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"