Bitsandbytes 文件
Adam
並獲得增強的文件體驗
開始使用
Adam
Adam(自適應矩估計)是一種自適應學習率最佳化器,結合了 `SGD` 的動量和 `RMSprop` 的思想來自動縮放學習率。
- 使用過去梯度的加權平均值來提供方向(一階矩)
- 使用過去梯度的*平方*的加權平均值來為每個引數調整學習率(二階矩)
bitsandbytes 還支援分頁最佳化器,當 GPU 記憶體耗盡時,該最佳化器利用 CUDA 的統一記憶體將記憶體從 GPU 轉移到 CPU。
Adam
class bitsandbytes.optim.Adam
< 來源 >( 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 )
__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
) — 是否使用 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
class bitsandbytes.optim.Adam8bit
< 來源 >( 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 )
__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
) — 是否使用 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
) — 最佳化器是否是分頁最佳化器。
8 位 Adam 最佳化器。
Adam32bit
class bitsandbytes.optim.Adam32bit
< 來源 >( 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 )
__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
) — 是否使用 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
) — 最佳化器是否是分頁最佳化器。
32 位 Adam 最佳化器。
PagedAdam
class bitsandbytes.optim.PagedAdam
< 來源 >( 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 )
__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
) — 是否使用 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 最佳化器。
PagedAdam8bit
class bitsandbytes.optim.PagedAdam8bit
< 原始碼 >( 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 )
__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
) — 是否使用 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
) — 最佳化器是否為分頁最佳化器。
8 位分頁 Adam 最佳化器。
PagedAdam32bit
class bitsandbytes.optim.PagedAdam32bit
< 原始碼 >( 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 )
__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
) — 是否使用 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
) — 最佳化器是否為分頁最佳化器。
32 位分頁 Adam 最佳化器。