解锁司法公正: 大语言模型与法律知识如何彻底变革案例检索

在法律界,stare decisis (遵循先例) ——即坚持已决事项——是一个基本原则。对于法官和律师而言,寻找相关先例不仅仅是一项研究任务,更是维护司法公正的关键要求。如果法官无法找到与当前案件相呼应的过往案例,法律的一致性将面临风险。

然而,在海量数据中“大海捞针”正变得越来越困难。法律案例检索与在谷歌上输入一个问题有着天壤之别。这里的“查询 (Query) ”通常是描述新情况的整个案件文档,而需要检索的“文档 (Document) ”则是过去那些冗长、复杂的判决书。这些文档充满了专业术语、复杂的程序细节,且往往在一段文本中包含多种不同的罪行。

传统的信息检索方法,甚至现代的标准语言模型,在这里都显得力不从心。它们要么被文本长度压垮 (截断了重要内容) ,要么无法理解将查询与先例匹配所需的特定法律细微差别。

在这篇文章中,我们将深入探讨 KELLER (Knowledge-guidEd case reformuLation for LEgal case Retrieval,即面向法律案例检索的知识引导案例重构) ,这是由中国人民大学研究人员提出的一种新方法。该方法创造性地结合了大语言模型 (LLM) 与专业法律知识,将混乱的案例文档“重构”为结构化、有意义的事实。其结果是一个不仅更准确,而且对法律专业人士来说具有可解释性的检索系统。

长篇法律文本的挑战

要理解为什么 KELLER 是必要的,我们首先需要看看数据。在标准的网络搜索中,查询可能是“纽约最好的披萨” (短) ,文档是一篇博客文章 (中等) 。而在法律检索中,查询是一个法律案件 , 目标也是一个法律案件

如下图所示,一个法律案件是一个结构化的文档,包含几个不同的部分: 程序、事实、理由、判决和尾部。

查询案例和候选文档案例示例。查询案例通常仅包含部分内容,因为它尚未被判决。可提取的罪名和法律条文以红色高亮显示。

“事实”部分 (红色高亮) 通常对于寻找相似案例最为重要。然而,请注意其复杂性。一个案件可能涉及纵火,但也可能同时涉及继承纠纷或袭击。

挑战主要有三点:

  1. 长度: 这些文档通常超过流行检索模型 (如 BERT,通常限制在 512 个 token) 的输入限制。
  2. 多事实复杂性: 被告可能被指控多项罪行 (例如,贩毒非法持有枪支) 。一个相关的先例可能只匹配其中一项罪行。标准模型通常会将所有内容平均化,从而丢失匹配所需的特定信号。
  3. 缺乏专家知识: 通用的摘要工具不知道什么在法律上是重要的。它们可能会将一份 5000 字的文档总结成一段捕捉了“故事”梗概的 100 字段落,但却漏掉了决定相关性的特定法律要素 (如违反了哪条具体法律条文) 。

解决方案: KELLER

研究人员提出,我们不应该只是将原始文本输入模型。相反,我们应该利用明确的法律知识引导 LLM 的推理能力,将案件重写为检索模型更容易消化的格式。

KELLER 框架主要在三个阶段运行:

  1. 知识引导的案例重构: 将案件分解为“子事实 (sub-facts) ”。
  2. 相关性建模: 对查询的子事实与候选文档的子事实之间的匹配程度进行评分。
  3. 双层对比学习: 训练模型理解宏观案例层面和微观子事实层面的联系。

以下是架构的高级概览:

KELLER 概览。我们首先执行法律知识引导的提示,将法律案件重构为一系列关键且简洁的子事实。然后,我们直接基于子事实对案例相关性进行建模。该模型通过对比学习在粗粒度的案例级和细粒度的子事实级进行训练。

让我们分解这些独特的组件,了解它们是如何协同工作的。

1. 知识引导的案例重构

这是论文核心贡献所在。目标是将冗长、混乱的法律叙述转变为一组清晰、简洁的子事实

如果你要求一个通用的 AI “总结这个案件”,它可能会给你一堆模糊的事件。KELLER 采用了一种更结构化的、基于“提示 (Prompting) ”的两步法。

第一步: 抽取

首先,系统提示 LLM 扮演法律专家的角色。它扫描全文以提取罪名法律条文

  • *输入: * 完整的案件文本。
  • *输出: * 具体罪名列表 (例如,“纵火罪”) 和涉及的具体刑法条文。

