Bitsandbytes 文档
LARS
并获得增强的文档体验
开始使用
LARS
LARS (Layer-wise Adaptive Rate Scaling) 是一种专为大批量训练设计的优化器,旨在加速训练过程。LARS 为每个*层*而不是每个参数使用单独的学习率。该学习率是通过层中权重和梯度范数之间的*信任比*来计算的。这有助于校准一个稳定的更新幅度。
LARS
class bitsandbytes.optim.LARS
< 源码 >( params lr momentum = 0 dampening = 0 weight_decay = 0 nesterov = False optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 max_unorm = 0.02 )
__init__
< 源码 >( params lr momentum = 0 dampening = 0 weight_decay = 0 nesterov = False optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 max_unorm = 0.02 )
参数
- params (
torch.tensor
) — 待优化的输入参数。 - lr (
float
) — 学习率。 - momentum (
float
, 默认为 0) — 动量值通过采取更大的步长来加速优化器。 - dampening (
float
, 默认为 0) — 阻尼值减小优化器的动量。 - weight_decay (
float
, 默认为 1e-2) — 优化器的权重衰减值。 - nesterov (
bool
, 默认为 `False`) — 是否使用 Nesterov 动量。 - optim_bits (
int
, 默认为 32) — 优化器状态的位数。 - args (
object
, 默认为 `None`) — 包含附加参数的对象。 - min_8bit_size (
int
, 默认为 4096) — 8位优化中参数张量的最小元素数量。 - percentile_clipping (
int
, 默认为 100) — 通过跟踪最近 100 个梯度范数,并在特定百分位数处对梯度进行裁剪来自动调整裁剪阈值,以提高稳定性。 - max_unorm (
float
, 默认为 0.02) — 最大梯度范数。
基础 LARS 优化器。
LARS8bit
class bitsandbytes.optim.LARS8bit
< 源码 >( params lr momentum = 0 dampening = 0 weight_decay = 0 nesterov = False args = None min_8bit_size = 4096 percentile_clipping = 100 max_unorm = 0.02 )
__init__
< 源码 >( params lr momentum = 0 dampening = 0 weight_decay = 0 nesterov = False args = None min_8bit_size = 4096 percentile_clipping = 100 max_unorm = 0.02 )
参数
- params (
torch.tensor
) — 待优化的输入参数。 - lr (
float
) — 学习率。 - momentum (
float
, 默认为 0) — 动量值通过采取更大的步长来加速优化器。 - dampening (
float
, 默认为 0) — 阻尼值减小优化器的动量。 - weight_decay (
float
, 默认为 1e-2) — 优化器的权重衰减值。 - nesterov (
bool
, 默认为 `False`) — 是否使用 Nesterov 动量。 - args (
object
, 默认为 `None`) — 包含附加参数的对象。 - min_8bit_size (
int
, 默认为 4096) — 8位优化中参数张量的最小元素数量。 - percentile_clipping (
int
, 默认为 100) — 通过跟踪最近 100 个梯度范数,并在特定百分位数处对梯度进行裁剪来自动调整裁剪阈值,以提高稳定性。 - max_unorm (
float
, 默认为 0.02) — 最大梯度范数。
8位 LARS 优化器。
LARS32bit
class bitsandbytes.optim.LARS32bit
< 源码 >( params lr momentum = 0 dampening = 0 weight_decay = 0 nesterov = False args = None min_8bit_size = 4096 percentile_clipping = 100 max_unorm = 0.02 )
__init__
< 源码 >( params lr momentum = 0 dampening = 0 weight_decay = 0 nesterov = False args = None min_8bit_size = 4096 percentile_clipping = 100 max_unorm = 0.02 )
参数
- params (
torch.tensor
) — 待优化的输入参数。 - lr (
float
) — 学习率。 - momentum (
float
, 默认为 0) — 动量值通过采取更大的步长来加速优化器。 - dampening (
float
, 默认为 0) — 阻尼值减小优化器的动量。 - weight_decay (
float
, 默认为 1e-2) — 优化器的权重衰减值。 - nesterov (
bool
, 默认为 `False`) — 是否使用 Nesterov 动量。 - args (
object
, 默认为 `None`) — 包含附加参数的对象。 - min_8bit_size (
int
, 默认为 4096) — 8位优化中参数张量的最小元素数量。 - percentile_clipping (
int
, 默认为 100) — 通过跟踪最近 100 个梯度范数,并在特定百分位数处对梯度进行裁剪来自动调整裁剪阈值,以提高稳定性。 - max_unorm (
float
, 默认为 0.02) — 最大梯度范数。
32位 LARS 优化器。