vanishingradient commited on
Commit
f5cb9ca
·
verified ·
1 Parent(s): 8dd7dcc

Add kaggle/train_grpo.py

Browse files
Files changed (1) hide show
  1. 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=torch.bfloat16 if torch.cuda.is_bf16_supported() else torch.float16,
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=torch.cuda.is_bf16_supported(),
922
- fp16=not torch.cuda.is_bf16_supported(),
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"],