Bitsandbytes 文件
LAMB
並獲得增強的文件體驗
開始使用
LAMB
LAMB(分層自適應大批次最佳化)是一種自適應最佳化器,專為大批次訓練而設計,以加速訓練,結合了 LARS
和 Adam
的思想,可自動縮放每層的學習率。
- 計算層中權重範數和梯度範數之間的_信任比_,並裁剪該比率以防止過大或過小的更新。
- 使用一階矩和二階矩更新權重。
LAMB
class bitsandbytes.optim.LAMB
< 原始碼 >( params lr = 0.001 bias_correction = True betas = (0.9, 0.999) eps = 1e-08 weight_decay = 0 amsgrad = False adam_w_mode = True optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = False max_unorm = 1.0 )
__init__
< 原始碼 >( params lr = 0.001 bias_correction = True betas = (0.9, 0.999) eps = 1e-08 weight_decay = 0 amsgrad = False adam_w_mode = True optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = False max_unorm = 1.0 )
引數
- params (
torch.tensor
) — 要最佳化的輸入引數。 - lr (
float
, 預設為 1e-3) — 學習率。 - bias_correction (
bool
, 預設為True
) — 是否對一階矩和二階矩進行偏差校正。 - betas (
tuple(float, float)
, 預設為 (0.9, 0.999)) — beta 值是最佳化器一階矩和二階矩的衰減率。 - eps (
float
, 預設為 1e-8) — epsilon 值,用於防止最佳化器中出現除以零的情況。 - weight_decay (
float
, 預設為 1e-2) — 最佳化器的權重衰減值。 - amsgrad (
bool
, 預設為False
) — 是否使用 Adam 的 AMSGrad 變體,該變體使用過去平方梯度的最大值。 - adam_w_mode (
bool
, 預設為True
) — 是否使用 AdamW 變體。 - optim_bits (
int
, 預設為 32) — 最佳化器狀態的位數。 - args (
object
, 預設為None
) — 包含附加引數的物件。 - min_8bit_size (
int
, 預設為 4096) — 進行 8 位最佳化的引數張量的最小元素數量。 - percentile_clipping (
int
, 預設為 100) — 透過跟蹤最近 100 個梯度範數並以某個百分位數裁剪梯度來自動調整裁剪閾值,以提高穩定性。 - block_wise (
bool
, 預設為True
) — 是否獨立量化張量的每個塊,以減少異常值影響並提高穩定性。 - max_unorm (
float
, 預設為 1.0) — 最大梯度範數。
基礎 LAMB 最佳化器。
LAMB8bit
class bitsandbytes.optim.LAMB8bit
< 原始碼 >( params lr = 0.001 bias_correction = True betas = (0.9, 0.999) eps = 1e-08 weight_decay = 0 amsgrad = False adam_w_mode = True args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = False max_unorm = 1.0 )
__init__
< 原始碼 >( params lr = 0.001 bias_correction = True betas = (0.9, 0.999) eps = 1e-08 weight_decay = 0 amsgrad = False adam_w_mode = True args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = False max_unorm = 1.0 )
引數
- params (
torch.tensor
) — 要最佳化的輸入引數。 - lr (
float
, 預設為 1e-3) — 學習率。 - bias_correction (
bool
, 預設為True
) — 是否對一階矩和二階矩進行偏差校正。 - betas (
tuple(float, float)
, 預設為 (0.9, 0.999)) — beta 值是最佳化器一階矩和二階矩的衰減率。 - eps (
float
, 預設為 1e-8) — epsilon 值,用於防止最佳化器中出現除以零的情況。 - weight_decay (
float
, 預設為 1e-2) — 最佳化器的權重衰減值。 - amsgrad (
bool
, 預設為False
) — 是否使用 Adam 的 AMSGrad 變體,該變體使用過去平方梯度的最大值。 - adam_w_mode (
bool
, 預設為True
) — 是否使用 AdamW 變體。 - args (
object
, 預設為None
) — 包含附加引數的物件。 - min_8bit_size (
int
, 預設為 4096) — 進行 8 位最佳化的引數張量的最小元素數量。 - percentile_clipping (
int
, 預設為 100) — 透過跟蹤最近 100 個梯度範數並以某個百分位數裁剪梯度來自動調整裁剪閾值,以提高穩定性。 - block_wise (
bool
, 預設為True
) — 是否獨立量化張量的每個塊,以減少異常值影響並提高穩定性。 - max_unorm (
float
, 預設為 1.0) — 最大梯度範數。
8 位 LAMB 最佳化器。
LAMB32bit
class bitsandbytes.optim.LAMB32bit
< 原始碼 >( params lr = 0.001 bias_correction = True betas = (0.9, 0.999) eps = 1e-08 weight_decay = 0 amsgrad = False adam_w_mode = True args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = False max_unorm = 1.0 )
__init__
< 原始碼 >( params lr = 0.001 bias_correction = True betas = (0.9, 0.999) eps = 1e-08 weight_decay = 0 amsgrad = False adam_w_mode = True args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = False max_unorm = 1.0 )
引數
- params (
torch.tensor
) — 要最佳化的輸入引數。 - lr (
float
, 預設為 1e-3) — 學習率。 - bias_correction (
bool
, 預設為True
) — 是否對一階矩和二階矩進行偏差校正。 - betas (
tuple(float, float)
, 預設為 (0.9, 0.999)) — beta 值是最佳化器一階矩和二階矩的衰減率。 - eps (
float
, 預設為 1e-8) — epsilon 值,用於防止最佳化器中出現除以零的情況。 - weight_decay (
float
, 預設為 1e-2) — 最佳化器的權重衰減值。 - amsgrad (
bool
, 預設為False
) — 是否使用 Adam 的 AMSGrad 變體,該變體使用過去平方梯度的最大值。 - adam_w_mode (
bool
, 預設為True
) — 是否使用 AdamW 變體。 - args (
object
, 預設為None
) — 包含附加引數的物件。 - min_8bit_size (
int
, 預設為 4096) — 進行 8 位最佳化的引數張量的最小元素數量。 - percentile_clipping (
int
, 預設為 100) — 透過跟蹤最近 100 個梯度範數並以某個百分位數裁剪梯度來自動調整裁剪閾值,以提高穩定性。 - block_wise (
bool
, 預設為True
) — 是否獨立量化張量的每個塊,以減少異常值影響並提高穩定性。 - max_unorm (
float
, 預設為 1.0) — 最大梯度範數。
32 位 LAMB 最佳化器。