解锁司法公正: 大语言模型与法律知识如何彻底变革案例检索
在法律界,stare decisis (遵循先例) ——即坚持已决事项——是一个基本原则。对于法官和律师而言,寻找相关先例不仅仅是一项研究任务,更是维护司法公正的关键要求。如果法官无法找到与当前案件相呼应的过往案例,法律的一致性将面临风险。
然而,在海量数据中“大海捞针”正变得越来越困难。法律案例检索与在谷歌上输入一个问题有着天壤之别。这里的“查询 (Query) ”通常是描述新情况的整个案件文档,而需要检索的“文档 (Document) ”则是过去那些冗长、复杂的判决书。这些文档充满了专业术语、复杂的程序细节,且往往在一段文本中包含多种不同的罪行。
传统的信息检索方法,甚至现代的标准语言模型,在这里都显得力不从心。它们要么被文本长度压垮 (截断了重要内容) ,要么无法理解将查询与先例匹配所需的特定法律细微差别。
在这篇文章中,我们将深入探讨 KELLER (Knowledge-guidEd case reformuLation for LEgal case Retrieval,即面向法律案例检索的知识引导案例重构) ,这是由中国人民大学研究人员提出的一种新方法。该方法创造性地结合了大语言模型 (LLM) 与专业法律知识,将混乱的案例文档“重构”为结构化、有意义的事实。其结果是一个不仅更准确,而且对法律专业人士来说具有可解释性的检索系统。
长篇法律文本的挑战
要理解为什么 KELLER 是必要的,我们首先需要看看数据。在标准的网络搜索中,查询可能是“纽约最好的披萨” (短) ,文档是一篇博客文章 (中等) 。而在法律检索中,查询是一个法律案件 , 目标也是一个法律案件 。
如下图所示,一个法律案件是一个结构化的文档,包含几个不同的部分: 程序、事实、理由、判决和尾部。

“事实”部分 (红色高亮) 通常对于寻找相似案例最为重要。然而,请注意其复杂性。一个案件可能涉及纵火,但也可能同时涉及继承纠纷或袭击。
挑战主要有三点:
- 长度: 这些文档通常超过流行检索模型 (如 BERT,通常限制在 512 个 token) 的输入限制。
- 多事实复杂性: 被告可能被指控多项罪行 (例如,贩毒和非法持有枪支) 。一个相关的先例可能只匹配其中一项罪行。标准模型通常会将所有内容平均化,从而丢失匹配所需的特定信号。
- 缺乏专家知识: 通用的摘要工具不知道什么在法律上是重要的。它们可能会将一份 5000 字的文档总结成一段捕捉了“故事”梗概的 100 字段落,但却漏掉了决定相关性的特定法律要素 (如违反了哪条具体法律条文) 。
解决方案: KELLER
研究人员提出,我们不应该只是将原始文本输入模型。相反,我们应该利用明确的法律知识引导 LLM 的推理能力,将案件重写为检索模型更容易消化的格式。
KELLER 框架主要在三个阶段运行:
- 知识引导的案例重构: 将案件分解为“子事实 (sub-facts) ”。
- 相关性建模: 对查询的子事实与候选文档的子事实之间的匹配程度进行评分。
- 双层对比学习: 训练模型理解宏观案例层面和微观子事实层面的联系。
以下是架构的高级概览:

让我们分解这些独特的组件,了解它们是如何协同工作的。
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) 。

这种方法非常有效,因为它模仿了律师的思维方式: “这个先例是否包含我正在寻找的特定法律要素?如果是,它就是相关的,不管里面还有什么其他不相关的东西。”
3. 双层对比学习
为了训练这个模型,研究人员使用了对比学习 。 基本思想是在向量空间中拉近正样本 (匹配) 对的距离,推远负样本 (不匹配) 对的距离。
KELLER 的创新之处在于它在两个层面上进行这种操作。
第一层: 案例级训练
这使用数据集中提供的标准真实标签 (ground-truth) 。如果人类专家说“案例 A 与案例 B 相关”,模型就被训练为最大化它们的相似度得分。

第二层: 子事实级训练
这是棘手的部分。数据集提供了整个案例的标签,但没有告诉我们具体哪个子事实是匹配的。为了训练模型的细粒度理解能力,研究人员需要发明一种启发式策略来为子事实生成“银标准 (silver) ”标签。
他们利用提取的罪名类型来确定匹配。
- 如果查询子事实涉及“盗窃”,而文档子事实也涉及“盗窃”,它们被视为正样本对 。
- 如果查询子事实涉及“盗窃”,而文档子事实涉及“袭击”,它们被视为负样本对 。
该逻辑如下图所示:

