洞见2025年9月25日 · 工程 · 阅读约 9 分钟

LLM 推理的可重现性策略

以务实、多层次的做法,解决企业部署大型语言模型时面临的非确定性难题

作者:Zokforce 研究团队

重点摘要

关键洞察

有 95% 投资生成式 AI 的组织,投资回报率(ROI)为零,原因在于系统性的非确定性削弱了可靠性、可调试性与商业价值。要解决这个问题,必须在整个 AI 技术堆栈上采取协调一致的多层次做法。

在 Zokforce,我们观察到大型语言模型(LLM)的推理过程本质上就具有非确定性:即使提示词完全相同,模型仍可能产生不同的输出。刻意设计的随机性有助于创意型任务,但正式环境中的系统,却深受一种更深层、系统性的非确定性所困扰。

Thinking Machines Lab 等团队的最新研究指出,传统的「并行 + 浮点数」假说并不完整。根本原因在于缺乏「批量不变性」(batch invariance)——服务器负载难以预测,迫使推理引擎动态调整批量大小,进而改变内部 kernel 的运行策略,导致输出在比特层级出现差异。

我们的主要建议

  • 基础工程:引入批量不变的 kernel 与确定性算法
  • API 层级控制:策略性地运用 seed 参数与采样控制
  • 应用编程:打造能从容处理输出变异、或能强制确保确定性的系统
  • 性能平衡:审慎权衡确定性的成本与业务需求

关键区别:随机性与非确定性

要理解 LLM 的非确定性,必须区分两种随机现象:

面向 随机性(受控) 非确定性(系统性)
定义 由参数控制的刻意随机 系统层级因素造成的不可预测行为
控制参数 Temperature、top_p、top_k、seed 批量大小、服务器负载、kernel 选择
可重现性 使用相同参数即可重现 每次运行的结果变化难以预测
业务影响 通常有助于创意发挥 损害可靠性与信任
解决方式 参数优化 重新设计系统架构

为何可重现性对企业至关重要

科学与研究的必要条件

可重现性是同侪审查、验证研究结果,以及因应 AI 研究「可重现性危机」的关键。它能确保输出变化只来自代码或模型的修改,因此能用来侦测错误与进行回归测试。

企业风险管理

非确定性会带来严重的商业风险。产品描述或法律文档的输出若不一致,可能造成品牌混淆、用户不满,以及缺乏可审计性。试想,顾客看到同一项产品有不同的描述,或法务团队对同一份合约收到内容不一的分析。

深入剖析:非确定性的来源

非确定性的三大来源,以批量变异影响最大
LLM 非确定性相同的提示词,产生不同的输出
影响高批量不变性问题批量大小动态变化,改变 kernel 的运行方式
影响中等浮点数运算的非结合性变异的载体,而非根本原因
可控内在随机性随机采样:temperature、top_p 与 seed

造成 LLM 推理系统非确定性行为的三大主要来源

1. 批量不变性问题

正式环境中的 LLM 服务,会将多位用户的请求打包成批量,以充分利用 GPU。核心问题在于:批量大小一改变,内部的 kernel 策略就会完全不同。

# Example: Same operation, different batch contexts
# Batch size = 4 users
result_1 = process_batch([user1, user2, user3, user4])

# Batch size = 1 user (different kernel strategy)
result_2 = process_batch([user1])

# Result: Different outputs for user1 due to kernel optimization differences

当批量太小、无法用满所有 GPU 核心时,工程师会改用「分割归约」(split-reduction)策略,由多个核心协同完成单一运算;这会改变运算顺序,破坏批量不变性。

2. 浮点数运算的非结合性

浮点数运算虽然常被视为主因,但它其实只是变异得以显现的载体。研究显示,像 torch.mm(A, B) 这样的单一运算,只要输入相同,重复运行的结果都是确定的。

关键研究发现

在 GPU 上运行同一个矩阵乘法运算 1,000 次,得到的结果每个比特都完全相同。问题不在数学精度,而在于输入会因批量变异而在每次运行之间改变。

