Bitsandbytes 文件

嵌入

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

嵌入

嵌入類用於從索引中儲存和檢索詞嵌入。bitsandbytes 中有兩種型別的嵌入,標準的 PyTorch Embedding 類和 StableEmbedding 類。

StableEmbedding 類是在透過分塊量化的 8 位最佳化器論文中引入的,旨在減少因輸入詞元分佈不均而導致的梯度方差。該類設計用於支援量化。

Embedding

class bitsandbytes.nn.Embedding

< >

( num_embeddings: int embedding_dim: int padding_idx: typing.Optional[int] = None max_norm: typing.Optional[float] = None norm_type: float = 2.0 scale_grad_by_freq: bool = False sparse: bool = False _weight: typing.Optional[torch.Tensor] = None device: typing.Optional[torch.device] = None )

用於從索引中儲存和檢索詞嵌入的嵌入類。

__init__

< >

( num_embeddings: int embedding_dim: int padding_idx: typing.Optional[int] = None max_norm: typing.Optional[float] = None norm_type: float = 2.0 scale_grad_by_freq: bool = False sparse: bool = False _weight: typing.Optional[torch.Tensor] = None device: typing.Optional[torch.device] = None )

引數

  • num_embeddings (int) — 唯一嵌入的數量(詞彙表大小)。
  • embedding_dim (int) — 嵌入的維度。
  • padding_idx (Optional[int]) — 在給定索引處用零填充輸出。
  • max_norm (Optional[float]) — 將嵌入重新歸一化,使其具有最大的 L2 範數。
  • norm_type (float, 預設為 2.0) — 為 max_norm 選項計算的 p-範數。
  • scale_grad_by_freq (bool, 預設為 False) — 在反向傳播過程中按頻率縮放梯度。
  • sparse (bool, 預設為 False) — 計算密集梯度。設定為 True 以計算稀疏梯度。
  • _weight (Optional[Tensor]) — 預訓練的嵌入。

StableEmbedding

class bitsandbytes.nn.StableEmbedding

< >

( num_embeddings: int embedding_dim: int padding_idx: typing.Optional[int] = None max_norm: typing.Optional[float] = None norm_type: float = 2.0 scale_grad_by_freq: bool = False sparse: bool = False _weight: typing.Optional[torch.Tensor] = None device = None dtype = None )

引數

  • norm (torch.nn.LayerNorm) — 嵌入後應用的層歸一化。

自定義嵌入層,旨在使用 32 位最佳化器狀態來提高自然語言處理任務訓練期間的穩定性。它旨在減少量化可能導致的梯度變化。該嵌入層使用 Xavier 均勻初始化,然後進行層歸一化。

示例

# Initialize StableEmbedding layer with vocabulary size 1000, embedding dimension 300
embedding_layer = StableEmbedding(num_embeddings=1000, embedding_dim=300)

# Reset embedding parameters
embedding_layer.reset_parameters()

# Perform a forward pass with input tensor
input_tensor = torch.tensor([1, 2, 3])
output_embedding = embedding_layer(input_tensor)

方法: reset_parameters(): 使用 Xavier 均勻初始化重置嵌入引數。 forward(input: Tensor) -> Tensor: 透過穩定嵌入層的前向傳播。

__init__

< >

( num_embeddings: int embedding_dim: int padding_idx: typing.Optional[int] = None max_norm: typing.Optional[float] = None norm_type: float = 2.0 scale_grad_by_freq: bool = False sparse: bool = False _weight: typing.Optional[torch.Tensor] = None device = None dtype = None )

引數

  • num_embeddings (int) — 唯一嵌入的數量(詞彙表大小)。
  • embedding_dim (int) — 嵌入的維度。
  • padding_idx (Optional[int]) — 在給定索引處用零填充輸出。
  • max_norm (Optional[float]) — 將嵌入重新歸一化,使其具有最大的 L2 範數。
  • norm_type (float, 預設為 2.0) — 為 max_norm 選項計算的 p-範數。
  • scale_grad_by_freq (bool, 預設為 False) — 在反向傳播過程中按頻率縮放梯度。
  • sparse (bool, 預設為 False) — 計算密集梯度。設定為 True 以計算稀疏梯度。
  • _weight (Optional[Tensor]) — 預訓練的嵌入。
< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.