import torch from torch.nn import functional as F from transformers.models.mistral.modeling_mistral import MistralForSequenceClassification class NormalizedLinear(torch.nn.Linear): def forward(self, x): x = F.normalize(x, p=2, dim=-1) return super().forward(x) class MistralForAttributePrediction(MistralForSequenceClassification): def __init__(self, config): super().__init__(config) del self.score self.score = NormalizedLinear(config.hidden_size, config.num_labels, bias=True) # Initialize weights and apply final processing self.post_init()