🚀 camembert-base-lleqa
这是一个基于 sentence-transformers 的模型,它能够将句子和段落映射到 768 维的密集向量空间,可用于聚类或语义搜索等任务。该模型在 LLeQA 数据集上进行训练,用于法语法律信息检索。
🚀 快速开始
本模型可通过 sentence-transformers
库或 transformers
库使用,以下是详细的使用方法。
✨ 主要特性
- 能够将句子和段落映射到 768 维的密集向量空间。
- 可用于聚类、语义搜索等任务。
- 在法语法律信息检索任务中表现出色。
📦 安装指南
若要使用此模型,需先安装 sentence-transformers
库,可使用以下命令进行安装:
pip install -U sentence-transformers
💻 使用示例
基础用法
使用 sentence-transformers
库
from sentence_transformers import SentenceTransformer
sentences = ["This is an example sentence", "Each sentence is converted"]
model = SentenceTransformer('maastrichtlawtech/camembert-base-lleqa')
embeddings = model.encode(sentences)
print(embeddings)
使用 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('maastrichtlawtech/camembert-base-lleqa')
model = AutoModel.from_pretrained('maastrichtlawtech/camembert-base-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.55 |
39.27 |
30.64 |
58.27 |
82.43 |
92.41 |
训练详情
背景
我们使用 camembert-base 模型,并在 9.3K 个法语问题 - 文章对上进行了微调。我们采用了对比学习目标:给定一个简短的法律问题,模型应预测出在数据集中与该问题实际配对的法律文章。具体而言,我们计算批次中每对可能组合的余弦相似度,然后通过与真实配对进行比较,应用温度为 0.05 的交叉熵损失。
超参数
我们在单个具有 32GB 内存的 Tesla V100 GPU 上对模型进行了 20 个 epoch(即 5.4k 步)的训练,使用的批量大小为 32。我们使用 AdamW 优化器,初始学习率为 2e-05,权重衰减为 0.01,在前 50 步进行学习率预热,并采用线性衰减的学习率。序列长度限制为 384 个 token。
数据
我们使用 Long-form Legal Question Answering (LLeQA) 数据集对模型进行微调。LLeQA 是一个法语原生数据集,用于研究法律信息检索和问答任务。它包含一个由 27,941 篇比利时立法中的法定文章组成的知识库,以及 1,868 个由比利时公民提出的法律问题,这些问题由经验丰富的法学家根据相关文章进行了全面标注。
📄 许可证
本项目采用 Apache-2.0 许可证。
📖 引用
如果您在研究中使用了本模型,请使用以下 BibTeX 引用:
@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},
}