🚀 ROBERTA BASE (cased) 在保加利亞語 - 英語私有平行數據上訓練的模型
這是一個多語言Roberta模型,可用於創建保加利亞語句子的嵌入表示。該模型借鑑了 Sentence - BERT 的思想,基於翻譯後的句子應與原句在向量空間中映射到相同位置的理念進行訓練。
此模型區分大小寫,例如能區分 “bulgarian” 和 “Bulgarian”。它在保加利亞語 - 英語私有平行數據上進行訓練,之後通過 漸進式模塊替換 方法進行了壓縮。
🚀 快速開始
本模型是一個多語言Roberta模型,可用於創建保加利亞語句子的嵌入表示。它基於翻譯後的句子應與原句在向量空間中映射到相同位置的理念進行訓練。
✨ 主要特性
- 多語言處理:可用於處理保加利亞語句子。
- 大小寫敏感:能夠區分大小寫,例如 “bulgarian” 和 “Bulgarian” 會被視為不同的內容。
- 訓練方式:在保加利亞語 - 英語私有平行數據上訓練,並通過漸進式模塊替換方法進行壓縮。
📦 安裝指南
文檔中未提及具體安裝步驟,可根據使用的深度學習框架(如PyTorch)的常規安裝方式進行安裝。
💻 使用示例
基礎用法
>>> import scipy
>>> import torch
>>> from transformers import AutoModel, AutoTokenizer
>>>
>>> model = AutoModel.from_pretrained('rmihaylov/roberta-base-nli-stsb-theseus-bg')
>>> tokenizer = AutoTokenizer.from_pretrained('rmihaylov/roberta-base-nli-stsb-theseus-bg')
>>>
>>> def embed(text):
>>> inputs = tokenizer.encode_plus(text, return_tensors='pt')
>>> outputs = model(**inputs)
>>> sequence_output = outputs[0]
>>> input_mask_expanded = inputs['attention_mask'].unsqueeze(-1).expand(sequence_output.size()).float()
>>> embeddings = torch.sum(sequence_output * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
>>> return embeddings.detach().numpy()[0]
>>>
>>>
>>> query_embedding = embed("Какви са съставките на бисквитките?")
>>>
>>> questions = [
>>> "Какво е бисквитка?",
>>> "От какво са направени бисквитките?",
>>> "Използват ли в Англия думата бисквитки?",
>>> "Къде се правят бисквитките?",
>>> "Какви видове бисквитки има?",
>>> "Къде човек може да купи бисквитки?",
>>> "Откъде дойде думата бисквитка?",
>>> "Кое е чудовището на бисквитките?",
>>> "Как да си направите бисквитки у дома?",
>>> "Колко калории има типичната бисквитка?",
>>> "Какви напитки вървят добре с бисквитките?",
>>> "Бисквитките наричат ли се също сладки?"
>>> ]
>>>
>>> corpus, corpus_embeddings = [], []
>>> for question in questions:
>>> embedding = embed(question)
>>> corpus.append(question)
>>> corpus_embeddings.append(embedding)
>>>
>>> distances = scipy.spatial.distance.cdist([query_embedding], corpus_embeddings, "cosine")[0]
>>>
>>> results = zip(range(len(distances)), distances)
>>> results = sorted(results, key=lambda x: x[1])
>>>
>>> print([[corpus[idx].strip(), (1.0 - distance)] for idx, distance in results])
[['От какво са направени бисквитките?', 0.9855158537034977],
['Къде се правят бисквитките?', 0.9774093134195002],
['Какви видове бисквитки има?', 0.9766014240577192],
['Използват ли в Англия думата бисквитки?', 0.9446492058523037],
['Кое е чудовището на бисквитките?', 0.9269786184641834],
['Къде човек може да купи бисквитки?', 0.9268900421152592],
['Какво е бисквитка?', 0.9188155080718263],
['Бисквитките наричат ли се също сладки?', 0.9060368627614406],
['Откъде дойде думата бисквитка?', 0.9048309659657036],
['Какви напитки вървят добре с бисквитките?', 0.890836765118977],
['Как да си направите бисквитки у дома?', 0.8878968487540497],
['Колко калории има типичната бисквитка?', 0.8652821650136402]]
🔧 技術細節
本模型借鑑了 Sentence - BERT 的思想,基於翻譯後的句子應與原句在向量空間中映射到相同位置的理念進行訓練。它在保加利亞語 - 英語私有平行數據上進行訓練,之後通過 漸進式模塊替換 方法進行了壓縮。
📄 許可證
本模型使用的許可證為MIT許可證。
屬性 |
詳情 |
模型類型 |
多語言Roberta模型 |
訓練數據 |
oscar、chitanka、wikipedia以及保加利亞語 - 英語私有平行數據 |
標籤 |
torch |
推理 |
否 |
任務類型 |
句子相似度 |
語言 |
保加利亞語 |