模型概述
模型特點
模型能力
使用案例
🚀 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},
}