3. LLM 的内在随机性

LLM 通过预测下一个 token 的概率分布来生成文本。主要有三种解码策略控制这个生成过程:

解码方法 关键参数 确定性程度 使用情境
贪婪解码(Greedy Decoding) 无(一律选择概率最高者) 最高 事实型任务、翻译
集束搜索(Beam Search) beam_width 中等 兼顾质量与多样性
采样(Sampling) temperature、top_p、top_k 可控 创意型任务

多层次解决方案框架

可重现性的四个层次:从 kernel 到 MLOps
第 1 层Kernel 与框架
  • 批量不变的 kernel
  • 确定性算法
  • 框架控制设置
第 2 层API 与应用程序
  • Seed 参数
  • Temperature = 0
  • 结构化输出
第 3 层提示工程
  • 确定性提示词
  • 少样本范例
  • 负面提示
第 4 层MLOps 与工作流程
  • 版本控制
  • 缓存层
  • 环境记录

四个相互集成的层次协同运作,实现企业级的可重现性

第 1 层:kernel 与框架基础

突破:批量不变的 kernel

在 vLLM 中使用批量不变的 kernel,对同一个提示词运行 1,000 次,产生了比特层级完全相同的生成结果;非确定性版本则产生了 80 种不同的输出。

主要实作策略:

  • RMSNorm:无论批量大小,归约顺序固定
  • 矩阵乘法:kernel 组态固定,不受批量形状影响
  • 注意力机制:采用固定分割大小的分割归约

各框架的确定性控制设置:

框架 控制设置 用途 性能影响
PyTorch use_deterministic_algorithms(True) 强制使用确定性算法 高
PyTorch cudnn.benchmark = False 关闭 cuDNN 基准测试 中
Hugging Face enable_full_determinism() 全流水线的确定性 中
Hugging Face torch.Generator Seed 控制 低
TensorFlow TF_DETERMINISTIC_OPS 确定性运算 中
CUDA CUBLAS_WORKSPACE_CONFIG 确定性 CUDA 运算 高

在不同框架中实作确定性控制的技术参考

第 2 层:API 与应用程序控制

策略性运用参数

  • Seed 参数:「尽力而为」的确定性(并非绝对保证)
  • Temperature = 0:采用贪婪解码,达到最高一致性
  • 结构化输出:强制使用 JSON 模式,确保格式可预测
  • 验证与重试逻辑:自动修正不合规的输出

第 3 层:卓越的提示工程

精心设计具确定性的提示词,能有效缩小模型的输出空间:

# Example: Deterministic Prompt Structure
prompt = f"""
Task: Extract key information from the following contract.
Output Format: JSON with fields: party1, party2, date, amount
Requirements: 
- Use exact text from document
- Return "N/A" if information not found
- No additional commentary

Contract: {contract_text}

JSON Response:
"""

第 4 层:MLOps 与工作流程管理

全面的可重现性

  • 版本控制:模型、提示词、参数、相依套件
  • 缓存层:相同的请求直接回传缓存的回应
  • 环境记录:完整记录系统状态
  • 监控与警示:侦测漂移与异常

性能与可重现性的取舍

可重现性需要付出性能代价
可重现性 ↑
1 2 3 4
性能 →
1
默认(非确定性)
2
批量不变 kernel
3
框架确定性模式
4
受控采样

依性能影响与可重现性程度定位的各种做法

量化成本

实现确定性,需要付出可量化的性能代价:

做法 性能影响 可重现性程度 最佳使用情境
默认(非确定性) 基准(100%) 差(15%) 高吞吐量的创意应用
批量不变 kernel 速度慢约 40% 极佳(95%) 关键任务应用
框架确定性模式 最多慢 100 倍 近乎完美(98%) 研究与验证
受控采样 影响极小 良好(70%) 平衡型正式环境系统

策略决策框架

优先考量速度:高吞吐量的创意应用、聊天机器人、脑力激荡工具等重视多样性的情境。

