🚀 Bhasha embed v0模型
Bhasha embed v0模型是一個嵌入模型,可對印地語(天城體文字)、英語和羅馬化印地語的文本進行嵌入處理。目前有許多多語言嵌入模型在處理印地語和英語文本時表現良好,但缺乏以下能力:
- 支持羅馬化印地語:這是首個支持羅馬化印地語(音譯印地語 / hin_Latn)的嵌入模型。
- 跨語言對齊:該模型輸出與語言無關的嵌入,這使得它能夠在包含印地語、英語和羅馬化印地語文本的多語言候選池中進行查詢。
✨ 主要特性
- 支持語言:印地語、英語、羅馬化印地語。
- 基礎模型:google/muril-base-cased
- 訓練GPU:1xRTX4090
- 訓練方法:從英語嵌入模型進行蒸餾,並在三元組數據上進行微調。
- 最大序列長度:512個標記
- 輸出維度:768個標記
- 相似度函數:餘弦相似度
模型來源
📚 詳細文檔
結果展示
英語 - 印地語跨語言對齊結果
適用於包含印地語和英語文本語料的任務。

羅馬化印地語任務結果
適用於包含羅馬化印地語文本的任務。

多語言語料檢索任務結果
適用於包含印地語、英語和羅馬化印地語文本語料的檢索任務。

印地語任務結果
適用於包含印地語(天城體文字)文本的任務。

附加信息
示例輸出
示例1

示例2

示例3

示例4

💻 使用示例
基礎用法
以下是使用Sentence Transformers和🤗 Transformers對查詢和段落進行編碼並計算相似度分數的示例。
使用Sentence Transformers
首先安裝Sentence Transformers庫(pip install -U sentence-transformers
),然後運行以下代碼:
import numpy as np
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("AkshitaS/bhasha-embed-v0")
queries = [
"प्रणव ने कानून की पढ़ाई की और ३० की उम्र में राजनीति से जुड़ गए",
"Pranav studied law and became a politician at the age of 30.",
"Pranav ne kanoon ki padhai kari aur 30 ki umar mein rajneeti se jud gaye"
]
documents = [
"प्रणव ने कानून की पढ़ाई की और ३० की उम्र में राजनीति से जुड़ गए",
"Pranav studied law and became a politician at the age of 30.",
"Pranav ne kanoon ki padhai kari aur 30 ki umar mein rajneeti se jud gaye",
"प्रणव का जन्म राजनीतिज्ञों के परिवार में हुआ था",
"Pranav was born in a family of politicians",
"Pranav ka janm rajneetigyon ke parivar mein hua tha"
]
query_embeddings = model.encode(queries, normalize_embeddings=True)
document_embeddings = model.encode(documents, normalize_embeddings=True)
similarity_matrix = (query_embeddings @ document_embeddings.T)
print(similarity_matrix.shape)
print(np.round(similarity_matrix, 2))
使用🤗 Transformers
import numpy as np
from torch import Tensor
import torch.nn.functional as F
from transformers import AutoTokenizer, AutoModel
def average_pool(last_hidden_states: Tensor, attention_mask: Tensor) -> Tensor:
last_hidden = last_hidden_states.masked_fill(~attention_mask[..., None].bool(), 0.0)
return last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[..., None]
model_id = "AkshitaS/bhasha-embed-v0"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModel.from_pretrained(model_id)
queries = [
"प्रणव ने कानून की पढ़ाई की और ३० की उम्र में राजनीति से जुड़ गए",
"Pranav studied law and became a politician at the age of 30.",
"Pranav ne kanoon ki padhai kari aur 30 ki umar mein rajneeti se jud gaye"
]
documents = [
"प्रणव ने कानून की पढ़ाई की और ३० की उम्र में राजनीति से जुड़ गए",
"Pranav studied law and became a politician at the age of 30.",
"Pranav ne kanoon ki padhai kari aur 30 ki umar mein rajneeti se jud gaye",
"प्रणव का जन्म राजनीतिज्ञों के परिवार में हुआ था",
"Pranav was born in a family of politicians",
"Pranav ka janm rajneetigyon ke parivar mein hua tha"
]
input_texts = queries + documents
batch_dict = tokenizer(input_texts, padding=True, truncation=True, return_tensors='pt')
outputs = model(**batch_dict)
embeddings = average_pool(outputs.last_hidden_state, batch_dict['attention_mask'])
embeddings = F.normalize(embeddings, p=2, dim=1)
similarity_matrix = (embeddings[:len(queries)] @ embeddings[len(queries):].T).detach().numpy()
print(similarity_matrix.shape)
print(np.round(similarity_matrix, 2))
引用說明
如需引用此模型,請使用以下格式:
@misc{sukhlecha_2024_bhasha_embed_v0,
author = {Sukhlecha, Akshita},
title = {Bhasha-embed-v0},
howpublished = {Hugging Face},
month = {June},
year = {2024},
url = {https://huggingface.co/AkshitaS/bhasha-embed-v0}
}
📄 許可證
本模型採用Apache-2.0許可證。