| 192 | class LabelEmbedding(Module): |
| 193 | |
| 194 | def __init__(self, |
| 195 | num_classes: int, |
| 196 | hidden_size: int, |
| 197 | dropout_prob: float = 0.0, |
| 198 | mapping=Mapping(), |
| 199 | dtype=None): |
| 200 | super().__init__() |
| 201 | use_cfg_embedding = dropout_prob > 0 |
| 202 | self.embedding_table = Embedding(num_classes + use_cfg_embedding, |
| 203 | hidden_size, |
| 204 | tp_size=mapping.tp_size, |
| 205 | tp_group=mapping.tp_group, |
| 206 | dtype=dtype) |
| 207 | self.num_classes = num_classes |
| 208 | |
| 209 | def token_drop(self, labels: Tensor, force_drop_ids: Tensor): |
| 210 | labels = where(force_drop_ids == 1, self.num_classes, labels) |