Views
No views yet
1import torch.nn.functional as F
2
3from torch import Tensor
4from transformers import AutoTokenizer, AutoModel
5
6tokenizer = AutoTokenizer.from_pretrained('Metric-AI/armenian-text-embeddings-2-base')
7model = AutoModel.from_pretrained('Metric-AI/armenian-text-embeddings-2-base')
8
9
10def average_pool(last_hidden_states: Tensor,
11 attention_mask: Tensor) -> Tensor:
12 last_hidden = last_hidden_states.masked_fill(~attention_mask[..., None].bool(), 0.0)
13 return last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[..., None]
14
15
16# Each input text should start with "query: " or "passage: ", even for non-English texts.
17# For tasks other than retrieval, you can simply use the "query: " prefix.
18input_texts = [
19 'query: Ինչպե՞ս պատրաստել տոլմա', # How to make tolma
20 'query: Քանի՞ գրամ սպիտակուց է հարկավոր օրական', # How many grams of protein needed daily
21
22 """passage: Տոլմայի բաղադրատոմս՝
23 Բաղադրիչներ՝
24 - 500գ աղացած միս
25 - 1 բաժակ բրինձ
26 - Խաղողի տերևներ
27 - 2 գլուխ սոխ
28 - Համեմունքներ՝ աղ, սև պղպեղ, քարի
29
30 Պատրաստման եղանակը՝
31 1. Միսը խառնել բրնձի, մանր կտրատած սոխի և համեմունքների հետ
32 2. Խաղողի տերևները լվանալ և թողնել տաք ջրի մեջ 10 րոպե
33 3. Լցոնել տերևները և դասավորել կաթսայի մեջ
34 4. Եփել դանդաղ կրակի վրա 45-60 րոպե""", # Detailed tolma recipe
35
36 """passage: Սպիտակուցի օրական չափաբաժինը կախված է մարդու քաշից, սեռից և ֆիզիկական ակտիվությունից:
37 Միջին հաշվով, կանանց համար խորհուրդ է տրվում 46-50 գրամ սպիտակուց օրական:
38 Մարզիկների համար այս թիվը կարող է հասնել մինչև 1.6-2 գրամ մարմնի քաշի յուրաքանչյուր կիլոգրամի համար:
39 Հղիների համար պահանջվում է լրացուցիչ 25 գրամ սպիտակուց:
40
41 Սպիտակուցի հարուստ աղբյուրներ են՝
42 - Հավի միս (31գ/100գ)
43 - Ձու (13գ/100գ)
44 - Ոսպ (25գ/100գ)
45 - Մածուն (3.5գ/100գ)"""] # Detailed protein intake advice
46
47# Tokenize the input texts
48batch_dict = tokenizer(input_texts, max_length=512, padding=True, truncation=True, return_tensors='pt')
49outputs = model(**batch_dict)
50embeddings = average_pool(outputs.last_hidden_state, batch_dict['attention_mask'])
51
52# normalize embeddings
53embeddings = F.normalize(embeddings, p=2, dim=1)
54scores = (embeddings[:2] @ embeddings[2:].T) * 100
55print(scores.tolist())
56
57# [[80.32380676269531, 42.62339401245117], [44.12641525268555, 78.37036895751953]]1from sentence_transformers import SentenceTransformer
2model = SentenceTransformer('Metric-AI/armenian-text-embeddings-2-base')
3
4embeddings = model.encode(input_texts, normalize_embeddings=True)1@misc{armenian-text-embeddings-2-base,
2 author = {Navasardyan, Zaruhi and Bughdaryan, Spartak and Minasyan, Bagratuni and Davtyan, Hrant},
3 title = {Armenian-Text-Embeddings-2-base: Enhanced Armenian Language Embeddings},
4 year = {2026}
5}
6
7@inproceedings{navasardyan2026less,
8 title={Less is More: Adapting Text Embeddings for Low-Resource Languages with Small Scale Noisy Synthetic Data},
9 author={Navasardyan, Zaruhi and Bughdaryan, Spartak and Minasyan, Bagratuni and Davtyan, Hrant},
10 booktitle={Proceedings of the Workshop on Low-Resource Language Models (LoResLM) at EACL 2026},
11 year={2026},
12 url={https://arxiv.org/abs/2603.22290}
13}