Views
No views yet
cometadata/triplet_loss_for_embedding_affiliations_sample_11{
2 "model": "Alibaba-NLP/gte-multilingual-base",
3 "learning_rate": 1e-4,
4 "batch_size": 32,
5 "num_epochs": 3,
6 "margin": 1.0,
7 "warmup_steps": 30,
8 "optimizer": "AdamW",
9 "scheduler": "cosine"
10}pip install torch transformers1import torch
2import torch.nn.functional as F
3from transformers import AutoModel, AutoTokenizer
4
5class AffiliationEmbeddingModel(torch.nn.Module):
6 def __init__(self, model_path):
7 super().__init__()
8 self.model = AutoModel.from_pretrained(model_path, trust_remote_code=True)
9 self.tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
10 self.embedding_dim = 768
11
12 def tokenize(self, input_texts):
13 return self.tokenizer(
14 input_texts,
15 max_length=8192,
16 padding=True,
17 truncation=True,
18 return_tensors='pt'
19 )
20
21 def forward(self, **inputs):
22 outputs = self.model(**inputs)
23 embeddings = outputs.last_hidden_state[:, 0][:self.embedding_dim]
24 embeddings = F.normalize(embeddings, p=2, dim=1)
25 return embeddings
26
27# Load the model
28model = AffiliationEmbeddingModel("cometadata/affiliation-clustering-0.3b")
29model.eval()
30
31# Example affiliations
32affiliations = [
33 "Stanford University Department of Computer Science",
34 "Massachusetts Institute of Technology",
35 "Stanford University",
36 "University of California, Berkeley"
37]
38
39# Get embeddings
40with torch.no_grad():
41 tokens = model.tokenize(affiliations)
42 embeddings = model(**tokens)
43
44# Compute similarity
45similarities = [
46 (embeddings[0] @ embeddings[i]).item()
47 for i in range(1, len(embeddings))
48]
49print(similarities)
50# => [0.5692405700683594, 0.9963535666465759, 0.11983194202184677]loss = max(0, ||f(a) - f(p)||² - ||f(a) - f(n)||² + margin)f(a) = anchor embedding (target affiliation)f(p) = positive embedding (similar affiliation)f(n) = negative embedding (dissimilar affiliation)margin = 1.01@misc{affiliation-clustering-model,
2 title={Fine-tuned Multilingual Embedding Model for Academic Affiliation Clustering},
3 author={COMET},
4 year={2025},
5 howpublished={\\url{https://huggingface.co/cometadata/affiliation-clustering-0.3b/}},
6}