def sigopt_hp_space(trial):
     return [
         {"bounds": {"min": 1e-6, "max": 1e-4}, "name": "learning_rate", "type": "double"},
         {
             "categorical_values": ["16", "32", "64", "128"],
             "name": "per_device_train_batch_size",
             "type": "categorical",
         },
     ]

For optuna, see optuna object_parameter, it's like following: