Bitsandbytes 文档

狮子

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

Lion

Lion (进化符号动量) 是一种独特的优化器,它使用梯度的符号来确定动量的更新方向。这使得 Lion 比 AdamW 更节省内存且速度更快,后者跟踪并存储一阶和二阶矩。

Lion

class bitsandbytes.optim.Lion

< >

( params lr = 0.0001 betas = (0.9, 0.99) weight_decay = 0 optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True is_paged = False )

__init__

< >

( params lr = 0.0001 betas = (0.9, 0.99) weight_decay = 0 optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True is_paged = False )

参数

  • params (torch.tensor) — 要优化的输入参数。
  • lr (float, 默认为 1e-4) — 学习率。
  • betas (tuple(float, float), 默认为 (0.9, 0.999)) — beta 值是优化器的一阶和二阶矩的衰减率。
  • weight_decay (float, 默认为 0) — 优化器的权重衰减值。
  • 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) — 优化器是否为分页优化器。

基础 Lion 优化器。

Lion8bit

class bitsandbytes.optim.Lion8bit

< >

( params lr = 0.0001 betas = (0.9, 0.99) weight_decay = 0 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True is_paged = False )

__init__

< >

( params lr = 0.0001 betas = (0.9, 0.99) weight_decay = 0 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True is_paged = False )

参数

  • params (torch.tensor) — 要优化的输入参数。
  • lr (float, 默认为 1e-4) — 学习率。
  • betas (tuple(float, float), 默认为 (0.9, 0.999)) — beta 值是优化器的一阶矩和二阶矩的衰减率。
  • weight_decay (float, 默认为 0) — 优化器的权重衰减值。
  • args (object, 默认为 None) — 包含附加参数的对象。
  • min_8bit_size (int, 默认为 4096) — 用于 8 位优化的参数张量的最小元素数量。
  • percentile_clipping (int, 默认为 100) — 通过跟踪最近 100 个梯度范数并按一定百分位数裁剪梯度来自动调整裁剪阈值,以提高稳定性。
  • block_wise (bool, 默认为 True) — 是否独立量化张量的每个块,以减少异常值影响并提高稳定性。
  • is_paged (bool, 默认为 False) — 优化器是否为分页优化器。

8 位 Lion 优化器。

Lion32bit

class bitsandbytes.optim.Lion32bit

< >

( params lr = 0.0001 betas = (0.9, 0.99) weight_decay = 0 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True is_paged = False )

__init__

< >

( params lr = 0.0001 betas = (0.9, 0.99) weight_decay = 0 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True is_paged = False )

参数

  • params (torch.tensor) — 要优化的输入参数。
  • lr (float, 默认为 1e-4) — 学习率。
  • betas (tuple(float, float), 默认为 (0.9, 0.999)) — beta 值是优化器的一阶矩和二阶矩的衰减率。
  • weight_decay (float, 默认为 0) — 优化器的权重衰减值。
  • args (object, 默认为 None) — 包含附加参数的对象。
  • min_8bit_size (int, 默认为 4096) — 用于 8 位优化的参数张量的最小元素数量。
  • percentile_clipping (int, 默认为 100) — 通过跟踪最近 100 个梯度范数并按一定百分位数裁剪梯度来自动调整裁剪阈值,以提高稳定性。
  • block_wise (bool, 默认为 True) — 是否独立量化张量的每个块,以减少异常值影响并提高稳定性。
  • is_paged (bool, 默认为 False) — 优化器是否为分页优化器。

32 位 Lion 优化器。

PagedLion

class bitsandbytes.optim.PagedLion

< >

( params lr = 0.0001 betas = (0.9, 0.99) weight_decay = 0 optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )

__init__

< >

( params lr = 0.0001 betas = (0.9, 0.99) weight_decay = 0 optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )

参数

  • params (torch.tensor) — 要优化的输入参数。
  • lr (float, 默认为 1e-4) — 学习率。
  • betas (tuple(float, float), 默认为 (0.9, 0.999)) — beta 值是优化器的一阶矩和二阶矩的衰减率。
  • weight_decay (float, 默认为 0) — 优化器的权重衰减值。
  • optim_bits (int, 默认为 32) — 优化器状态的位数。
  • args (object, 默认为 None) — 包含附加参数的对象。
  • min_8bit_size (int, defaults to 4096) — 8 位优化的参数张量的最小元素数量。
  • percentile_clipping (int, defaults to 100) — 通过跟踪最近 100 个梯度范数并在某个百分位数处裁剪梯度来自动调整裁剪阈值,以提高稳定性。
  • block_wise (bool, defaults to True) — 是否独立量化张量的每个块,以减少异常值影响并提高稳定性。

Paged Lion 优化器。

PagedLion8bit

class bitsandbytes.optim.PagedLion8bit

< >

( params lr = 0.0001 betas = (0.9, 0.99) weight_decay = 0 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )

__init__

< >

( params lr = 0.0001 betas = (0.9, 0.99) weight_decay = 0 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )

参数

  • params (torch.tensor) — 要优化的输入参数。
  • lr (float, defaults to 1e-4) — 学习率。
  • betas (tuple(float, float), defaults to (0.9, 0.999)) — beta 值是优化器的一阶矩和二阶矩的衰减率。
  • weight_decay (float, defaults to 0) — 优化器的权重衰减值。
  • optim_bits (int, defaults to 32) — 优化器状态的位数。
  • args (object, defaults to None) — 带有附加参数的对象。
  • min_8bit_size (int, defaults to 4096) — 8 位优化的参数张量的最小元素数量。
  • percentile_clipping (int, defaults to 100) — 通过跟踪最近 100 个梯度范数并在某个百分位数处裁剪梯度来自动调整裁剪阈值,以提高稳定性。
  • block_wise (bool, defaults to True) — 是否独立量化张量的每个块,以减少异常值影响并提高稳定性。

Paged 8 位 Lion 优化器。

PagedLion32bit

class bitsandbytes.optim.PagedLion32bit

< >

( params lr = 0.0001 betas = (0.9, 0.99) weight_decay = 0 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )

__init__

< >

( params lr = 0.0001 betas = (0.9, 0.99) weight_decay = 0 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )

参数

  • params (torch.tensor) — 要优化的输入参数。
  • lr (float, defaults to 1e-4) — 学习率。
  • betas (tuple(float, float), defaults to (0.9, 0.999)) — beta 值是优化器的一阶矩和二阶矩的衰减率。
  • weight_decay (float, defaults to 0) — 优化器的权重衰减值。
  • optim_bits (int, defaults to 32) — 优化器状态的位数。
  • args (object, defaults to None) — 带有附加参数的对象。
  • min_8bit_size (int, defaults to 4096) — 8 位优化的参数张量的最小元素数量。
  • percentile_clipping (int, defaults to 100) — 通过跟踪最近 100 个梯度范数并在某个百分位数处裁剪梯度来自动调整裁剪阈值,以提高稳定性。
  • block_wise (bool, defaults to True) — 是否独立量化张量的每个块,以减少异常值影响并提高稳定性。

Paged 32 位 Lion 优化器。

< > 在 GitHub 上更新