对于 LLM 来说,这比全面摘要更容易,因为这些要素通常是独特且可识别的。研究人员还使用了法律知识数据库,以确提取的罪名能正确映射到法律条文。

第二步: 引导式摘要

现在系统知道了文档中包含什么罪行,接下来执行摘要。但这里的技巧是: 它不是一次性总结全文,而是按罪名进行摘要

提示基本上是在问: “鉴于此案涉及纵火罪并违反了第 114 条 , 请总结文本中与此罪行相关的具体事实。”

结果是一组子事实 。 如果一个案件涉及三种不同的罪行,输出就是三个独特、简洁的文本片段,每个片段描述一项罪行的事实依据。这解决了“长文本”问题 (片段很短) 和“多事实”问题 (每项罪行被单独处理) 。

2. 相关性建模

一旦查询案例和候选文档被重构为这些清晰的子事实,我们如何计算它们是否匹配?

KELLER 不依赖于整个文档的单一相似度评分。相反,它构建了一个相似度矩阵

首先,每个子事实都使用文本编码器 (具体来说,是一个名为 SAILER 的预训练法律模型) 编码为向量嵌入。

编码查询和文档子事实的公式

在这个公式中,\(E_{q_i}\) 是查询的第 \(i\) 个子事实的嵌入,而 \(E_{d_j}\) 是候选文档的第 \(j\) 个子事实的嵌入。

接下来,模型使用点积计算每个查询子事实与每个文档子事实之间的相似度。

计算相似度矩阵的公式

如果查询有 3 个子事实,文档有 4 个子事实,这将产生一个 \(3 \times 4\) 的分数矩阵。

聚合: MaxSim 和 Sum (最大相似度与求和)

为了得到文档的最终得分,KELLER 使用了“MaxSim”和“Sum”逻辑。

想象一个查询涉及“抢劫”。候选文档涉及“抢劫”和“逃税”。

  • 模型查看查询中的“抢劫”子事实。
  • 它将其与文档中的“抢劫”和“逃税”都进行比较。
  • 它取最大值 (MaxSim) 。显然,抢劫与抢劫的匹配度高于逃税。
  • 它对查询中的每个子事实都这样做,并将最大得分相加 (Sum) 。

使用 MaxSim 和 Sum 聚合分数的公式

这种方法非常有效,因为它模仿了律师的思维方式: “这个先例是否包含我正在寻找的特定法律要素?如果是,它就是相关的,不管里面还有什么其他不相关的东西。”

3. 双层对比学习

为了训练这个模型,研究人员使用了对比学习 。 基本思想是在向量空间中拉近正样本 (匹配) 对的距离,推远负样本 (不匹配) 对的距离。

KELLER 的创新之处在于它在两个层面上进行这种操作。

第一层: 案例级训练

这使用数据集中提供的标准真实标签 (ground-truth) 。如果人类专家说“案例 A 与案例 B 相关”,模型就被训练为最大化它们的相似度得分。

案例级排序损失公式

第二层: 子事实级训练

这是棘手的部分。数据集提供了整个案例的标签,但没有告诉我们具体哪个子事实是匹配的。为了训练模型的细粒度理解能力,研究人员需要发明一种启发式策略来为子事实生成“银标准 (silver) ”标签。

他们利用提取的罪名类型来确定匹配。

  • 如果查询子事实涉及“盗窃”,而文档子事实也涉及“盗窃”,它们被视为正样本对
  • 如果查询子事实涉及“盗窃”,而文档子事实涉及“袭击”,它们被视为负样本对

该逻辑如下图所示:

我们提出的子事实级对比学习的图示。绿色和红色方块分别代表正样本对和负样本对。

这产生了丰富的训练信号,使模型即使没有昂贵的子事实级人工标注,也能学习细粒度的语义匹配。

最终的损失函数结合了案例级信号 (\(L_R\)) 和子事实信号 (\(L_S\))。

总损失函数公式

子事实损失计算本身遵循类似的排序逻辑:

子事实级排序损失公式


实验结果

研究人员在两个主要的中国法律案例检索基准上评估了 KELLER: LeCaRDLeCaRDv2 。 这些数据集由法律专家标注,是该任务的黄金标准。

主要性能

