diff --git a/examples/mlperf/model_train.py b/examples/mlperf/model_train.py index ed4b33a77a..2cccfff804 100644 --- a/examples/mlperf/model_train.py +++ b/examples/mlperf/model_train.py @@ -398,11 +398,11 @@ def train_bert(): seed = config["seed"] = getenv("SEED", 12345) # ** hyperparameters ** - BS = config["GLOBAL_BATCH_SIZE"] = getenv("BS", 4 * len(GPUS)) # FP32 4090: 6 GPUS -> BS24 - EVAL_BS = config["EVAL_BS"] = getenv("EVAL_BS", 4 * len(GPUS)) - max_lr = config["OPT_BASE_LEARNING_RATE"] = getenv("OPT_BASE_LEARNING_RATE", 0.000004166 * BS) + BS = config["GLOBAL_BATCH_SIZE"] = getenv("BS", 16 * len(GPUS) if dtypes.default_float in (dtypes.float16, dtypes.bfloat16) else 8 * len(GPUS)) + EVAL_BS = config["EVAL_BS"] = getenv("EVAL_BS", 1 * len(GPUS)) + max_lr = config["OPT_BASE_LEARNING_RATE"] = getenv("OPT_BASE_LEARNING_RATE", 0.00035 * math.sqrt(BS/256)) - train_steps = config["TRAIN_STEPS"] = getenv("TRAIN_STEPS", 3840000 // BS) + train_steps = config["TRAIN_STEPS"] = getenv("TRAIN_STEPS", 4800000 // BS) warmup_steps = config["NUM_WARMUP_STEPS"] = getenv("NUM_WARMUP_STEPS", 1) max_eval_steps = config["MAX_EVAL_STEPS"] = getenv("MAX_EVAL_STEPS", (10000 + EVAL_BS - 1) // EVAL_BS) # EVAL_BS * MAX_EVAL_STEPS >= 10000 eval_step_freq = config["EVAL_STEP_FREQ"] = getenv("EVAL_STEP_FREQ", int((math.floor(0.05 * (230.23 * BS + 3000000) / 25000) * 25000) / BS)) # Round down