pipeline_tag: 句子相似度
tags:
- 句子转换器
- 特征提取
- 句子相似度
- 转换器
- 法律
- 法国法律
- 法国法规
license: apache-2.0
pretty_name: 面向法国法律实践的领域适配mBERT模型
datasets:
- louisbrulenaudet/知识产权法典
- louisbrulenaudet/民法典
- louisbrulenaudet/劳动法典
- louisbrulenaudet/货币与金融法典
- louisbrulenaudet/商法典
- louisbrulenaudet/刑法典
- louisbrulenaudet/消费法典
- louisbrulenaudet/环境法典
- louisbrulenaudet/税收总法典
- louisbrulenaudet/民事诉讼法典
language:
- fr
library_name: sentence-transformers
面向法国法律实践的领域适配mBERT模型
这是一个sentence-transformers模型:它能将句子和段落映射到768维的密集向量空间,可用于聚类或语义搜索等任务。
该模型基于维基百科规模最大的102种语言进行预训练,采用掩码语言建模(MLM)目标,并通过基于转换器的序列去噪自动编码器进行无监督句子嵌入学习,核心目标是实现法国法律领域的适配。
通过这种方式,模型能够学习训练集中法国法律语言的内在表示,进而提取对下游任务有用的特征:例如,如果您有一个带标签的句子数据集,您可以使用模型生成的特征作为输入来训练标准分类器。
使用(Sentence-Transformers)
安装sentence-transformers后,使用此模型非常简单:
pip install -U sentence-transformers
然后可以按以下方式使用模型:
from sentence_transformers import SentenceTransformer
sentences = ["这是一个示例句子", "每个句子都会被转换"]
model = SentenceTransformer("louisbrulenaudet/tsdae-lemone-mbert-base")
embeddings = model.encode(sentences)
print(embeddings)
使用(HuggingFace Transformers)
如果不使用sentence-transformers,可以按以下方式使用模型:首先将输入传递给转换器模型,然后对上下文化的词嵌入应用正确的池化操作。
from transformers import AutoTokenizer, AutoModel
import torch
def cls_pooling(model_output, attention_mask):
return model_output[0][:,0]
sentences = ['这是一个示例句子', '每个句子都会被转换']
tokenizer = AutoTokenizer.from_pretrained("louisbrulenaudet/tsdae-lemone-mbert-base")
model = AutoModel.from_pretrained("louisbrulenaudet/tsdae-lemone-mbert-base")
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors="pt")
with torch.no_grad():
model_output = model(**encoded_input)
sentence_embeddings = cls_pooling(model_output, encoded_input["attention_mask"])
print("句子嵌入:")
print(sentence_embeddings)
训练
模型训练参数如下:
数据加载器:
torch.utils.data.dataloader.DataLoader
,长度25000,参数:
{'batch_size': 4, 'sampler': 'torch.utils.data.sampler.RandomSampler', 'batch_sampler': 'torch.utils.data.sampler.BatchSampler'}
损失函数:
sentence_transformers.losses.DenoisingAutoEncoderLoss.DenoisingAutoEncoderLoss
fit()方法的参数:
{
"epochs": 1,
"evaluation_steps": 0,
"max_grad_norm": 1,
"optimizer_class": "<class 'torch.optim.adamw.AdamW'>",
"optimizer_params": {
"lr": 3e-05
},
"scheduler": "constantlr",
"steps_per_epoch": null,
"warmup_steps": 10000,
"weight_decay": 0
}
训练数据
训练数据库包含100,000个随机句子,每个句子长度超过40个字符,来源包括:
- 法国知识产权法典(Code de la propriété intellectuelle)
- 法国民法典(Code civil)
- 法国劳动法典(Code du travail)
- 法国货币与金融法典(Code monétaire et financier)
- 法国商法典(Code de commerce)
- 法国刑法典(Code pénal)
- 法国消费法典(Code de la consommation)
- 法国环境法典(Code de l'environnement)
- 法国税收总法典(Code général des Impôts)
- 法国民事诉讼法典(Code de procédure civile)
每个法典的句子数量不超过15,000条。
DenoisingAutoEncoderDataset
专门设计用于提供噪声和干净数据实例的配对。这种安排使得去噪自动编码器模型能够学习并增强其从噪声版本中重建或生成干净数据的能力。
通过提供法律文本的噪声和干净数据实例配对,去噪自动编码器可以学习重建或去噪带有噪声的领域特定文本,有效捕捉复杂的语言细微差别和领域特定特征。这一学习过程有助于构建一个能更好地泛化到法律领域的模型,即使最初是在更通用或多样化的数据集上训练的。
完整模型架构
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
)
引用与作者
如果您在研究中使用了此代码,请使用以下BibTeX条目进行引用。
@misc{louisbrulenaudet2023,
author = {Louis Brulé Naudet},
title = {面向法国法律实践的领域适配mBERT模型},
year = {2023}
howpublished = {\url{https://huggingface.co/louisbrulenaudet/tsdae-lemone-mbert-base}},
}
反馈
如有任何反馈,请通过louisbrulenaudet@icloud.com联系。