学术咨询

让期刊论文更省时、省事、省心

山西大学学报·自然科学版杂志投稿格式参考范文:基于法条检索的生成式法律问答研究

时间:

  0 引言

  法律问答的目标是为用户提供高质量、高可靠的法律咨询,是自然语言处理技术在司法领域的重要应用。智能的法律问答可以帮助律师和法官等司法专业人士快速地获取法律知识和信息,也可以为普通民众提供便利的法律服务。在社会对法律咨询服务的需求日益增加的当下,智能法律问答系统能够发挥出越来越大的作用,解决法律资源稀缺的问题。

  传统的问答方法以检索式为主,通过根据问题计算出的答案得分,来从答案库中筛选出能够回答问题的答案。检索式的问答依赖于庞大的答案库,没有产生新答案的能力。一方面,尽管找到的答案包含正确的信息,但答案可能并不能与问题的重点匹配。另一方面,有的答案要求额外的推理与对来自用户的知识的整合,单纯的检索无法解决这一问题。因此,检索式的系统并不具备一个直接与用户交互的问答系统所应有的基本特性。

  为了解决检索式中的问题,生成式的方法被广泛应用在了自动问答任务中。该类方法使用 T5 等生成式模型,在闭卷或参考辅助信息的情况下生成回复。相较检索式的方法,生成式的方法灵活很多,尽可能降低了答案库对回答的影响。尽管如此,生成式的模型可控性较差,且存在幻觉问题。在对可靠性要求较高,需求专业知识的法律领域,模型更难以生成令人满意的答复。

  目前,主流的法律问答数据集包括选择题形式的司法考试数据集 JEC-QA(Judicial Examination of China Question Answering)、抽取式的法律阅读理解数据集 CJRC(Chinese Judicial Reading Comprehension)与检索和生成相结合的司法摘要数据集。与开放领域相比,法律问答研究的发展较为滞后。一方面,现有的法律问答数据集与实际的用户需求相差较大。在现实场景下,用户的输入往往只有问题。而用户期望获得的,是自然语言形式的流畅回复。另一方面,主流的法律问答数据集缺乏法律知识的指导。在高度专业化的法律领域,法规法条是提高模型生成质量,监督模型生成准确可靠回复的有力工具。而现有的数据集往往缺乏对问题、答案与法条之间的对应关系的标注。此外,由于法律数据集的构建依赖于法律专家的人工标注,高质量的中文法律问答数据集较为稀缺。

  为了解决这些问题,本文提出了基于刑法法条库的细粒度中文法律问答数据集 FCL-QA(Fine-Grained Criminal Law Question Answering)。该数据集包含一万条收集自中文互联网上法律咨询平台的问答数据。在数据集中,根据分类维度的不同,法条与其对应的主题被分为刑法罪名、一般规定、相关法系三大类,三大类主题下包含细致到某一条具体罪名或某一类具体行为的子类。对每条数据的标注包括两部分,分别是该数据在上述两个层面上的分类与从法条库检索出的、对回答问题有帮助的法条。数据的标注流程以法条库为核心展开,以大模型投票与人工校对相结合的半自动化形式进行,尽可能地缓解了数据标注的压力。基于该数据集,本文提出了基于大语言模型的法条检索增强问答框架 SaRAF(Statutory Articles Retrieval Augmented Question Answering Framework),整体流程包括主题预测、法条检索、答案生成三部分。

  本文的主要贡献如下:

  提出了基于刑法法条库的法律问答数据集 FCL-QA,该数据集收集自真实问答平台,与实际的法律咨询形式更加接近,能够反映法律问答实际的需求;

  提出了一种半自动化的数据标注流程,能够缓解数据标注的压力,低成本地扩大数据集的规模;

  针对法律问答任务,提出了一种基于大语言模型的法律问答框架 SaRAF。该框架将法律问答所需要的能力拆分成分类、检索与生成三部分,通过将法条知识与模型经验相结合来提升模型生成回复的质量;

  在 FCL-QA 数据集上使用 SaRAF 框架进行了评测,结果证明,SaRAF 框架可以检索出用于辅助答案生成的优质法条。与检索增强生成(RAG)和不带任何法条相比,模型在 ROUGE-L F1 指标上可提高 11.17 和 4.63 个百分点,在 BLEU-4 指标上可提高 13.40 和 5.79 个百分点,在 BERTScore 指标上可提高 5.75 和 2.00 个百分点。

