Update README.md
Browse files
README.md
CHANGED
|
@@ -1547,24 +1547,25 @@ model-index:
|
|
| 1547 |
type: PairClassification
|
| 1548 |
license: mit
|
| 1549 |
language:
|
| 1550 |
-
|
| 1551 |
-
|
| 1552 |
tags:
|
| 1553 |
-
|
| 1554 |
-
|
| 1555 |
-
|
| 1556 |
base_model: ai-forever/FRED-T5-1.7B
|
|
|
|
| 1557 |
---
|
| 1558 |
|
| 1559 |
-
---
|
| 1560 |
# Model Card for FRIDA
|
| 1561 |
-
|
| 1562 |
<figure>
|
| 1563 |
<img src="img.jpg">
|
| 1564 |
</figure>
|
| 1565 |
-
The FRIDA is a general text embedding model for Russian. The model is based on the encoder part of FRED-T5 (https://huggingface.co/ai-forever/FRED-T5-1.7B). It has been pre-trained on a Russian-English dataset and fine-tuned for improved performance on the target task.
|
| 1566 |
|
| 1567 |
-
|
|
|
|
|
|
|
| 1568 |
|
| 1569 |
## Usage
|
| 1570 |
|
|
@@ -1575,7 +1576,7 @@ We use the following basic rules to choose a prefix:
|
|
| 1575 |
- `"paraphrase: "` prefix is for symmetric paraphrasing related tasks (STS, paraphrase mining, deduplication)
|
| 1576 |
- `"categorize: "` prefix is for asymmetric matching of document title and body (e.g. news, scientific papers, social posts)
|
| 1577 |
- `"categorize_sentiment: "` prefix is for any tasks that rely on sentiment features (e.g. hate, toxic, emotion)
|
| 1578 |
-
- `"categorize_topic: "` prefix is
|
| 1579 |
- `"categorize_entailment: "` prefix is for textual entailment task (NLI)
|
| 1580 |
|
| 1581 |
To better tailor the model to your needs, you can fine-tune it with relevant high-quality Russian and English datasets.
|
|
@@ -1607,7 +1608,7 @@ inputs = [
|
|
| 1607 |
"paraphrase: Ярославским баням разрешили работать без посетителей",
|
| 1608 |
"categorize_entailment: Женщину спасают врачи.",
|
| 1609 |
"search_document: Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование."
|
| 1610 |
-
|
| 1611 |
|
| 1612 |
tokenizer = AutoTokenizer.from_pretrained("ai-forever/FRIDA")
|
| 1613 |
model = T5EncoderModel.from_pretrained("ai-forever/FRIDA")
|
|
@@ -1626,7 +1627,7 @@ embeddings = pool(
|
|
| 1626 |
embeddings = F.normalize(embeddings, p=2, dim=1)
|
| 1627 |
sim_scores = embeddings[:3] @ embeddings[3:].T
|
| 1628 |
print(sim_scores.diag().tolist())
|
| 1629 |
-
# [0.
|
| 1630 |
```
|
| 1631 |
|
| 1632 |
### SentenceTransformers
|
|
@@ -1643,7 +1644,7 @@ inputs = [
|
|
| 1643 |
"paraphrase: Ярославским баням разрешили работать без посетителей",
|
| 1644 |
"categorize_entailment: Женщину спасают врачи.",
|
| 1645 |
"search_document: Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование."
|
| 1646 |
-
|
| 1647 |
|
| 1648 |
# loads model with CLS pooling
|
| 1649 |
model = SentenceTransformer("ai-forever/FRIDA")
|
|
@@ -1653,7 +1654,7 @@ embeddings = model.encode(inputs, convert_to_tensor=True)
|
|
| 1653 |
|
| 1654 |
sim_scores = embeddings[:3] @ embeddings[3:].T
|
| 1655 |
print(sim_scores.diag().tolist())
|
| 1656 |
-
# [0.
|
| 1657 |
```
|
| 1658 |
|
| 1659 |
or using prompts (sentence-transformers>=2.4.0):
|
|
@@ -1665,19 +1666,19 @@ from sentence_transformers import SentenceTransformer
|
|
| 1665 |
model = SentenceTransformer("ai-forever/FRIDA")
|
| 1666 |
|
| 1667 |
paraphrase = model.encode(["В Ярославской области разрешили работу бань, но без посетителей", "Ярославским баням разрешили работать без посетителей"], prompt_name="paraphrase")
|
| 1668 |
-
print(paraphrase[0] @ paraphrase[1].T) # 0.
|
| 1669 |
|
| 1670 |
categorize_entailment = model.encode(["Женщину доставили в больницу, за ее жизнь сейчас борются врачи.", "Женщину спасают врачи."], prompt_name="categorize_entailment")
|
| 1671 |
-
print(categorize_entailment[0] @ categorize_entailment[1].T) # 0.
|
| 1672 |
|
| 1673 |
query_embedding = model.encode("Сколько программистов нужно, чтобы вкрутить лампочку?", prompt_name="search_query")
|
| 1674 |
document_embedding = model.encode("Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование.", prompt_name="search_document")
|
| 1675 |
-
print(query_embedding @ document_embedding.T) # 0.
|
| 1676 |
```
|
| 1677 |
|
| 1678 |
-
|
| 1679 |
+ [SaluteDevices](https://sberdevices.ru/) AI for B2C RnD Team.
|
| 1680 |
-
+ Artem Snegirev: [HF profile](https://huggingface.co/artemsnegirev);
|
| 1681 |
+ Anna Maksimova [HF profile](https://huggingface.co/anpalmak);
|
| 1682 |
+ Aleksandr Abramov: [HF profile](https://huggingface.co/Andrilko), [Github](https://github.com/Ab1992ao), [Kaggle Competitions Master](https://www.kaggle.com/andrilko)
|
| 1683 |
|
|
|
|
| 1547 |
type: PairClassification
|
| 1548 |
license: mit
|
| 1549 |
language:
|
| 1550 |
+
- ru
|
| 1551 |
+
- en
|
| 1552 |
tags:
|
| 1553 |
+
- mteb
|
| 1554 |
+
- transformers
|
| 1555 |
+
- sentence-transformers
|
| 1556 |
base_model: ai-forever/FRED-T5-1.7B
|
| 1557 |
+
pipeline_tag: feature-extraction
|
| 1558 |
---
|
| 1559 |
|
|
|
|
| 1560 |
# Model Card for FRIDA
|
| 1561 |
+
|
| 1562 |
<figure>
|
| 1563 |
<img src="img.jpg">
|
| 1564 |
</figure>
|
|
|
|
| 1565 |
|
| 1566 |
+
FRIDA is a full-scale finetuned general text embedding model inspired by denoising architecture based on T5. The model is based on the encoder part of [FRED-T5](https://arxiv.org/abs/2309.10931) model and continues research of text embedding models ([ruMTEB](https://arxiv.org/abs/2408.12503), [ru-en-RoSBERTa](https://huggingface.co/ai-forever/ru-en-RoSBERTa)). It has been pre-trained on a Russian-English dataset and fine-tuned for improved performance on the target task.
|
| 1567 |
+
|
| 1568 |
+
For more model details please refer to our technical report [TODO].
|
| 1569 |
|
| 1570 |
## Usage
|
| 1571 |
|
|
|
|
| 1576 |
- `"paraphrase: "` prefix is for symmetric paraphrasing related tasks (STS, paraphrase mining, deduplication)
|
| 1577 |
- `"categorize: "` prefix is for asymmetric matching of document title and body (e.g. news, scientific papers, social posts)
|
| 1578 |
- `"categorize_sentiment: "` prefix is for any tasks that rely on sentiment features (e.g. hate, toxic, emotion)
|
| 1579 |
+
- `"categorize_topic: "` prefix is intended for tasks where you need to group texts by topic
|
| 1580 |
- `"categorize_entailment: "` prefix is for textual entailment task (NLI)
|
| 1581 |
|
| 1582 |
To better tailor the model to your needs, you can fine-tune it with relevant high-quality Russian and English datasets.
|
|
|
|
| 1608 |
"paraphrase: Ярославским баням разрешили работать без посетителей",
|
| 1609 |
"categorize_entailment: Женщину спасают врачи.",
|
| 1610 |
"search_document: Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование."
|
| 1611 |
+
]
|
| 1612 |
|
| 1613 |
tokenizer = AutoTokenizer.from_pretrained("ai-forever/FRIDA")
|
| 1614 |
model = T5EncoderModel.from_pretrained("ai-forever/FRIDA")
|
|
|
|
| 1627 |
embeddings = F.normalize(embeddings, p=2, dim=1)
|
| 1628 |
sim_scores = embeddings[:3] @ embeddings[3:].T
|
| 1629 |
print(sim_scores.diag().tolist())
|
| 1630 |
+
# [0.9360030293464661, 0.8591322302818298, 0.728583037853241]
|
| 1631 |
```
|
| 1632 |
|
| 1633 |
### SentenceTransformers
|
|
|
|
| 1644 |
"paraphrase: Ярославским баням разрешили работать без посетителей",
|
| 1645 |
"categorize_entailment: Женщину спасают врачи.",
|
| 1646 |
"search_document: Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование."
|
| 1647 |
+
]
|
| 1648 |
|
| 1649 |
# loads model with CLS pooling
|
| 1650 |
model = SentenceTransformer("ai-forever/FRIDA")
|
|
|
|
| 1654 |
|
| 1655 |
sim_scores = embeddings[:3] @ embeddings[3:].T
|
| 1656 |
print(sim_scores.diag().tolist())
|
| 1657 |
+
# [0.9360026717185974, 0.8591331243515015, 0.7285830974578857]
|
| 1658 |
```
|
| 1659 |
|
| 1660 |
or using prompts (sentence-transformers>=2.4.0):
|
|
|
|
| 1666 |
model = SentenceTransformer("ai-forever/FRIDA")
|
| 1667 |
|
| 1668 |
paraphrase = model.encode(["В Ярославской области разрешили работу бань, но без посетителей", "Ярославским баням разрешили работать без посетителей"], prompt_name="paraphrase")
|
| 1669 |
+
print(paraphrase[0] @ paraphrase[1].T) # 0.9360032
|
| 1670 |
|
| 1671 |
categorize_entailment = model.encode(["Женщину доставили в больницу, за ее жизнь сейчас борются врачи.", "Женщину спасают врачи."], prompt_name="categorize_entailment")
|
| 1672 |
+
print(categorize_entailment[0] @ categorize_entailment[1].T) # 0.8591322
|
| 1673 |
|
| 1674 |
query_embedding = model.encode("Сколько программистов нужно, чтобы вкрутить лампочку?", prompt_name="search_query")
|
| 1675 |
document_embedding = model.encode("Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование.", prompt_name="search_document")
|
| 1676 |
+
print(query_embedding @ document_embedding.T) # 0.7285831
|
| 1677 |
```
|
| 1678 |
|
| 1679 |
+
## Authors
|
| 1680 |
+ [SaluteDevices](https://sberdevices.ru/) AI for B2C RnD Team.
|
| 1681 |
+
+ Artem Snegirev: [HF profile](https://huggingface.co/artemsnegirev), [Github](https://github.com/artemsnegirev);
|
| 1682 |
+ Anna Maksimova [HF profile](https://huggingface.co/anpalmak);
|
| 1683 |
+ Aleksandr Abramov: [HF profile](https://huggingface.co/Andrilko), [Github](https://github.com/Ab1992ao), [Kaggle Competitions Master](https://www.kaggle.com/andrilko)
|
| 1684 |
|