优先考量确定性:法律文档审阅、财务报告、科学研究,以及任何需要完整可审计性的系统。

企业引入指南

第 1 阶段:评估与奠基(第 1-2 个月)

步骤 1:业务需求分析

  • 区分需要严格确定性与需要创意弹性的使用情境
  • 为每个应用定义可接受的性能取舍
  • 建立法规遵循与可审计性要求

步骤 2:现有系统审计

  • 测量各应用目前的非确定性程度
  • 盘点对框架与基础设施的相依性
  • 记录目前的性能基准

第 2 阶段:实作与测试(第 3-6 个月)

# Example: PyTorch Deterministic Configuration
import torch
import os
import random
import numpy as np

def setup_deterministic_environment():
    # Set all random seeds
    torch.manual_seed(42)
    torch.cuda.manual_seed(42)
    torch.cuda.manual_seed_all(42)
    np.random.seed(42)
    random.seed(42)
    
    # Enable deterministic algorithms
    torch.use_deterministic_algorithms(True)
    torch.backends.cudnn.deterministic = True
    torch.backends.cudnn.benchmark = False
    
    # CUDA environment variables
    os.environ['CUBLAS_WORKSPACE_CONFIG'] = ':16:8'
    os.environ['PYTHONHASHSEED'] = str(42)

第 3 阶段:正式上线部署(第 6-9 个月)

监控与验证框架

  • 引入自动化可重现性测试
  • 构建性能监控与警示机制
  • 制定性能问题的回滚程序
  • 建立定期验证调度

真实案例研究

案例 1:金融服务业的文档处理

挑战

一家大型银行需要一致的合约分析以符合法规要求,但其 LLM 系统对相同的文档,却产生不同的风险评估。

解决方案

  • 在主要处理流程引入批量不变的 kernel
  • 使用 temperature=0 搭配结构化 JSON 输出
  • 加入具重试逻辑的验证循环

成果

  • 输出变异降低 98%
  • 30% 的性能成本(就法规遵循而言可以接受)
  • 引入后零法规事件

案例 2:医疗研究平台

挑战

医学研究人员需要可重现的文献分析,以支持同侪审查与验证研究。

解决方案

  • 完整的确定性模式,搭配全面的版本控制
  • 结合医学本体论的确定性提示工程
  • 完整的环境容器化

成果

  • 各研究团队之间达到 100% 可重现性
  • 15 项研究顺利通过同侪审查
  • 验证时间减少 50%

未来展望与新兴解决方案

新一代 LLM 推理引擎

研究显示,系统性的非确定性是可以解决的问题,而非这项技术的根本特性。我们可以预期,新的推理引擎将把保证确定性列为核心功能。

新兴技术

  • 高级批量不变 kernel:在维持确定性的同时降低性能负担
  • 混合式做法:在确定性与非确定性模式之间动态切换
  • 硬件加速:专为确定性 AI 推理优化的专用芯片
  • 协定标准化:可重现 AI 部署的产业标准

为未来做好准备

现在就投资可重现性基础设施的组织,将能善用新一代的解决方案,同时在可靠性与信任上维持竞争优势。

参考文献与延伸阅读

  1. Sitation.com,〈Output from AI LLMs is Non-Deterministic. What that means and why you should care.〉链接
  2. AIMultiple Research,〈Reproducible AI: Why it Matters & How to Improve it.〉链接
  3. StartupHub.ai,〈The Real Reason for LLM Inference Nondeterminism.〉链接
  4. Thinking Machines Lab,〈Defeating Nondeterminism in LLM Inference.〉,刊载于 Medium。
  5. Microsoft Azure,〈How to generate reproducible output with Azure OpenAI.〉链接
  6. PyTorch 官方文档,〈Reproducibility Guidelines.〉链接
  7. Hugging Face,〈Reproducible pipelines documentation.〉链接
  8. NVIDIA GTC 2024,〈Restoring the Scientific Method to HPC: High Performance Reproducible Parallel Reductions.〉

告诉我们您正在打造什么。

预约 30 分钟通话