Initialize Embedding. Args: num_embeddings: TODO. embedding_dim: Size/dimension parameter. r: TODO. lora_alpha: TODO. merge_weights: TODO. **kwargs: Additional keyword arguments.
(
self,
num_embeddings: int,
embedding_dim: int,
r: int = 0,
lora_alpha: int = 1,
merge_weights: bool = True,
**kwargs
)
| 41 | class Embedding(nn.Embedding, LoRALayer): |
| 42 | # LoRA implemented in a dense layer |
| 43 | def __init__( |
| 44 | self, |
| 45 | num_embeddings: int, |
| 46 | embedding_dim: int, |
| 47 | r: int = 0, |
| 48 | lora_alpha: int = 1, |
| 49 | merge_weights: bool = True, |
| 50 | **kwargs |
| 51 | ): |
| 52 | """Initialize Embedding. |
| 53 | |
| 54 | Args: |
| 55 | num_embeddings: TODO. |
| 56 | embedding_dim: Size/dimension parameter. |
| 57 | r: TODO. |
| 58 | lora_alpha: TODO. |
| 59 | merge_weights: TODO. |
| 60 | **kwargs: Additional keyword arguments. |
| 61 | """ |
| 62 | nn.Embedding.__init__(self, num_embeddings, embedding_dim, **kwargs) |
| 63 | LoRALayer.__init__( |
| 64 | self, r=r, lora_alpha=lora_alpha, lora_dropout=0, merge_weights=merge_weights |
| 65 | ) |
| 66 | # Actual trainable parameters |
| 67 | if r > 0: |
| 68 | self.lora_A = nn.Parameter(self.weight.new_zeros((r, num_embeddings))) |
| 69 | self.lora_B = nn.Parameter(self.weight.new_zeros((embedding_dim, r))) |
| 70 | self.scaling = self.lora_alpha / self.r |
| 71 | # Freezing the pre-trained weight matrix |
| 72 | self.weight.requires_grad = False |
| 73 | self.reset_parameters() |
| 74 | |
| 75 | def reset_parameters(self): |
| 76 | """Reset parameters.""" |
nothing calls this directly
no test coverage detected