Views
No views yet
| Model Name | Metric | FRIDA | BERTA-uncased | BERTA | rubert-mini-frida | multilingual-e5-large-instruct | multilingual-e5-large |
|---|---|---|---|---|---|---|---|
| CEDRClassification | Accuracy | 0.646 | 0.619 | 0.730 | 0.552 | 0.500 | 0.448 |
| GeoreviewClassification | Accuracy | 0.577 | 0.553 | 0.548 | 0.464 | 0.559 | 0.497 |
| GeoreviewClusteringP2P | V-measure | 0.783 | 0.745 | 0.738 | 0.698 | 0.743 | 0.605 |
| HeadlineClassification | Accuracy | 0.890 | 0.889 | 0.891 | 0.880 | 0.862 | 0.758 |
| InappropriatenessClassification | Accuracy | 0.783 | 0.745 | 0.748 | 0.698 | 0.655 | 0.616 |
| KinopoiskClassification | Accuracy | 0.705 | 0.684 | 0.678 | 0.595 | 0.661 | 0.566 |
| RiaNewsRetrieval | NDCG@10 | 0.868 | 0.829 | 0.816 | 0.721 | 0.824 | 0.807 |
| RuBQReranking | MAP@10 | 0.771 | 0.749 | 0.752 | 0.711 | 0.717 | 0.756 |
| RuBQRetrieval | NDCG@10 | 0.724 | 0.710 | 0.710 | 0.654 | 0.692 | 0.741 |
| RuReviewsClassification | Accuracy | 0.751 | 0.724 | 0.723 | 0.658 | 0.686 | 0.653 |
| RuSTSBenchmarkSTS | Pearson correlation | 0.814 | 0.816 | 0.822 | 0.803 | 0.840 | 0.831 |
| RuSciBenchGRNTIClassification | Accuracy | 0.699 | 0.695 | 0.690 | 0.625 | 0.651 | 0.582 |
| RuSciBenchGRNTIClusteringP2P | V-measure | 0.670 | 0.657 | 0.650 | 0.586 | 0.622 | 0.520 |
| RuSciBenchOECDClassification | Accuracy | 0.546 | 0.553 | 0.548 | 0.493 | 0.502 | 0.445 |
| RuSciBenchOECDClusteringP2P | V-measure | 0.566 | 0.557 | 0.556 | 0.507 | 0.528 | 0.450 |
| SensitiveTopicsClassification | Accuracy | 0.398 | 0.404 | 0.399 | 0.373 | 0.323 | 0.257 |
| TERRaClassification | Average Precision | 0.665 | 0.651 | 0.657 | 0.606 | 0.639 | 0.584 |
| Model Name | Metric | FRIDA | BERTA-uncased | BERTA | rubert-mini-frida | multilingual-e5-large-instruct | multilingual-e5-large |
|---|---|---|---|---|---|---|---|
| Classification | Accuracy | 0.707 | 0.699 | 0.697 | 0.631 | 0.654 | 0.588 |
| Clustering | V-measure | 0.673 | 0.653 | 0.648 | 0.597 | 0.631 | 0.525 |
| MultiLabelClassification | Accuracy | 0.522 | 0.512 | 0.565 | 0.463 | 0.412 | 0.353 |
| PairClassification | Average Precision | 0.665 | 0.651 | 0.657 | 0.606 | 0.639 | 0.584 |
| Reranking | MAP@10 | 0.771 | 0.749 | 0.752 | 0.711 | 0.717 | 0.756 |
| Retrieval | NDCG@10 | 0.796 | 0.770 | 0.763 | 0.687 | 0.758 | 0.774 |
| STS | Pearson correlation | 0.814 | 0.816 | 0.822 | 0.803 | 0.840 | 0.831 |
| Average | Average | 0.707 | 0.693 | 0.701 | 0.643 | 0.664 | 0.630 |
transformers:1import torch
2import torch.nn.functional as F
3from transformers import AutoTokenizer, AutoModel
4
5
6def pool(hidden_state, mask, pooling_method="mean"):
7 if pooling_method == "mean":
8 s = torch.sum(hidden_state * mask.unsqueeze(-1).float(), dim=1)
9 d = mask.sum(axis=1, keepdim=True).float()
10 return s / d
11 elif pooling_method == "cls":
12 return hidden_state[:, 0]
13
14inputs = [
15 #
16 "paraphrase: В Ярославской области разрешили работу бань, но без посетителей",
17 "categorize_entailment: Женщину доставили в больницу, за ее жизнь сейчас борются врачи.",
18 "search_query: Сколько программистов нужно, чтобы вкрутить лампочку?",
19 #
20 "paraphrase: Ярославским баням разрешили работать без посетителей",
21 "categorize_entailment: Женщину спасают врачи.",
22 "search_document: Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование."
23]
24
25tokenizer = AutoTokenizer.from_pretrained("sergeyzh/BERTA-uncased")
26model = AutoModel.from_pretrained("sergeyzh/BERTA-uncased")
27
28tokenized_inputs = tokenizer(inputs, max_length=512, padding=True, truncation=True, return_tensors="pt")
29
30with torch.no_grad():
31 outputs = model(**tokenized_inputs)
32
33embeddings = pool(
34 outputs.last_hidden_state,
35 tokenized_inputs["attention_mask"],
36 pooling_method="mean"
37)
38
39embeddings = F.normalize(embeddings, p=2, dim=1)
40sim_scores = embeddings[:3] @ embeddings[3:].T
41print(sim_scores.diag().tolist())
42
43# [0.9447306990623474, 0.8616577386856079, 0.7869422435760498]
44# [0.9530372023582458, 0.866746723651886, 0.7839133143424988] - BERTA
45# [0.9360030293464661, 0.8591322302818298, 0.728583037853241] - FRIDAsentence_transformers (sentence-transformers>=2.4.0):1from sentence_transformers import SentenceTransformer
2
3# loads model with mean pooling
4model = SentenceTransformer("sergeyzh/BERTA-uncased")
5
6paraphrase = model.encode(["В Ярославской области разрешили работу бань, но без посетителей", "Ярославским баням разрешили работать без посетителей"], prompt="paraphrase: ")
7print(paraphrase[0] @ paraphrase[1].T)
8# 0.9447306
9# 0.9530372 - BERTA
10# 0.9360032 - FRIDA
11
12categorize_entailment = model.encode(["Женщину доставили в больницу, за ее жизнь сейчас борются врачи.", "Женщину спасают врачи."], prompt="categorize_entailment: ")
13print(categorize_entailment[0] @ categorize_entailment[1].T)
14# 0.86165774
15# 0.8667469
16# 0.8591322 - FRIDA
17
18query_embedding = model.encode("Сколько программистов нужно, чтобы вкрутить лампочку?", prompt="search_query: ")
19document_embedding = model.encode("Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование.", prompt="search_document: ")
20print(query_embedding @ document_embedding.T)
21# 0.78694224
22# 0.7839136 - BERTA
23# 0.7285831 - FRIDA