语言:
- 葡萄牙语
缩略图: "葡萄牙法律领域专用BERT模型"
管道标签: 句子相似度
标签:
- 句子转换器
- 句子相似度
- 转换器
数据集:
- assin
- assin2
- stjiris/portuguese-legal-sentences-v1.0
小部件:
- 源句: "律师向法官提交了证据。"
对比句:
- "法官阅读了证据。"
- "法官阅读了上诉书。"
- "法官投掷了一块石头。"
示例标题: "示例1"
模型索引:
- 名称: BERTimbau
结果:
- 任务:
名称: STS
类型: STS
指标:
- 名称: 皮尔逊相关系数 - assin数据集
类型: 皮尔逊相关系数
值: 0.7716333759993093
- 名称: 皮尔逊相关系数 - assin2数据集
类型: 皮尔逊相关系数
值: 0.8403302138785704
- 名称: 皮尔逊相关系数 - stsb_multi_mt葡萄牙语数据集
类型: 皮尔逊相关系数
值: 0.8249826985133595
stjiris/bert-large-portuguese-cased-legal-mlm-sts-v1.0 (法律版BERTimbau)
这是一个sentence-transformers模型:它能将句子和段落映射到1024维的密集向量空间,可用于聚类或语义搜索等任务。
stjiris/bert-large-portuguese-cased-legal-mlm-sts-v1.0基于BERTimbau大模型开发。
该模型采用MLM技术训练,学习率为3e-5,训练数据来自约3万份法律文书中的句子,经过13万步训练(在我们的语义搜索系统实现中表现最佳)。
该模型适配葡萄牙法律领域,并在葡萄牙语数据集上针对句子相似度任务进行训练,包括assin、assin2和stsb_multi_mt葡萄牙语子集。
使用方法(Sentence-Transformers)
安装sentence-transformers后即可轻松使用:
pip install -U sentence-transformers
使用示例:
from sentence_transformers import SentenceTransformer
sentences = ["这是一个示例", "这是另一个示例"]
model = SentenceTransformer('stjiris/bert-large-portuguese-cased-legal-mlm-sts-v1.0')
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 = ['这是一个示例句子', '每个句子都会被转换']
tokenizer = AutoTokenizer.from_pretrained('stjiris/bert-large-portuguese-cased-legal-mlm-sts-v1.0')
model = AutoModel.from_pretrained('stjiris/bert-large-portuguese-cased-legal-mlm-sts-v1.0')
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("句子嵌入:")
print(sentence_embeddings)
完整模型架构
SentenceTransformer(
(0): Transformer({'max_seq_length': 514, 'do_lower_case': False}) with Transformer model: BertModel
(1): Pooling({'word_embedding_dimension': 1028, '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})
)
引用与作者
若使用本作品,请引用:
[此处保留原始bibtex引用格式不变]