结果令人印象深刻。KELLER 击败了所有基线,包括像 BM25 这样的传统方法,像 BERT 这样的通用模型,甚至像 Lawformer 这样的专门针对长文本的法律模型。

表 1: LeCaRD 和 LeCaRDv2 上微调设置的主要结果。

在上面的表 1 中,你可以看到 KELLER 获得了最高的 MAP (平均精度均值) 和 NDCG 分数。“匕首”符号 (\(\dagger\)) 表示这些改进具有统计学显著性。这证明了将案例分解为子事实优于试图将整个长文本塞进模型。

鲁棒性 (零样本)

法律 AI 最大的问题之一是缺乏训练数据。一个只有在看过成千上万个例子后才能工作的模型并不总是实用的。研究人员在“零样本”设置下 (即不在目标训练集上进行微调) 测试了 KELLER。

表 2: LeCaRD 和 LeCaRDv2 上的零样本性能。

表 2 所示,KELLER 仍然占据主导地位。这表明使用 LLM 进行的“重构”过程提供了足够强的信号,即使没有广泛的特定训练,模型也能表现良好。

处理“有争议”的查询

并非所有法律案件都是平等的。有些是“普通”的 (直截了当) ,而另一些是“有争议”的 (可能经过重审或有相互冲突解释的复杂案件) 。

研究人员按查询类型分解了性能。

图 3: 不同查询类型的评估。我们在 (a) LeCaRD 和 (b) LeCaRDv2 上评估了四个模型。

图 3 突出了一个关键优势: KELLER (紫色条柱) 特别是在有争议的查询上显示出相对于基线的巨大提升。当案件变得复杂时,其他模型性能下降,而 KELLER 分离特定子事实的能力使其能够更从容地处理复杂性。

组件分析

KELLER 的每个部分都是必要的吗?消融实验 (每次移除一个部分) 证实了是的,整个系统都是必需的。

表 3: LeCaRDv2 上的消融研究结果。

表 3 显示,将“知识引导”的重构替换为朴素摘要 (KGCR -> NS) 会导致性能大幅下降。这证明仅仅总结文本是不够的——你需要法律专家知识 (罪名/条文) 来指导摘要。


可解释性: “为什么”很重要

在像法律 (或医学) 这样高风险的领域,黑盒 AI 是危险的。律师不能去找法官说: “这个案子相关是因为 AI 给出了 0.98 的分。”他们需要指出具体的事实。

因为 KELLER 将子事实与子事实进行匹配,所以它提供了内在的可解释性。我们可以直观地看到查询的哪一部分触发了与文档的匹配。

图 4: KELLER 可解释性的一个例子。图 5: 文本版本的比较。

图 4 (上图的上半部分) 。它显示了一个热力图。

  • 查询子事实 \(q_1\) (与偷窃相关) 与 文档子事实 \(d_1\) (与抢劫相关) 强烈匹配。
  • 查询子事实 \(q_2\) (与逃跑相关) 与 文档子事实 \(d_2\) (与逃避逮捕相关) 强烈匹配。

这给用户一个清晰的理由: “检索到此案是因为盗窃细节匹配,且逃避细节也匹配。”

上图的下半部分( 图 5 )比较了文本质量。“朴素摘要” (黑框) 掩盖了细节。“知识引导重构” (绿框) 清楚地将文本分为“运输毒品”、“非法持有毒品”和“非法持有枪支”。这种结构确保了没有任何犯罪行为被忽视。

结论

KELLER 框架代表了法律信息检索向前迈出的重要一步。通过承认法律案件不仅仅是“长文本”,而是“结构化的事实集合”,研究人员得以设计出一个尊重领域复杂性的系统。

主要收获:

  1. 引导至关重要: LLM 很强大,但当由领域知识 (如具体法律条文) 引导时,比仅仅被要求“总结”要好得多。
  2. 粒度制胜: 将文档分解为子事实允许匹配特定的法律要素,这对于涉及多种罪行的复杂案件至关重要。
  3. 可解释性是可能的: 我们不必为了性能而牺牲理解。通过使用显式的子事实匹配,我们获得了更好的结果,并且对为什么选择这些结果有了更清晰的解释。

随着 AI 继续融入司法系统,像 KELLER 这样优先考虑结构、法律逻辑和可解释性的方法,将成为确保技术支持而非模糊正义追求的必要工具。