模型简介
模型特点
模型能力
使用案例
🚀 distilcamembert-lleqa
这是一个 sentence-transformers 模型:它将句子和段落映射到一个 768 维的密集向量空间,可用于聚类或语义搜索等任务。该模型在 LLeQA 数据集上进行训练,用于法语的法律信息检索。
🚀 快速开始
本模型主要使用场景为计算句子相似度,以下是使用示例:
{
"pipeline_tag": "sentence-similarity",
"language": "fr",
"license": "apache-2.0",
"datasets": [
"maastrichtlawtech/lleqa"
],
"metrics": [
"recall"
],
"tags": [
"feature-extraction",
"sentence-similarity"
],
"library_name": "sentence-transformers",
"inference": true,
"widget": {
"source_sentence": "Je reçois des confidences liées à mon emploi. Qu'est-ce que je risque si je viole le secret professionnel ?",
"sentences": [
"Art. 1 : Les médecins, chirurgiens, officiers de santé, pharmaciens, sages-femmes et toutes autres personnes dépositaires, par état ou par profession, des secrets qu'on leur confie, qui, hors le cas où ils sont appelés à rendre témoignage en justice ou devant une commission d'enquête parlementaire et celui où la loi, le décret ou l'ordonnance les oblige ou les autoriseà faire connaître ces secrets, les auront révélés, seront punis d'un emprisonnement d'un an à trois ans et d'une amende de cent euros à mille euros ou d'une de ces peines seulement.",
"Art. 2 : L'allocataire peut demander l'allocation de naissance à partir du sixième mois de la grossesse et en obtenir le paiement deux mois avant la date probable de la naissance mentionnée sur le certificat médical à joindre à la demande.L'allocation de naissance demandée conformément à l'alinéa 1er est due par la caisse d'allocations familiales, par l'autorité ou par l'établissement public qui serait compétent, selon le cas, pour payer les allocations familiales à la date à laquelle la demande de paiement anticipé est introduite.",
"Art. 3 : La periode de maternité constitue une période de repos de douze semaines, ou de treize semainesen cas de naissance multiple, au cours de laquelle la titulaire ne peut exercer son activité professionnelle habituelle ni aucune autre activité professionnelle."
],
"example_title": "Secret professionnel"
}
}
✨ 主要特性
该模型可以将句子和段落映射到 768 维的密集向量空间,可用于聚类或语义搜索等任务。
📦 安装指南
如果你安装了 sentence-transformers,使用这个模型会很容易:
pip install -U sentence-transformers
💻 使用示例
基础用法
from sentence_transformers import SentenceTransformer
sentences = ["This is an example sentence", "Each sentence is converted"]
model = SentenceTransformer('maastrichtlawtech/distilcamembert-lleqa')
embeddings = model.encode(sentences)
print(embeddings)
高级用法
如果没有安装 sentence-transformers,你可以这样使用该模型:首先,将输入传递给 Transformer 模型,然后对上下文词嵌入应用正确的池化操作。
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']
# 从 HuggingFace Hub 加载模型
tokenizer = AutoTokenizer.from_pretrained('maastrichtlawtech/distilcamembert-lleqa')
model = AutoModel.from_pretrained('maastrichtlawtech/distilcamembert-lleqa')
# 对句子进行分词
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)
📚 详细文档
评估
我们在 LLeQA 的测试集上评估了该模型,该测试集包含 195 个法律问题和 27.9K 篇候选文章的知识库。我们报告了平均倒数排名(MRR)、归一化折损累积增益(NDCG)、平均精度均值(MAP)以及不同截断点的召回率(R@k)。
MRR@10 | NDCG@10 | MAP@10 | R@10 | R@100 | R@500 |
---|---|---|---|---|---|
36.67 | 37.24 | 29.26 | 52.95 | 78.07 | 90.17 |
训练
背景
我们使用 distilcamembert-base 模型,并在 9.3K 个法语问题 - 文章对上进行微调。我们使用对比学习目标:给定一个简短的法律问题,模型应该预测在一组采样的法律文章中,哪一篇实际上是与该问题在数据集中配对的。形式上,我们计算批次中每个可能对的余弦相似度。然后,通过与真实对进行比较,应用温度为 0.05 的交叉熵损失。
超参数
我们在单个具有 32GB 内存的 Tesla V100 GPU 上训练了该模型,训练 20 个轮次(即 5.4k 步),使用的批量大小为 32。我们使用 AdamW 优化器,初始学习率为 2e-05,权重衰减为 0.01,在前 50 步进行学习率预热,并对学习率进行线性衰减。序列长度限制为 384 个标记。
数据
我们使用 Long-form Legal Question Answering (LLeQA) 数据集对模型进行微调。LLeQA 是一个法语原生数据集,用于研究法律信息检索和问答。它由从比利时立法中收集的 27,941 篇法定文章的知识库,以及 1,868 个由比利时公民提出的法律问题组成,这些问题由经验丰富的法学家根据知识库中的相关文章进行全面回答并标注。
📄 许可证
本项目采用 Apache 2.0 许可证。
📚 引用
@article{louis2023interpretable,
author = {Louis, Antoine and van Dijck, Gijs and Spanakis, Gerasimos},
title = {Interpretable Long-Form Legal Question Answering with Retrieval-Augmented Large Language Models},
journal = {CoRR},
volume = {abs/2309.17050},
year = {2023},
url = {https://arxiv.org/abs/2309.17050},
eprinttype = {arXiv},
eprint = {2309.17050},
}







