Tune VRAM memory: delete logits before backward, safe micro_batch 4 for 32GB GPUs
Browse files- code/train_sft.py +6 -4
code/train_sft.py
CHANGED
|
@@ -169,13 +169,13 @@ def auto_profile_hardware():
|
|
| 169 |
# Tier Classification for 2048 Context Length (Target Effective Batch = 128)
|
| 170 |
if vram_gb >= 75: # H200 (141GB), H100 (80GB), GH200, A100-80GB
|
| 171 |
tier = "Ultra-Tier"
|
| 172 |
-
micro_batch =
|
| 173 |
-
grad_accum =
|
| 174 |
desc = "NVIDIA Hopper / Datacenter Beast (141GB / 80GB HBM3e)"
|
| 175 |
elif vram_gb >= 30: # RTX 5090 (32GB), A100 (40GB), A6000 (48GB), RTX 6000 Ada
|
| 176 |
tier = "High-Tier"
|
| 177 |
-
micro_batch =
|
| 178 |
-
grad_accum =
|
| 179 |
desc = "NVIDIA Blackwell / High-End Workstation (32GB+)"
|
| 180 |
elif vram_gb >= 20: # RTX 4090 (24GB), RTX 3090 (24GB), L4 (24GB), A10G (24GB)
|
| 181 |
tier = "Pro-Tier"
|
|
@@ -753,6 +753,7 @@ def main():
|
|
| 753 |
domain_loss_sum[d_id] += s_loss
|
| 754 |
domain_token_cnt[d_id] += act
|
| 755 |
|
|
|
|
| 756 |
total_val_loss += sum_loss.item()
|
| 757 |
val_tokens += num_active
|
| 758 |
|
|
@@ -802,6 +803,7 @@ def main():
|
|
| 802 |
logits, loss = model(inputs, targets=labels, pad_id=PAD_TOKEN_ID, shift_labels=True)
|
| 803 |
loss_scaled = loss / grad_acc
|
| 804 |
|
|
|
|
| 805 |
loss_scaled.backward()
|
| 806 |
accum_loss += loss.item()
|
| 807 |
epoch_loss += loss.item()
|
|
|
|
| 169 |
# Tier Classification for 2048 Context Length (Target Effective Batch = 128)
|
| 170 |
if vram_gb >= 75: # H200 (141GB), H100 (80GB), GH200, A100-80GB
|
| 171 |
tier = "Ultra-Tier"
|
| 172 |
+
micro_batch = 8
|
| 173 |
+
grad_accum = 16
|
| 174 |
desc = "NVIDIA Hopper / Datacenter Beast (141GB / 80GB HBM3e)"
|
| 175 |
elif vram_gb >= 30: # RTX 5090 (32GB), A100 (40GB), A6000 (48GB), RTX 6000 Ada
|
| 176 |
tier = "High-Tier"
|
| 177 |
+
micro_batch = 4
|
| 178 |
+
grad_accum = 32
|
| 179 |
desc = "NVIDIA Blackwell / High-End Workstation (32GB+)"
|
| 180 |
elif vram_gb >= 20: # RTX 4090 (24GB), RTX 3090 (24GB), L4 (24GB), A10G (24GB)
|
| 181 |
tier = "Pro-Tier"
|
|
|
|
| 753 |
domain_loss_sum[d_id] += s_loss
|
| 754 |
domain_token_cnt[d_id] += act
|
| 755 |
|
| 756 |
+
del logits, shift_logits
|
| 757 |
total_val_loss += sum_loss.item()
|
| 758 |
val_tokens += num_active
|
| 759 |
|
|
|
|
| 803 |
logits, loss = model(inputs, targets=labels, pad_id=PAD_TOKEN_ID, shift_labels=True)
|
| 804 |
loss_scaled = loss / grad_acc
|
| 805 |
|
| 806 |
+
del logits
|
| 807 |
loss_scaled.backward()
|
| 808 |
accum_loss += loss.item()
|
| 809 |
epoch_loss += loss.item()
|