Spaces:
Sleeping
Sleeping
| import torch | |
| import torch.nn as nn | |
| import torch.nn.functional as F | |
| from transformers import RobertaModel | |
| class LightweightModel(nn.Module): | |
| def __init__(self, model_name="microsoft/codebert-base", proj_dim=128): | |
| super().__init__() | |
| self.bert = RobertaModel.from_pretrained(model_name) | |
| self.projector = nn.Linear(self.bert.config.hidden_size, proj_dim) | |
| def encode(self, ids, mask): | |
| h = self.bert(ids, mask).last_hidden_state[:, 0, :] | |
| p = self.projector(h) | |
| return F.normalize(p, dim=-1) | |
| def forward(self, ids, mask): | |
| return self.encode(ids, mask) | |