这产生了丰富的训练信号,使模型即使没有昂贵的子事实级人工标注,也能学习细粒度的语义匹配。
最终的损失函数结合了案例级信号 (\(L_R\)) 和子事实信号 (\(L_S\))。

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

实验结果
研究人员在两个主要的中国法律案例检索基准上评估了 KELLER: LeCaRD 和 LeCaRDv2 。 这些数据集由法律专家标注,是该任务的黄金标准。
主要性能
结果令人印象深刻。KELLER 击败了所有基线,包括像 BM25 这样的传统方法,像 BERT 这样的通用模型,甚至像 Lawformer 这样的专门针对长文本的法律模型。

在上面的表 1 中,你可以看到 KELLER 获得了最高的 MAP (平均精度均值) 和 NDCG 分数。“匕首”符号 (\(\dagger\)) 表示这些改进具有统计学显著性。这证明了将案例分解为子事实优于试图将整个长文本塞进模型。
鲁棒性 (零样本)
法律 AI 最大的问题之一是缺乏训练数据。一个只有在看过成千上万个例子后才能工作的模型并不总是实用的。研究人员在“零样本”设置下 (即不在目标训练集上进行微调) 测试了 KELLER。

如表 2 所示,KELLER 仍然占据主导地位。这表明使用 LLM 进行的“重构”过程提供了足够强的信号,即使没有广泛的特定训练,模型也能表现良好。
处理“有争议”的查询
并非所有法律案件都是平等的。有些是“普通”的 (直截了当) ,而另一些是“有争议”的 (可能经过重审或有相互冲突解释的复杂案件) 。
研究人员按查询类型分解了性能。

图 3 突出了一个关键优势: KELLER (紫色条柱) 特别是在有争议的查询上显示出相对于基线的巨大提升。当案件变得复杂时,其他模型性能下降,而 KELLER 分离特定子事实的能力使其能够更从容地处理复杂性。
组件分析
KELLER 的每个部分都是必要的吗?消融实验 (每次移除一个部分) 证实了是的,整个系统都是必需的。

表 3 显示,将“知识引导”的重构替换为朴素摘要 (KGCR -> NS) 会导致性能大幅下降。这证明仅仅总结文本是不够的——你需要法律专家知识 (罪名/条文) 来指导摘要。
可解释性: “为什么”很重要
在像法律 (或医学) 这样高风险的领域,黑盒 AI 是危险的。律师不能去找法官说: “这个案子相关是因为 AI 给出了 0.98 的分。”他们需要指出具体的事实。
因为 KELLER 将子事实与子事实进行匹配,所以它提供了内在的可解释性。我们可以直观地看到查询的哪一部分触发了与文档的匹配。

看图 4 (上图的上半部分) 。它显示了一个热力图。
- 查询子事实 \(q_1\) (与偷窃相关) 与 文档子事实 \(d_1\) (与抢劫相关) 强烈匹配。
- 查询子事实 \(q_2\) (与逃跑相关) 与 文档子事实 \(d_2\) (与逃避逮捕相关) 强烈匹配。
这给用户一个清晰的理由: “检索到此案是因为盗窃细节匹配,且逃避细节也匹配。”
上图的下半部分( 图 5 )比较了文本质量。“朴素摘要” (黑框) 掩盖了细节。“知识引导重构” (绿框) 清楚地将文本分为“运输毒品”、“非法持有毒品”和“非法持有枪支”。这种结构确保了没有任何犯罪行为被忽视。
结论
KELLER 框架代表了法律信息检索向前迈出的重要一步。通过承认法律案件不仅仅是“长文本”,而是“结构化的事实集合”,研究人员得以设计出一个尊重领域复杂性的系统。
主要收获:
- 引导至关重要: LLM 很强大,但当由领域知识 (如具体法律条文) 引导时,比仅仅被要求“总结”要好得多。
- 粒度制胜: 将文档分解为子事实允许匹配特定的法律要素,这对于涉及多种罪行的复杂案件至关重要。
- 可解释性是可能的: 我们不必为了性能而牺牲理解。通过使用显式的子事实匹配,我们获得了更好的结果,并且对为什么选择这些结果有了更清晰的解释。
随着 AI 继续融入司法系统,像 KELLER 这样优先考虑结构、法律逻辑和可解释性的方法,将成为确保技术支持而非模糊正义追求的必要工具。
](https://deep-paper.org/en/paper/2406.19760/images/cover.png)