Add kaggle/train_grpo.py
Browse files- kaggle/train_grpo.py +20 -3
kaggle/train_grpo.py
CHANGED
|
@@ -782,9 +782,26 @@ def main(cfg: Cfg | None = None) -> None:
|
|
| 782 |
train, eval_problems = _load_swe_splits(cfg)
|
| 783 |
_vlog("main.dataset_ready", train_n=len(train), eval_n=len(eval_problems))
|
| 784 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 785 |
bnb = BitsAndBytesConfig(
|
| 786 |
load_in_4bit=True,
|
| 787 |
-
bnb_4bit_compute_dtype=
|
| 788 |
bnb_4bit_quant_type="nf4",
|
| 789 |
bnb_4bit_use_double_quant=True,
|
| 790 |
)
|
|
@@ -918,8 +935,8 @@ def main(cfg: Cfg | None = None) -> None:
|
|
| 918 |
save_steps=cfg.save_steps,
|
| 919 |
save_total_limit=3,
|
| 920 |
report_to=["wandb"],
|
| 921 |
-
bf16=
|
| 922 |
-
fp16=not
|
| 923 |
remove_unused_columns=False,
|
| 924 |
hub_model_id=cfg.hub_model_id,
|
| 925 |
hub_token=os.environ["HF_TOKEN"],
|
|
|
|
| 782 |
train, eval_problems = _load_swe_splits(cfg)
|
| 783 |
_vlog("main.dataset_ready", train_n=len(train), eval_n=len(eval_problems))
|
| 784 |
|
| 785 |
+
# T4 is sm75 — TRL chunked bf16 logprob kernels need sm80+ (A100/L4/…).
|
| 786 |
+
# torch.cuda.is_bf16_supported() can still be True on T4 and then crash in backward.
|
| 787 |
+
def _use_bf16() -> bool:
|
| 788 |
+
if not torch.cuda.is_available():
|
| 789 |
+
return False
|
| 790 |
+
major, _minor = torch.cuda.get_device_capability(0)
|
| 791 |
+
ok = major >= 8 and torch.cuda.is_bf16_supported()
|
| 792 |
+
_vlog(
|
| 793 |
+
"main.dtype_choice",
|
| 794 |
+
bf16=ok,
|
| 795 |
+
capability=torch.cuda.get_device_capability(0),
|
| 796 |
+
device=torch.cuda.get_device_name(0),
|
| 797 |
+
)
|
| 798 |
+
return ok
|
| 799 |
+
|
| 800 |
+
use_bf16 = _use_bf16()
|
| 801 |
+
compute_dtype = torch.bfloat16 if use_bf16 else torch.float16
|
| 802 |
bnb = BitsAndBytesConfig(
|
| 803 |
load_in_4bit=True,
|
| 804 |
+
bnb_4bit_compute_dtype=compute_dtype,
|
| 805 |
bnb_4bit_quant_type="nf4",
|
| 806 |
bnb_4bit_use_double_quant=True,
|
| 807 |
)
|
|
|
|
| 935 |
save_steps=cfg.save_steps,
|
| 936 |
save_total_limit=3,
|
| 937 |
report_to=["wandb"],
|
| 938 |
+
bf16=use_bf16,
|
| 939 |
+
fp16=not use_bf16,
|
| 940 |
remove_unused_columns=False,
|
| 941 |
hub_model_id=cfg.hub_model_id,
|
| 942 |
hub_token=os.environ["HF_TOKEN"],
|