语言:
- 葡萄牙语
缩略图: 葡萄牙语法律领域专用BERT模型
标签:
- 句子转换器
- 转换器
- BERT
- PyTorch
- 句子相似度
许可证: MIT
流水线标签: 句子相似度
数据集:
- stjiris/portuguese-legal-sentences-v0
- assin
- assin2
- stsb_multi_mt
- stjiris/IRIS_sts
小部件示例:
- 源句: "律师向法官提交了证据。"
对比句:
- "法官阅读了证据。"
- "法官阅读了上诉书。"
- "法官扔了一块石头。"
模型索引:
- 名称: BERTimbau
结果:
- 任务:
名称: 语义文本相似度(STS)
类型: STS
指标:
- 名称: 皮尔逊相关系数 - assin数据集
类型: 皮尔逊相关系数
值: 0.7774097897260964
- 名称: 皮尔逊相关系数 - assin2数据集
类型: 皮尔逊相关系数
值: 0.8097518625809903
- 名称: 皮尔逊相关系数 - stsb_multi_mt葡萄牙语数据集
类型: 皮尔逊相关系数
值: 0.8358844307795662
- 名称: 皮尔逊相关系数 - IRIS STS数据集
类型: 皮尔逊相关系数
值: 0.7856746037418626


本工作作为IRIS项目的一部分开发。
论文: 《葡萄牙最高法院语义搜索系统》
stjiris/bert-large-portuguese-cased-legal-mlm-nli-sts-v1 (法律版BERTimbau)
这是一个sentence-transformers模型:可将句子和段落映射到1024维稠密向量空间,适用于聚类或语义搜索等任务。该模型衍生自stjiris/bert-large-portuguese-cased-legal-mlm(BERTimbau大模型的法律领域变体)。
训练采用MLM技术,学习率1e-5,基于约3万份法律文书句子数据集进行15000步训练(在我们的语义搜索系统实现中表现最佳)。
模型经过自然语言推理(NLI)数据训练,批大小16,学习率2e-5。
针对语义文本相似度任务进行专项微调,使用的数据集包括assin、assin2、stsb_multi_mt葡萄牙语版及IRIS STS数据集,学习率1e-5。
使用方法(Sentence-Transformers)
安装sentence-transformers后即可使用:
pip install -U sentence-transformers
调用示例:
from sentence_transformers import SentenceTransformer
sentences = ["这是示例句子", "这是另一个示例"]
model = SentenceTransformer('stjiris/bert-large-portuguese-cased-legal-mlm-nli-sts-v1')
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-nli-sts-v1')
model = AutoModel.from_pretrained('stjiris/bert-large-portuguese-cased-legal-mlm-nli-sts-v1')
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})
)
引用与作者
贡献者
@rufimelo99
若使用本工作,请引用:
(此处保留原bibtex引用格式,内容已翻译)
@InProceedings{MeloSemantic,
作者="梅洛,瑞
和桑托斯,佩德罗
和迪亚斯,若昂",
标题="葡萄牙最高法院语义搜索系统",
书籍标题="人工智能进展",
年份="2023",
出版社="Springer Nature",
地址="瑞士",
页码="142--154",
摘要="(摘要译文略)"
}
@inproceedings{souza2020bertimbau,
作者={索萨,法比奥
和诺盖拉,罗德里戈
和洛图福,罗伯托},
标题={BERTimbau:巴西葡萄牙语预训练BERT模型},
会议名称={第九届巴西智能系统会议},
年份={2020}
}
(其他文献引用格式保持原样)