AdamW
AdamW 是 Adam
优化器的变体,它将权重衰减从梯度更新中分离出来,原因是观察到权重衰减公式在应用到 SGD
和 Adam
时不同。
bitsandbytes 还支持分页优化器,它利用 CUDAs 统一内存,在 GPU 内存耗尽时将内存从 GPU 传输到 CPU。
AdamW
类 bitsandbytes.optim.AdamW
< 源代码 >( params lr = 0.001 betas = (0.9, 0.999) eps = 1e-08 weight_decay = 0.01 amsgrad = False optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True is_paged = False )
__init__
< 源代码 >( 参数 lr = 0.001 betas = (0.9, 0.999) eps = 1e-08 weight_decay = 0.01 amsgrad = False optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True is_paged = False )
基本 AdamW 优化程序。
AdamW8bit
__init__
< source > ( 参数 lr = 0.001 betas = (0.9, 0.999) eps = 1e-08 weight_decay = 0.01 amsgrad = False optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True is_paged = False )
参数
- 参数 (
torch.tensor
) — 要优化的输入参数。 - lr (
float
, 默认为 1e-3) — 学习率。 - betas (
tuple(float, float)
, 默认为 (0.9, 0.999)) — beta 值是优化器一阶和二阶矩的衰减率。 - amsgrad (
bool
,默认为False
) — 是否使用 AMSGrad 变体,该变体使用最大过去平方梯度的变体。 - optim_bits (
int
,默认为 32) — 优化器状态的位数。 - args (
object
,默认为None
) — 一个包含附加参数的对象。 - block_wise (
bool
,默认为True
)——是否独立量化每个张量块以减少异常值效应并提高稳定性。 - is_paged (
bool
,默认为False
)——优化器是否是分页优化器。
8 位 AdamW 优化器。
AdamW32bit
class bitsandbytes.optim.AdamW32bit
< 源代码 >( params lr = 0.001 betas = (0.9, 0.999) eps = 1e-08 weight_decay = 0.01 amsgrad = False optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True is_paged = False )
PagedAdamW
类 bitsandbytes.optim.PagedAdamW
< 源代码 >( params lr = 0.001 betas = (0.9, 0.999) eps = 1e-08 weight_decay = 0.01 amsgrad = False optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )
__init__
< 来源 > ( params lr = 0.001 betas = (0.9, 0.999) eps = 1e-08 weight_decay = 0.01 amsgrad = False optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )
参数
- params (
torch.tensor
) — 要优化的输入参数。 - lr (
float
, 默认为 1e-3) — 学习率。 - betas (
tuple(float, float)
, 默认为 (0.9, 0.999)) — beta 值是优化器的一阶矩和二阶矩的衰减速率。 - amsgrad (
bool
, 默认为False
) — 是否使用 Adam 的 AMSGrad 变体,该变体使用过去平方梯度的最大值来代替。 - optim_bits (
int
,默认为 32) — 优化器状态的位数。 - args (
object
,默认为None
) — 包含其他参数的对象。 - block_wise (
bool
, 默认为True
) — 是否独立量化每个张量块以减少离群点效应并提高稳定性。 - is_paged (
bool
,默认为False
) — 优化器是否是分页优化器。
分页 AdamW 优化器。
PagedAdamW8bit
类 bitsandbytes.optim.PagedAdamW8bit
< 源 >( params lr = 0.001 betas = (0.9, 0.999) eps = 1e-08 weight_decay = 0.01 amsgrad = False optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )
__init__
< 源 > ( params lr = 0.001 betas = (0.9, 0.999) eps = 1e-08 weight_decay = 0.01 amsgrad = False optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )
参数
- betas (
元组(浮点型,浮点型)
,默认为 (0.9, 0.999)) — beta 值是优化器一阶矩和二阶矩的衰减率。 - eps (
float
,默认值为 1e-8) — epsilon 值防止优化器出现除以零的情况。 - weight_decay (
float
,默认值为 1e-2) — 优化器的权重衰减值。 - amsgrad (
bool
,默认值False
) — 是否使用 Adam 的使用过去平方梯度的最大值而不是直接使用过去平方梯度的 AMSGrad 变体。 - optim_bits (
int
,默认值 32) — 优化器状态的位数。 - args (
object
,默认为None
) — 带有附加参数的对象。 - min_8bit_size (
int
,默认为 4096) — 8 位优化参数张量的元素的最小数量。 - percentile_clipping (
int
,默认为 100) — 通过追踪最近 100 个梯度范数并按某个百分比对梯度进行剪切来适应性调整剪切阈值,以提高稳定性。 - block_wise (
bool
,默认为True
) — 是否独立量化每个张量块,以减少异常值影响并提高稳定性。 - is_paged (
bool
, defaults toFalse
) — 是否将优化器视为分页优化器。
8 位分页 AdamW 优化器。
PagedAdamW32bit
__init__
< 源代码 > ( params lr = 0.001 betas = (0.9, 0.999) eps = 1e-08 weight_decay = 0.01 amsgrad = False optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )
参数
- params (
torch.tensor
) — 要优化输入参数。 - eps (
float
;默认为 1e-8) —epsilon 值可以防止优化器出现零除。 - weight_decay (
float
, 默认值为 1e-2) — 优化器的权值衰减值。 - amsgrad (
bool
, 默认值为False
) — 是否使用 Adam 的 AMSGrad 变体,后者使用过去平方梯度的最大值。 - optim_bits (
int
,默认为 32) — 优化器状态的位数。 - args (
object
,默认为None
) — 包含附加参数的对象。 - min_8bit_size (
int
,默认为 4096) — 参数张量的 8 位优化元素的最小数。 - percentile_clipping (
int
,默认为 100) — 通过跟踪最后 100 个梯度范数和以一定百分位数剪切梯度来自动调整剪切阈值,以提高稳定性。 - 分块 (
bool
,默认为True
) — 是否独立量化每个张量块以减少异常值影响并提高稳定性。 - 分页 (
bool
,默认为False
) — 优化器是否为分页优化器。
分页 32 位 AdamW 优化器。