Views
No views yet
1import torch
2from transformers import BertModel, BertTokenizerFast
3
4
5tokenizer = BertTokenizerFast.from_pretrained("sartifyllc/AviLaBSE")
6model = BertModel.from_pretrained("sartifyllc/AviLaBSE")
7model = model.eval()
8
9english_sentences = [
10 "dog",
11 "Puppies are nice.",
12 "I enjoy taking long walks along the beach with my dog.",
13]
14english_inputs = tokenizer(english_sentences, return_tensors="pt", padding=True)
15
16with torch.no_grad():
17 english_outputs = model(**english_inputs)english_embeddings = english_outputs.pooler_output1swahili_sentences = [
2 "mbwa",
3 "Mbwa ni mzuri.",
4 "Ninafurahia kutembea kwa muda mrefu kando ya pwani na mbwa wangu.",
5]
6zulu_sentences = [
7 "inja",
8 "Inja iyavuma.",
9 "Ngithanda ukubhema izinyawo ezidlula emanzini nabanye nomfana wami.",
10]
11
12igbo_sentences = [
13 "nwa nkịta",
14 "Nwa nkịta dị ọma.",
15 "Achọrọ m gaa n'okirikiri na ụzọ nke oke na mgbidi na nwa nkịta m."
16]
17
18swahili_inputs = tokenizer(swahili_sentences, return_tensors="pt", padding=True)
19zulu_inputs = tokenizer(zulu_sentences, return_tensors="pt", padding=True)
20igbo_inputs=tokenizer(igbo_sentences, return_tensors="pt", padding=True)
21
22with torch.no_grad():
23 swahili_outputs = model(**swahili_inputs)
24 zulu_outputs = model(**zulu_inputs)
25 igbo_outputs =model(**igbo_inputs)
26
27swahili_embeddings = swahili_outputs.pooler_output
28zulu_embeddings = zulu_outputs.pooler_output
29igbo_embeddings=igbo_outputs.pooler_output1import torch.nn.functional as F
2
3def similarity(embeddings_1, embeddings_2):
4 normalized_embeddings_1 = F.normalize(embeddings_1, p=2)
5 normalized_embeddings_2 = F.normalize(embeddings_2, p=2)
6 return torch.matmul(
7 normalized_embeddings_1, normalized_embeddings_2.transpose(0, 1)
8 )
9
10
11print(similarity(english_embeddings, swahili_embeddings))
12print(similarity(english_embeddings, zulu_embeddings))
13print(similarity(swahili_embeddings, igbo_embeddings))SentenceTransformer(
(0): Transformer({'max_seq_length': 256, 'do_lower_case': False}) with Transformer model: BertModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
(2): Dense({'in_features': 768, 'out_features': 768, 'bias': True, 'activation_function': 'torch.nn.modules.activation.Tanh'})
(3): Normalize()
)