Bitsandbytes 文档

AdamW

Hugging Face's logo
加入 Hugging Face 社区

并获得增强版文档体验

以开始使用

AdamW

AdamWAdam 优化器的变体,它将权重衰减从梯度更新中分离出来,原因是观察到权重衰减公式在应用到 SGDAdam 时不同。

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 )

参数

  • params (torch.tensor) —优化的输入参数。
  • lr (float,默认为 1e-3) —学习率。
  • eps (float,默认为 1e-8) — epsilon 值可防止优化器发生零除。
  • weight_decay (float,默认为 1e-2) — 优化器的权重衰减值。
  • optim_bits (int,默认为 32) —— 优化器状态的位数。
  • args (object,默认为 None) —— 带有附加参数的对象。
  • percentile_clipping (int,默认为 100) — 通过追踪最后 100 个梯度范数并裁剪在某个百分比的梯度来适应裁剪阈值,以提高稳定性。
  • block_wise (bool,默认为 True) — 是否独立量化每个块的张量,以减少离群值效应并提高稳定性。
  • is_paged (bool, defaults to False) — 是否是分页优化程序。

基本 AdamW 优化程序。

AdamW8bit

< >

( 参数 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 值是优化器一阶和二阶矩的衰减率。
  • weight_decay (float,默认为 1e-2) — 优化器的权重衰减值。
  • amsgrad (bool,默认为 False) — 是否使用 AMSGrad 变体,该变体使用最大过去平方梯度的变体。
  • optim_bits (int,默认为 32) — 优化器状态的位数。
  • args (object,默认为 None) — 一个包含附加参数的对象。
  • percentile_clipping int,默认为 100)——通过跟踪最近 100 个梯度范数并以特定百分比裁剪梯度以提高稳定性,自动调整裁剪阈值。
  • 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 )

__init__

  • params (torch.tensor) -- 要优化的输入参数。
  • lr (float, 默认为 1e-3) -- 学习率。
  • eps (float,默认为 1e-8) — 优化器中的 epsilon 值阻止除以零。
  • weight_decay (float,默认为 1e-2) — 优化器的权重衰减值。
  • amsgrad (bool,默认为 False) — 是否使用 AMSGrad 变体的 Adam,后者使用最大过去平方梯度替换。
  • optim_bits (int,默认为 32) — 优化器状态的位数。
  • args (object,默认为 None) — 一个具有其他参数的对象。
  • min_8bit_size (int,默认为 4096) — 8 位优化时,参数张量的元素的最小数量。
  • percentile_clipping (int,默认值为 100) — 通过跟踪最后 100 个梯度范数并以特定百分比裁剪梯度来自动调整裁剪阈值,以提高稳定性。
  • block_wise (bool,默认值为 True) — 是否独立量化每个张量块以减少离群值效应并提高稳定性。

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 值是优化器的一阶矩和二阶矩的衰减速率。
  • weight_decay (float, 默认为 1e-2) — 优化器的权重衰减值。
  • amsgrad (bool, 默认为 False) — 是否使用 Adam 的 AMSGrad 变体,该变体使用过去平方梯度的最大值来代替。
  • optim_bits (int,默认为 32) — 优化器状态的位数。
  • args (object,默认为 None) — 包含其他参数的对象。
  • percentile_clipping (int, 默认为 100) — 通过跟踪最后 100 个梯度范数并剪切一定百分比的梯度来自动调整剪切阈值,提高稳定性。
  • 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 )

参数

  • lr (浮点型,默认为 1e-3) — 学习速率。
  • 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 to False) — 是否将优化器视为分页优化器。

8 位分页 AdamW 优化器。

PagedAdamW32bit

< >

( 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) — 要优化输入参数。
  • betas (tuple(float, float);默认为 (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 个梯度范数和以一定百分位数剪切梯度来自动调整剪切阈值,以提高稳定性。
  • 分块 (bool,默认为 True) — 是否独立量化每个张量块以减少异常值影响并提高稳定性。
  • 分页 (bool,默认为 False) — 优化器是否为分页优化器。

分页 32 位 AdamW 优化器。

< > 更新 于 GitHub