机器学习非确定性对法律决策的挑战:从代码即法律到过程治理
1. 当“代码即法律”遇上“非确定性”:机器学习对法律决策范式的根本性挑战
在人工智能技术日益渗透到社会关键决策领域的今天,从信贷审批、司法风险评估到假释预测,机器学习模型正扮演着越来越重要的角色。这些系统被寄予厚望,期待它们能以超越人类的效率和一致性处理海量信息。然而,一个深藏于其技术内核的特性——非确定性,正在悄然瓦解传统法律与监管框架赖以建立的基石。法律决策的逻辑,长久以来被类比为数学函数:输入事实与证据,通过明确的法律规则(函数)映射,输出判决结果。这种映射关系,无论是“平滑的”(微小的输入变化导致微小的输出变化)还是“颠簸的”(微小的输入变化导致截然不同的输出),其理想状态是确定且可解释的。这正是“代码即法律”这一经典网络法命题的核心隐喻:代码如同法律规则,通过预设的、确定性的“如果-那么”逻辑来规制行为。但当“代码”本身变成了一个充满随机性与不可预测性的机器学习黑箱时,这套隐喻还成立吗?本文将深入拆解机器学习非确定性的技术根源,剖析其对法律决策中公平性、可解释性与问责制构成的根本性挑战,并探讨为何我们必须从分析单一模型结果的思维,转向审视整个模型训练过程所生成的“结果分布”或“行为模式”。
2. 非确定性与随机性:机器学习不确定性的双重面孔
要理解机器学习对法律决策的冲击,首先必须厘清其不确定性的本质。这种不确定性并非单一概念,而是至少包含两个层面:随机性和更广义的非确定性。
2.1 定义辨析:从随机性到非确定性
非确定性是一个更宽泛的属性,指代这样一个过程:即使提供完全相同的输入,也可能产生不同的输出。其结果本质上是不可预测的。这完全不同于我们熟悉的确定性“如果-那么”逻辑程序,后者在相同输入下永远产生相同输出。
随机性是非确定性的一个子集,它特指那些其不确定性可以用概率论来理解和描述的过程。换句话说,随机性的非确定性源于可控或可建模的随机化操作,例如抛硬币或从数据集中随机抽样。
机器学习根植于概率论与统计学,因此其核心是随机性的。模型训练过程中的随机权重初始化、训练数据的随机打乱(Shuffling)、Dropout等正则化技术的随机屏蔽,都是有意引入的随机性来源,旨在帮助模型避免过拟合、探索更优的解空间。从理论上讲,如果我们能完全控制所有这些随机种子(Random Seed),在相同的硬件和软件环境下,训练过程应该是可复现的。
然而,现实远比理论复杂。机器学习在实践中还普遍表现出非随机性的非确定性。这种非确定性并非来自算法设计中的概率性选择,而是源于软件实现、硬件执行以及系统交互中难以完全控制的细微差别。一个典型的例子来自广泛使用的PyTorch深度学习框架。为了极致优化运行时性能,PyTorch在底层计算(如卷积运算、矩阵乘法)的执行顺序上可能会做动态调整,尤其是在利用GPU并行计算时。这些优化虽然提升了速度,却引入了与算法逻辑无关的、难以用概率描述的非确定性。此外,不同硬件(如不同型号的GPU)在浮点数计算精度上的细微差异、多线程操作中线程调度的不确定性,都可能使两次“理论上相同”的训练运行产生实质上不同的模型。
注意:许多开发者曾遇到这样的困境:在论文中报告了优异的模型性能,但其他研究者或同事却无法复现。除了常见的随机种子设置问题,这种非随机性的非确定性往往是“复现危机”的元凶之一。它意味着,即使代码、数据和随机种子全部公开,由于硬件、驱动或底层库版本的差异,结果仍可能飘忽不定。
2.2 现有法律学术的视角局限:聚焦于随机性
当前探讨机器学习与法律交叉的学术文献,大多将目光聚焦于随机性及其引发的“任意性”担忧。例如,有研究提出了“微小变化导致巨大差异”(SCMBD)的概念,用以分析由于训练数据的随机抽样差异,可能导致对相似个体产生天壤之别的决策结果,从而危及法律上的正当程序原则。另一项研究则从哲学层面剖析了算法“任意性”的三种内涵:“不可预测”、“无约束”和“不合理”。
这些讨论隐含着一个关键假设:机器学习的不确定性可以被概率论所统摄。也就是说,虽然单个模型的输出是确定的(给定输入,训练好的模型总是输出相同结果),但训练出哪个模型是随机的。因此,我们可以从“更高层次的抽象”——即概率分布的角度——来系统性地理解算法的整体预期行为,并评估其是否存在系统性的、任意的不公平。
这种视角的局限性在于,它无形中过滤掉了非随机性非确定性的影响。当Creel和Hellman声称“算法在运行时是确定性的”时,他们指的是一个已经训练完成的、固定的模型。然而,这个被选定部署的模型,恰恰是从一个受非确定性(包括且不限于随机性)深刻影响的训练过程中“抽样”出来的单一结果。如果我们无法用概率可靠地描述和约束训练过程中所有的非确定性来源,那么谈论“整体行为的概率分布”本身就失去了坚实的根基。非随机性非确定性带来的,是一种概率论工具无法有效分析的“任意性”,它直接动摇了我们基于统计规律对模型过程进行问责和评估的基础。
3. 从个体结果到分布模式:思维范式的必要转变
法律分析习惯于个案思维,关注具体决策(模型输出)是否正确,以及错误率(模型性能指标)是否可接受。这种聚焦于“点”的视角,在面对机器学习时显得捉襟见肘。我们需要一个更宏观的、关注“面”的视角:即分析可能结果的分布或模型行为的模式。
3.1 个体结果的概率分布:正确与错误的模糊地带
设想一个用于预测个人信用评分的机器学习系统。开发人员编写了一段训练代码。由于随机性(如每次训练使用的数据子集不同),多次运行这段代码会产生多个不同的信用评分模型。对于同一个申请人,将这些不同的模型分别应用于其数据,我们会得到一系列可能的信用评分,形成一个概率分布。
图1展示了一个合成示例:两位申请人(甲和乙)的预测信用评分概率分布。关键问题在于,这两个分布存在重叠区域(图中紫色部分)。这意味着,存在一个由随机训练过程产生的模型子集,对于这些模型而言,甲和乙的信用评分是无法区分的;但同时,也存在另一个模型子集,可以清晰地将他们区分开。
| 视角 | 传统法律/个案视角 | 分布模式视角 |
|---|---|---|
| 关注点 | 单一模型对特定个体的具体输出(如“拒绝甲贷款”) | 所有可能模型对特定个体输出的分布(如“甲的评分可能在650-750之间”) |
| 核心问题 | 这个决策是否正确?错误率是多少? | 不同模型对相似个体的判断是否一致?正确与错误的边界在哪里? |
| 对“正确”的定义 | 相对于一个假设的“地面真相”(Ground Truth) | 模糊不清。是区分甲乙的模型正确,还是认为他们无差别的模型正确? |
| 与不确定性的关系 | 将不确定性视为需要最小化的“噪声”或“错误” | 将不确定性视为系统固有的、需要被理解和管理的属性 |
这种分布视角揭示了一个根本性的困境:我们无法清晰界定什么是这个训练过程所产生的“正确”模型。当两个个体的评分分布存在重叠时,不存在一个绝对的“地面真相”来裁定模型应该将他们区分开还是视为等同。这导致模型的准确性概念变得模糊,决策本身呈现出非确定性:对于相同的输入个体,根据最终选取的模型不同,输出结果可能截然不同。
3.2 模型行为的整体模式:非随机性非确定性的威力
将视角从“单个个体在不同模型下的结果分布”提升到“不同模型在全体个体上表现出的行为模式”,我们能更清晰地看到非随机性非确定性的影响。
假设我们严格控制了所有随机性来源:使用完全相同的算法、相同的训练数据(通过固定软件随机种子实现),意图训练出两个理论上应该一模一样的模型。理想情况下,这两个模型在所有测试样本上的表现曲线应该完全重合。
然而,由于前文提到的非随机性非确定性(如硬件随机种子、GPU运算顺序),实际训练出的两个模型的行为模式曲线可能只是大致相似,而不会完全重叠(如图2所示)。更令人担忧的是,在实际研究中,这种由非确定性导致的模型行为差异可能非常显著。
一项由Qian等人(2023)进行的实证研究极具说服力。他们在严格控制所有软件随机性的条件下,重复训练同一模型。按常理,所有模型应该一致。但结果显示,这些“理论上相同”的模型在关键的算法公平性指标上差异巨大,波动幅度最高可达12.6%。这种差异的严重性在于:其中一个模型可能在测试集上满足某项公平性法规的阈值要求,而另一个模型却可能违反同一法规。
实操心得:这个发现对合规实践有颠覆性影响。过去,企业或机构可能训练一个模型,评估其公平性指标,通过后即部署。但现在我们必须意识到,一次训练运行得到的模型,可能只是所有可能模型中“运气好”或“运气差”的那一个。合规评估不能只看一个“幸运样本”,而必须评估训练过程的稳健性——即该过程产生的模型分布,其关键指标(如公平性、准确性)的波动范围是否在可接受的容忍度内。
这种模式层面的波动,使得“挑选一个模型进行部署”这一行为本身充满了任意性。我们如何确信,在有限的计算资源下只训练了少数几个模型后,所选中的那个就是最能代表“最优”或“最公平”可能性的模型?当非确定性导致模型在公平性等关键伦理与法律指标上剧烈摇摆时,问题就不再仅仅是某个特定模型是否公平,而是产生这些模型的训练过程本身是否合法、正当。
4. 非确定性代码的“无法无天”:对“代码即法律”框架的解构
“代码即法律”这一富有影响力的思想,其力量源于将代码视为一种类似法律的、确定性的规制力量。代码通过精确的“如果-那么”规则,以一致、可预测的方式塑造和约束行为,并因此可以被社会机构(如政府、企业)所规制,进而通过这些机构来规制个人。
然而,机器学习代码从根本上动摇了这一隐喻的前提——确定性。
4.1 确定性规则的失效
传统代码和法律规则都追求(至少在理想状态下)明确的输入-输出映射。法律规则可能存在解释空间,但其运作机制是可以通过推理、辩论和先例来厘清的。机器学习则不然。由于其统计本质和非确定性,机器学习代码并不执行确定性的“如果-那么”规则。相反,它的“如果”(输入特征与内部模式的匹配)和“那么”(最终输出)都是“模糊”的。这种模糊性并非源于规则表述不清,而是源于其从数据中学习模式的内在方式,以及训练过程中无法根除的随机与噪声。
4.2 与法律系统中非确定性的本质区别
有人可能会辩驳:法律系统本身也存在非确定性,比如法官的自由裁量权。相似案件,不同法官(甚至同一法官在不同时间)可能做出不同判决。这是否意味着法律也是“非确定性代码”?
关键在于两者对非确定性的处理机制截然不同。法律系统中的非确定性(或曰“不确定性”)受到一系列制度的约束与补救:
- 说理与论证义务:法官必须撰写判决书,阐明事实认定、法律适用和推理过程,接受上诉审查。
- 先例制度:过去的判决对后来的案件具有约束或参考作用,促进了法律适用的一致性。
- 上诉与再审程序:为纠正错误或不当判决提供了制度化渠道。
- 公开与透明:司法过程(除法定不公开外)原则上公开,接受社会监督。
这些机制共同作用,旨在最小化任意性,并为不可预测的结果提供问责路径。法律将不可预测性和矛盾视为需要修正的“缺陷”或“误判”。
反观机器学习,尤其是非随机性非确定性:
- 缺乏内在说理机制:复杂的深度学习模型是典型的“黑箱”,其内部决策逻辑难以甚至无法以人类可理解的方式呈现。
- 难以追溯与审计:由于训练过程的非确定性,即使保留所有代码和数据,也可能无法精确复现导致某个问题模型的训练轨迹。
- 问责对象模糊:当一个问题源于硬件层面的非确定性时,责任应该由算法开发者、软件框架提供方、硬件制造商还是部署机构来承担?
- 将非确定性视为特性:在机器学习领域,随机性被广泛接受为一种有益的特性(如防止过拟合),而非需要消除的缺陷。而非随机性非确定性,尽管被视为工程上的麻烦,但在追求性能的背景下常常被容忍。
因此,机器学习代码的非确定性,特别是非随机性部分,呈现出一种“无法无天”的状态——它既缺乏法律系统用以约束不确定性的内在制衡机制,其产生不确定性的方式又部分超出了概率论这一现代科学主要不确定性分析工具的描述范围。当这样的代码被用于做出影响个人权利与义务的法律性决策时,我们实际上是在用一个本质上难以预测、难以解释、难以问责的机制,来行使本应要求高度确定性、可解释性和问责制的法律权力。
5. 应对挑战:从模型评估到过程治理的路径探索
面对非确定性带来的根本挑战,法律与技术的应对必须超越对单个模型的事后评估,转向对模型训练全过程的治理与对可能结果分布的审视。
5.1 技术层面的缓解策略
虽然无法完全消除,但可以采取措施管理和减少非确定性的影响,提升过程的稳健性:
- 严格设置随机种子:在训练开始时,固定所有可能的随机种子(Python, NumPy, PyTorch/TensorFlow等),这是确保实验可复现的第一步,主要控制随机性。
- 启用确定性模式:主流框架如PyTorch提供了
torch.use_deterministic_algorithms(True)和torch.backends.cudnn.deterministic = True等设置,强制使用确定性算法,牺牲一定性能换取可复现性。但这通常只能控制软件层面的部分非确定性。 - 硬件与环境一致性:在关键应用中,尝试在完全相同的硬件配置(同一型号GPU、相同驱动版本)和软件环境(相同版本的OS、CUDA、深度学习框架)中进行训练和复现。
- 集成方法与多次运行:不要依赖单次训练结果。进行多次(如10次或更多)独立训练运行,观察关键指标(准确率、公平性指标)的均值和方差。采用模型集成(Ensemble)方法,将多个独立训练的模型组合起来进行预测,可以有效平滑掉部分非确定性带来的波动,通常能获得更稳定、更鲁棒的性能。
- 鲁棒性测试与敏感性分析:系统性地测试模型对微小输入扰动、随机种子变化、训练数据子集变化的敏感性。将性能指标的波动范围作为模型可靠性的重要评估维度。
# 示例:一个简单的训练循环,尝试增强可复现性 import torch import numpy as np import random def set_all_seeds(seed): """固定所有随机种子""" random.seed(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.cuda.manual_seed_all(seed) # 多GPU时使用 # 设置CuDNN为确定性模式(可能影响性能) torch.backends.cudnn.deterministic = True torch.backends.cudnn.benchmark = False # 在训练开始前调用 SEED = 42 set_all_seeds(SEED) # 后续的模型定义、数据加载、训练循环... # 注意:这不能保证100%复现,但能极大提高一致性。5.2 法律与监管框架的演进
技术手段只能缓解,无法根除非确定性。因此,法律和监管必须适应机器学习系统的这一根本特性:
- 从“模型审批”到“过程认证”:监管重点应从对最终部署的单个模型进行静态测试,转向对模型开发与训练全过程进行认证。这包括评估其数据管理、特征工程、算法选择、训练协议(如是否进行了多次运行和集成)、以及非确定性管理策略。
- 引入“稳健性”作为合规要件:要求高风险AI系统(如用于司法、信贷、雇佣)的提供方证明,其训练过程在给定的非确定性因素影响下,所产生的模型在关键性能指标(尤其是公平性)上的波动处于可接受的范围内。需要定义和标准化衡量“稳健性”的指标和测试协议。
- 结果分布的披露义务:在影响重大的自动化决策场景(如被拒绝贷款),系统提供者不仅应提供基于当前模型的具体决策理由(可解释性),在可能的情况下,还应告知当事人其决策结果在潜在模型分布中的位置(例如,“您的申请在95%的可能模型中都会被拒绝”),以揭示决策本身的固有不确定性。
- 建立针对非确定性风险的问责链:明确当决策错误或歧视源于难以控制的非确定性(如硬件差异)时,责任应如何划分。这可能促使硬件和软件供应商为其产品在AI工作流中的行为承担更多责任,推动他们提供更确定性的计算环境。
- 发展“分布性正当程序”理念:传统正当程序关注个案决定的公正。在机器学习时代,可能需要发展新的程序性概念,确保用于做出决策的模型生成过程本身是公平和正当的,而不仅仅是某个特定模型输出的结果。
机器学习非确定性揭示的,不仅是技术上的复现难题,更是法律与治理哲学在智能时代面临的深层挑战。它迫使我们重新思考:当决策的基石从清晰、确定的规则,转变为模糊、概率性的统计模式时,我们应如何构建与之相匹配的公平、透明与问责体系。将机器学习简单地套入“代码即法律”的旧框架已不再可行。未来的路径在于,承认并内化非确定性这一核心特征,从规制“决策点”转向规制“决策分布”,从追求绝对的确定性转向管理可控的不确定性,从而在 harnessing 机器学习巨大潜力的同时,守护法律与伦理的底线。这要求技术专家、法律学者、政策制定者和伦理学家进行前所未有的深度协作,共同设计出既能适应技术本质、又能捍卫人类价值的全新治理范式。
