mirror of
https://github.com/storytold/FineTrainers-Conditioning.git
synced 2026-10-18 07:33:20 +00:00
[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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user