🚀 IndicSBERT
IndicSBERT是一个基于MuRIL(google/muril-base-cased)模型,在十种主要印度语言的NLI数据集上训练得到的模型。该单一模型可用于英语、印地语、马拉地语、卡纳达语、泰米尔语、泰卢固语、古吉拉特语、奥里亚语、旁遮普语、马拉雅拉姆语和孟加拉语,并且具备跨语言处理能力。此模型是MahaNLP项目的一部分,项目链接:https://github.com/l3cube-pune/MarathiNLP 。
这里还分享了一个更好的句子相似度模型(本模型的微调版本):https://huggingface.co/l3cube-pune/indic-sentence-similarity-sbert 。
有关数据集、模型和基线结果的更多详细信息,请参阅我们的论文。
🚀 快速开始
模型信息
属性 |
详情 |
模型类型 |
用于句子相似度计算的多语言模型 |
训练数据 |
十种主要印度语言的NLI数据集 |
支持语言 |
多语言(英语、印地语、马拉地语、卡纳达语、泰米尔语、泰卢固语、古吉拉特语、奥里亚语、旁遮普语、马拉雅拉姆语和孟加拉语) |
示例展示
以下是一些使用示例:
- 单语 - 马拉地语
- 源句子:दिवाळी आपण मोठ्या उत्साहाने साजरी करतो
- 对比句子:
- दिवाळी आपण आनंदाने साजरी करतो
- दिवाळी हा दिव्यांचा सण आहे
- 单语 - 印地语
- 源句子:हम दीपावली उत्साह के साथ मनाते हैं
- 对比句子:
- हम दीपावली खुशियों से मनाते हैं
- दिवाली रोशनी का त्योहार है
- 单语 - 古吉拉特语
- 源句子:અમે ઉત્સાહથી દિવાળી ઉજવીએ છીએ
- 对比句子:
- દિવાળી આપણે ખુશીઓથી ઉજવીએ છીએ
- દિવાળી એ રોશનીનો તહેવાર છે
- 跨语言 1
- 源句子:आम्हाला भारतीय असल्याचा अभिमान आहे
- 对比句子:
- हमें भारतीय होने पर गर्व है
- భారతీయులమైనందుకు గర్విస్తున్నాం
- અમને ભારતીય હોવાનો ગર્વ છે
- 跨语言 2
- 源句子:ਬਾਰਿਸ਼ ਤੋਂ ਬਾਅਦ ਬਗੀਚਾ ਸੁੰਦਰ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ
- 对比句子:
- മഴയ്ക്ക് ശേഷം പൂന്തോട്ടം മനോഹരമായി കാണപ്പെടുന്നു
- ବର୍ଷା ପରେ ବଗିଚା ସୁନ୍ଦର ଦେଖାଯାଏ |
- बारिश के बाद बगीचा सुंदर दिखता है
相关论文
其他相关模型
单语Indic句子BERT模型
单语相似度模型
引用信息
@article{deode2023l3cube,
title={L3Cube-IndicSBERT: A simple approach for learning cross-lingual sentence representations using multilingual BERT},
author={Deode, Samruddhi and Gadre, Janhavi and Kajale, Aditi and Joshi, Ananya and Joshi, Raviraj},
journal={arXiv preprint arXiv:2304.11434},
year={2023}
}
📦 安装指南
若要使用此模型,需要安装sentence-transformers:
pip install -U sentence-transformers
💻 使用示例
基础用法(Sentence-Transformers)
当你安装了sentence-transformers后,使用该模型会变得非常简单。以下是使用示例:
from sentence_transformers import SentenceTransformer
sentences = ["This is an example sentence", "Each sentence is converted"]
model = SentenceTransformer('{MODEL_NAME}')
embeddings = model.encode(sentences)
print(embeddings)
高级用法(HuggingFace Transformers)
若未安装sentence-transformers,可以按以下方式使用该模型:首先将输入传递给transformer模型,然后对上下文词嵌入应用正确的池化操作。
from transformers import AutoTokenizer, AutoModel
import torch
def mean_pooling(model_output, attention_mask):
token_embeddings = model_output[0]
input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
sentences = ['This is an example sentence', 'Each sentence is converted']
tokenizer = AutoTokenizer.from_pretrained('{MODEL_NAME}')
model = AutoModel.from_pretrained('{MODEL_NAME}')
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
with torch.no_grad():
model_output = model(**encoded_input)
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
print("Sentence embeddings:")
print(sentence_embeddings)
📄 许可证
本模型采用CC BY 4.0许可证。