🚀 rufimelo/bert-large-portuguese-cased-sts2
这是一个 sentence-transformers 模型,它可以将句子和段落映射到一个 1024 维的密集向量空间,可用于聚类或语义搜索等任务。rufimelo/bert-large-portuguese-cased-sts 源自 BERTimbau 大模型。
🚀 快速开始
模型信息
属性 |
详情 |
模型类型 |
用于句子相似度的葡萄牙语 BERT 模型 |
训练数据 |
assin、assin2、stsb_multi_mt |
示例展示
输入源句子:"O advogado apresentou as provas ao juíz."
对比句子:
- "O juíz leu as provas."
- "O juíz leu o recurso."
- "O juíz atirou uma pedra."
模型评估结果
任务 |
指标 |
数据集 |
值 |
STS |
Pearson 相关性 |
assin 数据集 |
0.81758 |
STS |
Pearson 相关性 |
assin2 数据集 |
0.83784 |
STS |
Pearson 相关性 |
stsb_multi_mt pt 数据集 |
0.81245 |
📦 安装指南
若要使用此模型,需先安装 sentence-transformers:
pip install -U sentence-transformers
💻 使用示例
基础用法(Sentence-Transformers)
from sentence_transformers import SentenceTransformer
sentences = ["Isto é um exemplo", "Isto é um outro exemplo"]
model = SentenceTransformer('rufimelo/bert-large-portuguese-cased-sts')
embeddings = model.encode(sentences)
print(embeddings)
高级用法(HuggingFace Transformers)
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('rufimelo/bert-large-portuguese-cased-sts')
model = AutoModel.from_pretrained('rufimelo/bert-large-portuguese-cased-sts')
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)
🔧 技术细节
训练信息
rufimelo/bert-large-portuguese-cased-sts 源自 BERTimbau 大模型。它针对语义文本相似度进行训练,并使用 assin、assin2 和 stsb_multi_mt pt 数据集进行了微调。
完整模型架构
SentenceTransformer(
(0): Transformer({'max_seq_length': 128, 'do_lower_case': False}) with Transformer model: BertModel
(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})
)
📄 许可证
引用信息
如果您使用了此模型,请引用以下文献:
@inproceedings{souza2020bertimbau,
author = {F{\'a}bio Souza and
Rodrigo Nogueira and
Roberto Lotufo},
title = {{BERT}imbau: pretrained {BERT} models for {B}razilian {P}ortuguese},
booktitle = {9th Brazilian Conference on Intelligent Systems, {BRACIS}, Rio Grande do Sul, Brazil, October 20-23 (to appear)},
year = {2020}
}
@inproceedings{fonseca2016assin,
title={ASSIN: Avaliacao de similaridade semantica e inferencia textual},
author={Fonseca, E and Santos, L and Criscuolo, Marcelo and Aluisio, S},
booktitle={Computational Processing of the Portuguese Language-12th International Conference, Tomar, Portugal},
pages={13--15},
year={2016}
}
@inproceedings{real2020assin,
title={The assin 2 shared task: a quick overview},
author={Real, Livy and Fonseca, Erick and Oliveira, Hugo Goncalo},
booktitle={International Conference on Computational Processing of the Portuguese Language},
pages={406--412},
year={2020},
organization={Springer}
}
@InProceedings{huggingface:dataset:stsb_multi_mt,
title = {Machine translated multilingual STS benchmark dataset.},
author={Philip May},
year={2021},
url={https://github.com/PhilipMay/stsb-multi-mt}
}