Bitsandbytes 文档

AdamW

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

AdamW

AdamWAdam 优化器的一种变体。其根据“权重衰减应用于 SGDAdam 时公式不同”这一观察,将权重衰减从梯度更新中分离出来。

bitsandbytes 还支持分页优化器,当 GPU 内存耗尽时,该优化器利用 CUDA 的统一内存将内存从 GPU 转移到 CPU。

AdamW

class 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__

< >

( 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 )

参数

  • params (torch.tensor) — 待优化的输入参数。
  • lr (float, 默认为 1e-3) — 学习率。
  • 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 个梯度范数并按特定百分位裁剪梯度来自动调整裁剪阈值,以提高稳定性。
  • block_wise (bool, 默认为 True) — 是否独立量化张量的每个块,以减少离群值的影响并提高稳定性。
  • is_paged (bool, 默认为 False) — 优化器是否是分页优化器。

基础 AdamW 优化器。

AdamW8bit

class bitsandbytes.optim.AdamW8bit

< >

( 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 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) — 学习率。
  • 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 个梯度范数并按特定百分位裁剪梯度来自动调整裁剪阈值,以提高稳定性。
  • 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 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) — 学习率。
  • 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 个梯度范数并按特定百分位裁剪梯度来自动调整裁剪阈值,以提高稳定性。
  • block_wise (bool, 默认为 True) — 是否独立量化张量的每个块,以减少离群值的影响并提高稳定性。
  • is_paged (bool, 默认为 False) — 优化器是否是分页优化器。

32 位 AdamW 优化器。

PagedAdamW

class 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 值是优化器一阶和二阶矩的衰减率。
  • 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, 默认为 False) — 优化器是否为分页优化器。

分页 AdamW 优化器。

PagedAdamW8bit

class 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 )

参数

  • params (torch.tensor) — 需要优化的输入参数。
  • lr (float, 默认为 1e-3) — 学习率。
  • 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 次的梯度范数,并在某个百分位数上裁剪梯度,从而自动调整裁剪阈值以提高稳定性。
  • block_wise (bool, 默认为 True) — 是否独立量化张量的每个块,以减少异常值的影响并提高稳定性。
  • is_paged (bool, 默认为 False) — 优化器是否为分页优化器。

分页 8 位 AdamW 优化器。

PagedAdamW32bit

class bitsandbytes.optim.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 )

__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 值是优化器一阶和二阶矩的衰减率。
  • 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, 默认为 False) — 优化器是否为分页优化器。

分页 32 位 AdamW 优化器。

< > 在 GitHub 上更新