法条检索增强问答框架

  1 相关工作

  1.1 法律问答数据集

  法律问答的发展离不开优质数据集的创建,按照任务类型,法律问答数据集可以分为:分类式、抽取式、检索式与文本生成式。其中生成式问答更符合实际问答系统的需求,因此成为研究的热点。

  Zhong 等提出了 JEC-QA,是目前最大的中文法律问答数据集,其中的数据来自于中国国家司法考试。考虑到回答问题注重的方面,JEC-QA 中的数据被分为知识驱动与案件驱动两种类型。JEC-QA 提供了包含需要法律知识与法条的数据库,但并没有提供问题与法条之间的对应关系。Duan 等通过抽取裁判文书中的事实描述内容,构建了中文法律阅读理解数据集 CJRC,填补了法律领域阅读理解研究的空白。该数据集的问题由标注者以转述的形式给出,涉及种类丰富。2021 年,中国法律智能技术评测司法摘要赛道提供了涉法舆情摘要数据集。该数据集通过融合多来源的答案数据与对多文档信息进行摘要精简,大幅度提高了答案的生成质量。Louis 等提出了法语法律数据集 LleQA,通过专家注释为每个问题提供相应的法律条款。

  1.2 问答模型

  在问答领域,深度学习的发展使得生成式的问答成为了可能,Tan 等提出了 S-Net 模型,采用抽取与生成相结合的范式,使用 Seq2Seq 模型进行答案生成。预训练语言模型的出现为问答系统的发展带来了飞跃式的进步,Karpukhin 等提出了 DPR 模型,通过基于 BERT 模型微调来完成检索任务,取得了远超 BM25 算法的效果。Garg 等提出了 TANDA 模型,通过对预训练模型进行两次微调来提高模型的性能与鲁棒性。Roberts 等以闭卷的形式微调 T5 模型,直接输入问题并获取对应的答案。Hsu 等提出了 GenQA 模型,在 T5 模型的基础上通过综合利用问题中信息与候选答案信息生成答案。

  在法律问答领域,Wang 等提出了 IflyLegal 系统,通过 biRNN 和 CNN 实现用户意图的判断,并通过匹配模型最终从答案库中检索出答案。Hoppe 等提出了在文档检索的基础上,使用 BERT 与 BM25 构建的德语的法律问答系统。Kien 等基于越南语提出了一种法律文本匹配模型,目的在于找到能够对回答问题有帮助的法律文章。Louis 等通过检索增强的框架,构建了端到端的基于大语言模型的法律问答系统。

  1.3 大语言模型

  在生成式任务中,大模型展示出了卓越的性能,其代表性的工作是 Touvron 等提出的 LlaMA 模型。LlaMA 模型使用 Transformer 架构,预测给定单词或 token 作为下一个单词或 token 的概率。通过在 1.4T 个 token 上进行训练,LlaMA 模型取得了强大的性能,在常识推理、闭卷问答、阅读理解、数学推理、代码生成与大规模语言任务理解中都取得了优秀的成果。

  在 LlaMA 被提出后,许多工作都在 LlaMA 框架的基础上进行,大量开源的大语言模型被公布。Taori 等提出了 Alpaca 模型,在 LlaMA 模型的基础上使用指令数据进行了进一步的微调,取得了媲美 GPT3.5 的水平。Chiang 等提出了 Vicuna 模型,通过收集 ShareGPT 网站上的数据来进行指令微调,在低成本的情况下达到了接近 GPT 的能力。Bai 等提出了 Qwen 模型,通过使用高达 3 万亿个 token 的数据进行预训练,为模型提供了可靠的知识源。在 LlaMA 的框架外,Du 等提出了 ChatGLM 模型,针对中文问答和对话进行了专门的优化,能够生成相当符合人类偏好的回答。

  2 方法

  本文构建了基于刑法法条库的法律问答数据集 FCL-QA,并基于该数据集的特点,提出了一种基于法条检索的法律问答框架 SaRAF。数据集的构建过程包括数据的收集与清洗、法条库的构建、主题标注三个阶段。根据数据集的特点,问答流程同样被划分为主题预测、法条检索与答案生成三部分。

  2.1 数据集的构建

  在数据收集与清洗阶段,本文从中文互联网上爬取了 49060 条附有参考法条的问答对数据。本文过滤掉了重复的问答对,依照 2017 年修正版本的《刑法》与 2018 年修正版本的《刑事诉讼法》,依靠人工对爬取到的法条进行了校对。最终,本文将数据限定在了 38251 条,并随机抽取了其中一万条数据作为第一批次的数据进行进一步的处理。

  在法条库的构建阶段,本文首先将法条在刑法罪名、一般规定与相关法系三个大层进行了划分。刑法罪名分类中的法条涉及到刑法中的某一特定罪名。一般规定分类包括适用于所有罪名的相关规定。相关法系分类中的法条并不属于刑事的范畴,但因为与刑事领域相关常被提及。在每一大类下,本文对主题的粒度进行了扩展。比如对于《刑法》中某一章节名,本文将其下面的每一条法条作为单独的类别对待,从中拆分出抢劫罪、盗窃罪等具体的主题。最终,每一法条都被归入到了大类下的某一具体主题中。

  在主题标注阶段,通过将爬取到的法条与法条库进行对照,本文能够得到问题所属的主题。然而,网络上爬取到的法条存在与问题不匹配情况。此外,对于涉及到多种主题的问题,单靠法条所属的主题不足以涵盖该问题涉及到的所有情况。为了解决这一问题,本文通过人工的标注者对数据的主题标签进行修正。本文使用基于大语言模型的投票方法,在降低标注成本的前提下尽可能地获取高质量的数据。

  为了训练标注模型,本文首先依靠人工对数据集中三千条数据涉及到的主题进行了标注。在标注过程中,标注者被要求给出问题所涉及到的所有主题,即使回答问题并不需要该主题下的法条。基于这三千条数据,本文使用 LoRA 微调的方法,在 ChatGLM-6B 模型上使用不同的 LoRA 秩、LoRA 缩放因子、学习率等超参进行了指令微调,训练出五个不同的主题预测模型。为了确保生成的主题在规定的主题集内,本文使用 text2vec 模型,通过余弦相似度计算找到模型结果在主题库内对应的主题。

  对单个主题来说,当它的票数大于等于三时,如果该主题来自互联网律师,则表明该主题获得了大模型的再次确认,能够排除法条与问题无关的情况。如果该主题并非来自于法条,则表明该主题获取了超过半数以上的大模型的认可,虽然没有相应的法条,但该主题应同问题强相关。因此,本文将票数大于等于三的主题视为可信。完成主题的获取后,本文通过人工校对来确保问题、答案与主题之间的关联。

  2.2 主题预测

  对于主题预测部分,本文希望能够由浅入深,通过两阶段的分类任务来预测出问题所属的正确分类。本文通过对大模型进行指令微调来训练分类模型。

  在大体分类预测阶段,本文根据法条所属的大类,按照刑法罪名、一般规定与相关法系的顺序,为问题分配标签信息。在输入数据的描述部分中,本文对此分类任务进行了介绍并给出了详细的分类定义。为了保证模型生成的结果与预期一致,本文还在输入中给出了生成的样例,在加深模型对任务理解的同时,限制输出为期望的格式。在输入的最后,本文加入了指令,对模型的输出进行引导。

  在具体主题预测阶段,本文根据问题所属大类下的主题标签构建了大类对应的主题预测训练集,通过指令微调训练出每个大类下的主题预测模型。在预测时,当大类预测阶段的结果在某一位置上为 “1”,本文便选择出相对应的模型用于主题预测。通过这一流程,原本的多主题多标签分类任务被转换为单标签多分类任务,在降低了主题预测的难度的同时,使得预测的结果更加准确可靠。在该阶段中,本文同样使用 text2vec 模型对不在主题集内的主题进行纠正。

  2.3 法条检索

  对于法条检索部分,本文将检索任务转换为相关性判别任务,通过指令微调引导大模型输出 “0” 或 “1” 来对问题与法条之间的关系进行判断。

  为了训练检索模型,本文利用数据集中标注好的主题标签与相关法条,构建了相关性判断训练集。对于每条与问题相关的法条,本文将其与问题拼接在一起,构成一个正样本对。根据主题标签,本文从整体的法条库中检索出了问题对应的候选法条集合,并使用集合中与问题无关的法条构成负样本对。Cai 等的研究表明,处理数据集中的不平衡问题对分类模型的正确性和准确性十分重要。因此,本文在构建检索训练集时对负样本的数目加以限制,保证正负样本的数目能够保持一致。

  在实际的问答场景下,本文根据主题预测阶段的结果为问题筛选出候选法条集,并按照指令数据的格式拼接问题与法条,输入给大模型进行判断。为了防止问题找不到对应的法条,本文利用全量的正负样本集合,额外训练了 SBERT 模型。SBERT 模型的训练目标是,给定问题 q、相关法条 P 和无关法条 n,使得 q 和 P 之间的距离尽可能小,q 和 n 之间的距离尽可能大。当问题找不到对应的法条时,本文通过 SBERT 模型来进行相似度判断,寻找到候选集合中与问题最匹配的法条。

  2.4 答案生成

  对于答案生成部分,本文将问题与法条进行了拼接,输入到大模型中进行答案生成。

  在本部分中,本文利用了大模型优秀的自然语言生成能力,实现了法条知识与模型经验信息的融合。在训练阶段,使用的法条数据为经过标注后的准确法条。在测试阶段,使用的法条数据为从法条检索阶段获得的法条。

  3 实验与分析

  3.1 数据集

  本文主要在构建的 FLC-QA 数据集上进行实验。在数据集中,每条数据包含一对问答对、若干条问题的相关法条、问题所属的大类与问题所属的主题。

  本文按 9∶1 的比例,对训练集与验证集进行划分。在主题预测任务中,训练集通过根据大类标签对训练集进行归类获得。主题预测、法条检索任务的验证集分别根据流程中上一步的结果获得。不同模型间存在一定的误差。

  3.2 评价指标

  对于大类预测任务,使用准确率(Acc)作为评价指标。对于主题预测任务,使用 Micro-F1 分数(Top_F1)作为评价指标,通过正确预测出的主题数、模型预测出来的主题数与实际预期的主题数计算精确率 P、召回率 R,进而得出 Micro-F1 分数。

  对于法条检索任务,将其转换为相关性判断的二分类任务,采用 Micro-F1 分数(Re_F1)进行评价,通过模型检索到的相关法条数目、所有法条数目与问题相关的法条数目计算精确率、召回率及 F1 分数。

  对于答案生成任务,采用 ROUGE-L 和 BLEU-4,根据重叠词语的相似度度量评估生成质量,采用 BERTScore,根据语义相似度评估生成质量。ROUGE-L 使用机器输出与参考答案的最长公共子序列计算,BLEU 通过计算单词级别的准确性衡量句子流畅性,BERTScore 将问题和回答编码为 BERT 向量,计算生成文本与参考文本的余弦相似度得到精确率、召回率并计算 F1 分数,本文使用 chinese-roberta-large 模型获取 BERT 向量表示。

  3.3 基线模型

  实验采用 10 个模型作为数据集上的基线模型,分别为:ChatGLM3-6B、LLaMA3-8B、Qwen-7B、LegalEagle、LaWGPT、太令、GPT-3.5、T5 PEGASUS、T5 Copy、SBERT。

  3.4 实验设置

  所有实验基于深度学习框架 PyTorch,在 Linux 平台上使用一张 RTX4090 显卡训练。在框架上使用不同大模型,基于 Firefly 项目进行 QLoRA 指令微调完成各项任务流程。除大模型外,在法条检索阶段训练 SBERT 模型、在答案生成阶段训练 T5 模型作为对照。在数据集上以

  2×10 −4的学习率微调 2 个迭代轮次,训练批大小设置为 4,lora_rank、lora_alpha 等参数均设置为 16,使用训练中最后保存的 LoRA 权重用于验证集上的测试。

  3.5 实验结果

  不同模型在 SaRAF 框架中的大类预测与主题预测阶段实验结果显示,两阶段预测后所有模型在主题预测阶段表现均提升,ChatGLM3-6B 模型 F1 指标提高 14.33 个百分点。单阶段预测时 LegalEagle 模型成绩最好,两阶段预测后 ChatGLM3-6B 模型反超。

  在法条检索阶段,大部分模型使用 SBERT 模型检索时精确率优于 SaRAF 框架,但在召回率上,除 LawGPT 模型外,SaRAF 框架结果更优 ,更符合检索增强问答任务需求。

  答案生成阶段,使用 SaRAF 进行检索增强的效果全面优于使用 RAG,在 ROUGE-L F1、BLEU 和 BERTScore 指标上均存在差距。预训练 T5 模型即使使用准确法条表现仍不如 SaRAF 框架下的大模型,GPT-3.5 未微调也不如经过指令微调的基座大模型。

  3.6 检索指标分析

  构造正负样本平衡训练集可防止过多负样本干扰模型对正样本的识别能力。实验表明,使用非平衡训练集训练后,模型检索出的正例和真正例数目减少,召回率下降,精确率提高。将非平衡训练后检索到的法条用于答案生成,ROUGE-L F1 指标下降。说明在检索增强场景下,召回率与答案质量正向关联,SaRAF 框架是更合适的检索器。

  3.7 消融实验

  消融掉法条检索过程的实验显示,没有法条辅助生成时,模型生成结果劣于 SaRAF 框架下的生成结果;使用正确法条后,模型生成质量提升。说明 SaRAF 框架中检索获取的法条有效,对答案生成有积极影响,该框架仍有提升空间。

  3.8 案例分析

  不使用多等级主题分类检索限定范围,直接利用向量相似度检索会导致检索出大量无关法条,影响答案生成质量。使用 SaRAF 框架也可能出现错误,如模型无法找到关键法条,导致答案不准确。

  为全面评估生成的答案,从验证集中选取 100 条数据,使用 ChatGLM3-6B 作为基座模型,获取不同框架下的答案并邀请人工标注者判断是否存在幻觉。结果表明模型生成的答案存在幻觉问题,SaRAF 框架下答案错误类型的幻觉率最高,RAG 框架幻觉率在各方面最高,法条能降低幻觉率。

  3.9 幻觉分析

  法条在答案生成过程中起到监督与引导作用,能应对大模型幻觉问题。通过利用法条对答案进行修正与参考,可提高答案的真实性与质量。

  4 总结

  针对生成式的法律问答任务,本文提出细粒度的刑法问答数据集 FCL-QA,收集自然语言形式的刑法领域问答对,整理相关法条,建立问答对与法条间的检索路径。基于 FCL-QA 提出法条检索增强框架 SaRAF,通过多级分类获取问题主题辅助法条检索,结合大模型经验与法条知识生成高质量回复,实验证明了 SaRAF 框架的可靠性。

  未来将进一步扩充数据集,探索提高大模型问答系统性能的方法。

李明达;邸洪波;孙媛媛;王艳华;杨志豪;林鸿飞,大连理工大学计算机科学与技术学院;大连市公安局网安支队;中国人民解放军空军通信士官学校,202501