[optimization] support 8bit optims from bistandbytes (#163)

* support 8bit optims from bnb.

* fix exist_ok

* use_8bit_bnb.

* fix.

* note in readme.
This commit is contained in:
Sayak Paul
2024-12-30 14:03:56 +05:30
committed by GitHub
parent e9fba4ab7f
commit 191ea8b0cc
4 changed files with 12 additions and 2 deletions
+8
View File
@@ -79,6 +79,7 @@ class Args:
# Optimizer arguments
optimizer: str = "adamw"
use_8bit_bnb: bool = False
lr: float = 1e-4
scale_lr: bool = False
lr_scheduler: str = "cosine_with_restarts"
@@ -166,6 +167,7 @@ class Args:
},
"optimizer_arguments": {
"optimizer": self.optimizer,
"use_8bit_bnb": self.use_8bit_bnb,
"lr": self.lr,
"scale_lr": self.scale_lr,
"lr_scheduler": self.lr_scheduler,
@@ -532,6 +534,11 @@ def _add_optimizer_arguments(parser: argparse.ArgumentParser) -> None:
choices=["adam", "adamw"],
help=("The optimizer type to use."),
)
parser.add_argument(
"--use_8bit_bnb",
action="store_true",
help=("Whether to use 8bit variant of the `--optimizer` using `bitsandbytes`."),
)
parser.add_argument(
"--beta1",
type=float,
@@ -741,6 +748,7 @@ def _map_to_args_type(args: Dict[str, Any]) -> Args:
# Optimizer arguments
result_args.optimizer = args.optimizer or "adamw"
result_args.use_8bit_bnb = args.use_8bit_bnb
result_args.lr = args.lr or 1e-4
result_args.scale_lr = args.scale_lr
result_args.lr_scheduler = args.lr_scheduler