Bitsandbytes 文档

亚当

Hugging Face's logo
加入Hugging Face社区

并获取增强的文档体验

开始使用

Adam

Adam (自适应动量估计)是一种自适应学习率优化器,结合了SGD的动量与RMSprop的概念来自动缩放学习率

  • 历史梯度的加权平均值提供方向(一阶矩)
  • 历史平方梯度的加权平均值以适应每个参数的学习率(二阶矩)

bitsandbytes还支持分页优化器,利用CUDA的统一内存,在GPU内存耗尽时将内存从GPU传输到CPU。

Adam

bitsandbytes.optim.Adam

< >

params(参数),lr(学习率) = 0.001,betas(Beta值) = (0.9, 0.999),eps(epsilon值) = 1e-08,weight_decay(权重衰减) = 0,amsgrad(AmsGrad标志) = False,optim_bits(优化位宽度) = 32,args(额外参数) = None,min_8bit_size(最小8位精度大小) = 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 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)) — 优化器的一阶和二阶动量的衰减率。
  • eps (float,默认为1e-8) — 防止优化器中除以零的epsilon值。
  • weight_decay (float,默认为0.0) — 优化器的权重衰减值。
  • 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) — 是否是分页优化器。

基础Adam优化器。

Adam8bit

bitsandbytes.optim.Adam8bit

< >

params(参数),lr(学习率) = 0.001,betas(Beta值) = (0.9, 0.999),eps(epsilon值) = 1e-08,weight_decay(权重衰减) = 0,amsgrad(AmsGrad标志) = False,optim_bits(优化位宽度) = 32,args(额外参数) = None,min_8bit_size(最小8位精度大小) = 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 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(《元组(float, float)》默认为(0.9, 0.999))——这些beta值是优化器第一和第二阶矩的衰减率。
  • eps(《float》默认为1e-8)——防止优化器中除以零的epsilon值。
  • weight_decay(《float》默认为0.0)——优化器的权重衰减值。
  • amsgrad(《bool》默认为False)——是否使用使用过去平方梯度最大值的AMSGrad变体Adma。
  • 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位Adam优化器。

Adam32bit

bitsandbytes.optim.Adam32bit

< >

params(参数),lr(学习率) = 0.001,betas(Beta值) = (0.9, 0.999),eps(epsilon值) = 1e-08,weight_decay(权重衰减) = 0,amsgrad(AmsGrad标志) = False,optim_bits(优化位宽度) = 32,args(额外参数) = None,min_8bit_size(最小8位精度大小) = 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 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, defaults to 1e-3) — 学习率。
  • betas (tuple(float, float), defaults to (0.9, 0.999)) — 优化器的一阶和二阶矩的衰减率。
  • eps (float, 默认值为 1e-8) — 这个 epsilon 值可以防止优化器中除以零的情况。
  • weight_decay (float, 默认值为 0.0) — 优化器的权重衰减值。
  • amsgrad (bool, 默认值为 False) — 是否使用使用过去平方梯度的最大值的 AMSGrad 变体。
  • optim_bits (int, 默认值为 32) — 优化器状态的位数。
  • 参数(object,默认为 None)——一个包含额外参数的对象。
  • 最小_8位大小(int,默认为 4096)——8位优化参数张量元素的最小数量。
  • 百分位剪裁(int,默认为 100)——通过跟踪最后的100个梯度范数来自动调整剪裁阈值,并在某个百分位数处剪裁梯度以改进稳定性。
  • 块级(bool,默认为 True)——是否独立量化每个张量块以减少异常值影响并提高稳定性。
  • is_paged (bool, 默认为 False) — 是否为分页优化器。

32位Adam优化器。

PagedAdam

bitsandbytes.optim.PagedAdam

< >

params(参数),lr(学习率) = 0.001,betas(Beta值) = (0.9, 0.999),eps(epsilon值) = 1e-08,weight_decay(权重衰减) = 0,amsgrad(AmsGrad标志) = False,optim_bits(优化位宽度) = 32,args(额外参数) = None,min_8bit_size(最小8位精度大小) = 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 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, 默认为 0.0) — 优化器的权重衰减值。
  • 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) — 是否独立量化每个张量块以减少异常值的影响并提高稳定性。
  • is_paged (bool, 默认为 False) — 优化器是否是分页优化器。

分页Adam优化器。

PagedAdam8bit

bitsandbytes.optim.PagedAdam8bit

< >

params(参数),lr(学习率) = 0.001,betas(Beta值) = (0.9, 0.999),eps(epsilon值) = 1e-08,weight_decay(权重衰减) = 0,amsgrad(AmsGrad标志) = False,optim_bits(优化位宽度) = 32,args(额外参数) = None,min_8bit_size(最小8位精度大小) = 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 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)) — 优化器的第一和第二阶矩的衰减率。
  • eps (float, 默认为 1e-8) — 在优化器中防止除以零的epsilon值。
  • weight_decay (float, 默认为 0.0) — 优化器的权重衰减值。
  • amsgradbool,默认为 False)— 是否使用 Adam 的 AMSGrad 变体,该变体使用过去梯度平方的最大值。
  • optim_bitsint,默认为 32)— 优化器状态的比特数。
  • argsobject,默认为 None)— 包含额外参数的对象。
  • min_8bit_sizeint,默认为 4096)— 8 位优化参数张量元素的最小数量。
  • percentile_clipping (int, 默认值 100) — 通过跟踪最后的 100 个梯度范数来自动调整裁剪阈值,并在某个百分位数处裁剪梯度以改善稳定性。
  • block_wise (bool, 默认值 True) — 是否独立量化每个张量块以减少异常值效应并提高稳定性。
  • is_paged (bool, 默认值 False) — 是否是分页优化器。

8 位分页 Adam 优化器。

PagedAdam32bit

bitsandbytes.optim.PagedAdam32bit

< >

params(参数),lr(学习率) = 0.001,betas(Beta值) = (0.9, 0.999),eps(epsilon值) = 1e-08,weight_decay(权重衰减) = 0,amsgrad(AmsGrad标志) = False,optim_bits(优化位宽度) = 32,args(额外参数) = None,min_8bit_size(最小8位精度大小) = 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 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) — 学习率。
  • betasfloat元组(float, float),默认为(0.9,0.999))——betas 值是优化器的一阶和二阶矩的衰减率。
  • epsfloat,默认为 1e-8)——epsilon 值防止优化器中除以零。
  • weight_decayfloat,默认为 0.0)——优化器的权重衰减值。
  • amsgrad (布尔值,默认为False) — 是否使用带有过去平方梯度的最大值的Adam变体,即AMSGrad。
  • optim_bits (整数,默认为32) — 优化器状态的位数。
  • args (对象,默认为None) — 带有附加参数的对象。
  • min_8bit_size (整数,默认为4096) — 8位优化参数张量元素的最小数量。
  • percentile_clipping (int, 默认值 100) — 通过跟踪最后 100 个梯度范数来自动调整截断阈值,并在一定百分位数处截断梯度以提高稳定性。
  • block_wise (bool, 默认值 True) — 是否独立量化每个张量块以减少异常值影响并提高稳定性。
  • is_paged (bool, 默认值 False) — 指示优化器是否为分页优化器。

分页 32 位 Adam 优化器。

< > 在GitHub上更新