DiTy commited on
Commit
8d7dc02
1 Parent(s): c7ba57f

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +47 -26
README.md CHANGED
@@ -6,15 +6,36 @@ tags:
6
  - feature-extraction
7
  - sentence-similarity
8
  - transformers
9
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  ---
11
 
12
- # DiTy/rubert-bi-encoder-russian-mmarcoRU
13
 
14
- This is a [sentence-transformers](https://www.SBERT.net) model: It maps sentences & paragraphs to a 768 dimensional dense vector space and can be used for tasks like clustering or semantic search.
 
 
 
15
 
16
  <!--- Describe your model here -->
17
 
 
18
  ## Usage (Sentence-Transformers)
19
 
20
  Using this model becomes easy when you have [sentence-transformers](https://www.SBERT.net) installed:
@@ -26,12 +47,20 @@ pip install -U sentence-transformers
26
  Then you can use the model like this:
27
 
28
  ```python
29
- from sentence_transformers import SentenceTransformer
30
- sentences = ["This is an example sentence", "Each sentence is converted"]
 
 
 
 
 
31
 
32
- model = SentenceTransformer('DiTy/rubert-bi-encoder-russian-mmarcoRU')
33
  embeddings = model.encode(sentences)
34
- print(embeddings)
 
 
 
35
  ```
36
 
37
 
@@ -52,14 +81,18 @@ def mean_pooling(model_output, attention_mask):
52
 
53
 
54
  # Sentences we want sentence embeddings for
55
- sentences = ['This is an example sentence', 'Each sentence is converted']
 
 
 
 
56
 
57
  # Load model from HuggingFace Hub
58
- tokenizer = AutoTokenizer.from_pretrained('DiTy/rubert-bi-encoder-russian-mmarcoRU')
59
- model = AutoModel.from_pretrained('DiTy/rubert-bi-encoder-russian-mmarcoRU')
60
 
61
  # Tokenize sentences
62
- encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
63
 
64
  # Compute token embeddings
65
  with torch.no_grad():
@@ -73,14 +106,6 @@ print(sentence_embeddings)
73
  ```
74
 
75
 
76
-
77
- ## Evaluation Results
78
-
79
- <!--- Describe how your model was evaluated -->
80
-
81
- For an automated evaluation of this model, see the *Sentence Embeddings Benchmark*: [https://seb.sbert.net](https://seb.sbert.net?model_name=DiTy/rubert-bi-encoder-russian-mmarcoRU)
82
-
83
-
84
  ## Training
85
  The model was trained with the parameters:
86
 
@@ -102,8 +127,8 @@ Parameters of the fit()-Method:
102
  ```
103
  {
104
  "epochs": 5,
105
- "evaluation_steps": 0,
106
- "evaluator": "NoneType",
107
  "max_grad_norm": 1,
108
  "optimizer_class": "<class 'torch.optim.adamw.AdamW'>",
109
  "optimizer_params": {
@@ -123,8 +148,4 @@ SentenceTransformer(
123
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel
124
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
125
  )
126
- ```
127
-
128
- ## Citing & Authors
129
-
130
- <!--- Describe where people can find more information -->
 
6
  - feature-extraction
7
  - sentence-similarity
8
  - transformers
9
+ - rubert
10
+ - bi-encoder
11
+ datasets:
12
+ - unicamp-dl/mmarco
13
+ language:
14
+ - ru
15
+ base_model: DeepPavlov/rubert-base-cased
16
+ widget:
17
+ - source_sentence: "определение новичка"
18
+ sentences:
19
+ - "Часть пятая: Посещение художественного музея. Для новичка посещение художественного музея может стать непростой задачей. Большинство музеев очень большие и требуют выносливости и хорошего чувства направления. Потратьте некоторое время на то, чтобы узнать больше о музее, прежде чем отправиться в путь, - лучший способ обеспечить более информативное и приятное посещение. ПРЕЖДЕ ЧЕМ ТЫ УЙДЕШЬ."
20
+ - "Определение новичка - это новичок или человек в начале чего-либо."
21
+ example_title: "Example 1"
22
+
23
+ - source_sentence: "какое состояние может определить тест с физической нагрузкой"
24
+ sentences:
25
+ - "Тест с физической нагрузкой разработан, чтобы выяснить, содержат ли одна или несколько коронарных артерий, питающих сердце, жировые отложения (бляшки), которые блокируют кровеносный сосуд на 70% или более. Для подтверждения результата часто требуется дополнительное тестирование. Результат испытаний."
26
+ - "Тест направлен на то, чтобы выяснить, не получает ли какой-либо участок сердечной мышцы достаточный кровоток во время тренировки. Он похож на тест с физической нагрузкой, фармакологический или химический стресс-тест. Он также известен при стресс-тесте таллием, сканировании перфузии миокарда или радионуклидном тесте."
27
+ example_title: "Example 2"
28
  ---
29
 
 
30
 
31
+ # DiTy/rubert-bi-encoder-mmarcoRU
32
+
33
+ This is a [sentence-transformers](https://www.SBERT.net) model based on a pre-trained [DeepPavlov/rubert-base-cased](https://huggingface.co/DeepPavlov/rubert-base-cased) and finetuned with [MS-MARCO Russian passage ranking dataset](https://huggingface.co/datasets/unicamp-dl/mmarco):
34
+ It maps sentences & paragraphs to a 768 dimensional dense vector space and can be used for asymmetric semantic search in the Russian language.
35
 
36
  <!--- Describe your model here -->
37
 
38
+
39
  ## Usage (Sentence-Transformers)
40
 
41
  Using this model becomes easy when you have [sentence-transformers](https://www.SBERT.net) installed:
 
47
  Then you can use the model like this:
48
 
49
  ```python
50
+ from sentence_transformers import SentenceTransformer, util
51
+
52
+ sentences = [
53
+ 'какое состояние может определить тест с физической нагрузкой',
54
+ 'Тест с физической нагрузкой разработан, чтобы выяснить, содержат ли одна или несколько коронарных артерий, питающих сердце, жировые отложения (бляшки), которые блокируют кровеносный сосуд на 70% или более. Для подтверждения результата часто требуется дополнительное тестирование. Результат испытаний.',
55
+ 'Тест направлен на то, чтобы выяснить, не получает ли какой-либо участок сердечной мышцы достаточный кровоток во время тренировки. Он похож на тест с физической нагрузкой, фармакологический или химический стресс-тест. Он также известен при стресс-тесте таллием, сканировании перфузии миокарда или радионуклидном тесте.'
56
+ ]
57
 
58
+ model = SentenceTransformer('DiTy/rubert-bi-encoder-mmarcoRU')
59
  embeddings = model.encode(sentences)
60
+ results = util.semantic_search(embeddings[0], embeddings[1:])[0]
61
+
62
+ print(f"Sentence similarity: {results}")
63
+ # `Sentence similarity: [{'corpus_id': 0, 'score': 0.8545001149177551}, {'corpus_id': 1, 'score': 0.023047829046845436}]`
64
  ```
65
 
66
 
 
81
 
82
 
83
  # Sentences we want sentence embeddings for
84
+ sentences = [
85
+ 'красный плоский лишай вызван стрессом',
86
+ 'В большинстве случаев причину появления красного плоского лишая невозможно. Это не вызвано стрессом, но иногда эмоциональный стресс усугубляет ситуацию. Известно, что это заболевание возникает после контакта с определенными химическими веществами, такими как те, которые используются для проявления цветных фотографий. У некоторых людей определенные лекарства вызывают красный плоский лишай. Эти препараты включают лекарства от высокого кровяного давления, болезней сердца, диабета, артрита и малярии, антибиотики, нестероидные противовоспалительные обезболивающие и т. Д.',
87
+ 'К сожалению для работодателей, в разных штатах страны есть несколько дел, по которым суды установили, что стресс, вызванный работой, может быть основанием для увольнения с работы, если стресс достигает уровня серьезного состояния здоровья, которое вызывает они не могут выполнять свою работу.',
88
+ ]
89
 
90
  # Load model from HuggingFace Hub
91
+ tokenizer = AutoTokenizer.from_pretrained('DiTy/rubert-bi-encoder-mmarcoRU')
92
+ model = AutoModel.from_pretrained('DiTy/rubert-bi-encoder-mmarcoRU')
93
 
94
  # Tokenize sentences
95
+ encoded_input = tokenizer(sentences, max_length=512, padding='max_length', truncation=True, return_tensors='pt')
96
 
97
  # Compute token embeddings
98
  with torch.no_grad():
 
106
  ```
107
 
108
 
 
 
 
 
 
 
 
 
109
  ## Training
110
  The model was trained with the parameters:
111
 
 
127
  ```
128
  {
129
  "epochs": 5,
130
+ "evaluation_steps": 250000,
131
+ "evaluator": "sentence_transformers.evaluation.InformationRetrievalEvaluator",
132
  "max_grad_norm": 1,
133
  "optimizer_class": "<class 'torch.optim.adamw.AdamW'>",
134
  "optimizer_params": {
 
148
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel
149
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
150
  )
151
+ ```