Bitsandbytes 文档
Lion
并获得增强的文档体验
开始使用
Lion
Lion(Evolved Sign Momentum) 是一款独特的优化器,它使用梯度的符号来确定动量的更新方向。这使得 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
,默认为 4096) — 8位优化中参数张量的最小元素数量。 - percentile_clipping (
int
,默认为 100) — 通过跟踪最近的100个梯度范数并在某个百分位裁剪梯度来自动调整裁剪阈值,以提高稳定性。 - block_wise (
bool
, 默认为True
) — 是否独立量化每个张量块,以减少异常值效应并提高稳定性。
Paged Lion 优化器。
PagedLion8bit
class bitsandbytes.optim.PagedLion8bit
< source >( 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__
< source >( 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
, 默认为 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
) — 是否独立量化每个张量块,以减少异常值效应并提高稳定性。
Paged 8-bit Lion 优化器。
PagedLion32bit
class bitsandbytes.optim.PagedLion32bit
< source >( 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__
< source >( 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
, 默认为 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
) — 是否独立量化每个张量块,以减少异常值效应并提高稳定性。
Paged 32-bit Lion 优化器。