LLM API 可以保持在线、低延迟、零报错,同时在你的应用下方悄悄改变行为。对固定短 Prompt 进行重复单 Token 采样,可以补上这个监控盲区。本文拆解论文证据、生产监控架构和告警后的诊断流程,核心边界是:漂移告警证明行为发生变化,无法单独证明服务商替换了模型。
阅读时间:约 8 分钟 · 全文约 3400 字
TL;DR
- 单 Token 指每个样本只取一个输出 Token,完整指纹仍需要多个 Prompt 和重复查询。
- 建立基线前先冻结 Prompt 语义、语言、采样参数、端点路由和归一化规则。
- 使用 Jensen-Shannon 散度或 Energy Distance 比较分布,再用真实基线数据校准阈值。
- 告警支持行为变化结论;模型身份与根因需要更强的独立证据。
- 低成本指纹需要和任务 Eval、部署记录、跨供应商采样及可回滚诊断流程组合。
API 在线不等于行为稳定
传统监控回答的是服务状态:
- 端点能否访问;
- P50 与 P95 延迟是多少;
- 请求错误率是否升高;
- Token 和成本是否超出预算。
它无法判断同一组输入是否继续产生同一种输出分布。服务商可以更新权重、Tokenizer、量化版本、推理引擎、Kernel、路由、缓存、System Prompt 或采样默认值,而 HTTP 状态码仍然是 200。
Agent 系统对这类变化尤其敏感。格式、拒答、工具选择或第一步推理发生微小漂移,可能沿多步骤工作流逐级放大,同时基础设施仪表盘保持全绿。
ACM 论文 Behavioral Fingerprints for LLM Endpoint Stability and Identity把两类指标明确分开:Reliability 描述服务健康,Stability 描述固定接口契约下的行为一致性。论文提出的 Stability Monitor 定期采样固定 Prompt 集合,并持续检测输出分布变化。
一个输出 Token 为什么有信号
让模型随机说一个数字、颜色、城市、动物、字母或硬币正反面,答案通常既不随机,也不均匀。Tokenizer、预训练语料频率、后训练、解码方式和服务栈共同塑造了每个答案的概率。
arXiv 论文 One Token Is Enough把这些偏差转成黑盒测量:
- 用简单任务与不同语言交叉形成 Prompt Cell。
- 要求每个 Cell 只返回一个词,并重复查询。
- 把合法答案归一化为类别。
- 为每个 Cell 估计答案分布。
- 用 Jensen-Shannon 散度比较指纹。
论文标题容易造成误解。一个 Token 是每个样本的输出预算,估计分布仍需要大量查询。
论文使用 10 类任务和 4 种语言,共形成 40 个 Cell。大多数模型在温度 1.0 时每 Cell 采样 30 次,在温度 0 时采样 3 次;高价前沿模型使用 15 次随机采样。完整实验覆盖 165 个模型、326047 次响应,作者报告总成本为 34.44 美元。
这套方法把成本从长文本生成转移到高频短采样。每次请求输出很少,因此可以比完整领域 Eval 更频繁地运行。
现有证据实际证明了什么
两篇一级信源回答了相关但不同的问题。
身份验证
单 Token 论文先从可信部署登记参考指纹,再把被审计端点与参考分布比较,对平均 Jensen-Shannon 散度设置阈值。
在论文的拆分样本实验中:
- 完整 40 Cell 的 ROC AUC 为 0.971,等错误率为 7.3%;
- 8 个 Cell 的等错误率为 10.6%;
- 16 个 Cell 为 9.5%;
- 跨供应商验证的 AUC 降到 0.880,同一供应商混合口径为 0.971。
这些结果证明在论文威胁模型内可以进行概率式验证,误差仍然存在。它不等于密码学身份认证。
模型家族归因更弱。最近邻分类器识别留出模型家族的准确率为 59.5%,频率加权随机基线为 18.4%。这是有价值的取证信号,单独用于生产判定仍然偏弱。
端点漂移检测
ACM Stability Monitor 取重复响应的第一个 Token,转成固定嵌入,然后用 Energy Distance 比较每个 Prompt 的样本集合。Permutation Test 的 p 值描述分布变化证据,Sequential Evidence Aggregation 支持连续监控与可选停止。
作者在受控验证中每次只改变一个变量:
- 模型家族;
- 模型版本;
- 推理栈;
- 量化;
- 温度。
除温度从 0.7 调到 0.6 外,其余变化都在下一次指纹中触发。这个小幅温度变化经过 18 次指纹才触发。受控实验在每次干预中只产生一次变化事件,稳定阶段没有报告误报。
这证明了实验条件下的检测机制,无法外推成普遍的零误报承诺。
轻量生产改造
开源项目 Codex Behavior Today展示了一个更窄的监控器:每天对 5 个固定 Prompt Cell 收集 100 个短答案,对外发布聚合计数、延迟摘要和分布距离,原始答案与凭据留在本地。
它的 README 把证据边界写得很清楚:显著偏移只表示该端点的采样答案分布超出自身历史范围。它不识别模型权重,不证明模型替换,也不测量模型综合能力。
生产中的漂移温度计应该遵守这条边界。
把监控器设计成版本化测量系统
完整系统至少有五层。
第一层:探针契约
每个 Cell 都需要稳定规格:
id: random_number_zh
system_prompt: "只返回一个答案。"
user_prompt: "请随机说出一个 1 到 100 之间的整数。"
language: zh
temperature: 1.0
max_output_tokens: 16
reasoning_mode: disabled
expected_answer_type: integer_1_100
samples_per_run: 20
整份契约需要一起版本化。System Prompt、语言、温度、输出上限或推理模式变化,都会创建新的测量口径。
探针要覆盖多个语义任务与语言。单个 Prompt 很便宜,也很脆弱。多 Cell 电池能够区分广泛端点变化与局部采样噪声。
第二层:响应台账
保存足以审计测量的数据:
- UTC 时间、Run ID;
- 端点、服务商、区域和返回的模型字符串;
- Prompt Cell 与契约版本;
- 可见答案与归一化类别;
- 合法、非法、拒答、空响应或推理 Trace 状态;
- 延迟、输入 Token、输出 Token、缓存 Token 与成本;
- 可获取的运行配置和响应元数据。
失败数据不得静默丢弃。arXiv 论文对每条响应进行分类并报告合法率。拒答和非法响应可以退出核心指纹计算,但其比例仍是重要监控信号。
原始答案可以留在受控本地存储,对外仪表盘优先发布聚合结果。
第三层:基线登记
用于身份验证时,从可信的一方部署登记参考指纹。用于稳定性监控时,在准备监控的同一端点和路由上收集多个稳定运行。
拆分基线样本,估计正常的端点内距离。条件允许时,也收集已知变化对照,包括其他模型版本、服务商、区域、量化或解码配置。
阈值应该从这些分布产生。直接复制论文阈值,会忽略你的供应商方差、探针组合、样本量和误报成本。
第四层:距离与不确定性
对分类答案,Jensen-Shannon 散度具有对称、有界、支持集合不一致时仍可计算等特点。每个 Cell 单独计算,再用明确覆盖规则聚合。
对第一个 Token 的嵌入,ACM 方案使用 Energy Distance 与 Permutation Test。具体统计量之外,还要守住三项控制:
- 基线样本与当前样本使用同一契约;
- 阈值来自自己的数据校准;
- 告警保留不确定性和逐 Cell 贡献。
仪表盘至少展示聚合分数、逐 Cell 分数、合法样本数和基线分布。只有红灯、没有证据的监控器,本身又成为一个黑盒。
第五层:连续决策规则
每天监控意味着持续重复检验。长期使用固定 p 值阈值,会积累误报机会。
可以使用 ACM 论文采用的 E-value 连续方法,或设计更保守的业务规则:
- 连续多次运行超过阈值;
- 达到最低合法样本覆盖;
- 多个 Cell 同时变化;
- 没有并发采集异常;
- 设置冷却时间和显式重建基线流程。
决策规则取决于误报成本。安全审计可以接受更多人工调查,自动切换供应商则需要更强证据。
分开管理漂移、身份与原因
整套系统最重要的是控制结论强度:
| 证据层级 | 可以支持 | 无法直接支持 |
|---|---|---|
| 偏离历史 | 该端点采样行为发生变化 | 服务商替换了模型 |
| 匹配可信参考 | 当前行为在本协议下与参考一致 | 权重完全相同 |
| 接近某家族 | 指纹更接近某个已知家族 | 模型来源已经证明 |
| 部署证据 | 版本、路由、引擎或配置发生变化 | 该变化解释全部回归 |
| 受控回滚 | 回滚一个变量后恢复基线 | 没有其他共同原因 |
单 Token 论文本身把生态异常表述为服务分布与参考部署之间的统计偏差,没有指控意图。论文列出的良性解释包括权重更新、授权量化、服务差异、缓存和隐藏推理。
证据阶梯让检测器保持有用,同时避免越权成为归因系统。
告警后运行诊断树
检测只负责启动调查。
第一步:验证测量本身
检查样本覆盖、归一化、限流、重试、拒答、空输出、隐藏推理、Prompt 版本、温度、输出上限和响应级缓存。
论文区分了 Prefix Cache 与 Response Cache。前缀缓存改变成本和延迟,不应改变条件输出分布;直接重放完成结果会压缩方差并污染指纹。
第二步:独立复采
运行第二个采样窗口。条件允许时只改变观察路径:
- 使用另一区域或账号;
- 从聚合商切到官方直连;
- 选择另一个提供同名模型的服务商。
目标是区分端点变化与单条采集路径异常。
第三步:运行任务 Eval
行为指纹能够发现广泛分布变化,无法判断应用是否回归。
运行对变化最敏感的生产 Eval,包括 Schema 合法率、工具选择、拒答政策、事实依据、任务完成或领域质量。指纹告警后任务指标稳定,仍可能影响审计,但处置优先级不同。
第四步:建立原因树
每次只检验一个变量:
- 模型 Alias 或版本;
- 服务商与路由;
- System Prompt 或安全层;
- 采样参数与推理模式;
- 量化或推理引擎;
- 缓存行为;
- 硬件、Kernel、Batch 或负载。
服务商变更日志和支持回复属于归因证据。单靠指纹形状无法完成根因判断。
第五步:确认、重建基线或回滚
已知变化可接受且任务 Eval 通过时,记录原因并登记新基线。变化违反接口契约时,回滚路由或切换供应商。旧指纹与决策日志继续保留。
失败方式与边界
样本太少
一次单 Token 回答几乎没有身份价值。信号存在于分布中,需要共同设计查询预算、Cell 数量和阈值。
可变 Alias
滚动 Alias 合法变化时,适合监控漂移;业务要求身份连续时,应登记日期化版本或稳定 Checkpoint。
强制或隐藏推理
arXiv 论文排除了无法观测直接单次生成的端点。把推理后答案和直接单 Token 完成混在一起,可能聚类出协议差异而非模型身份。
参考指纹漂移
参考本身会老化。论文验证了短期稳定,没有验证跨月不变。需要制定刷新策略,同时保留旧基线用于审计。
服务商方差
arXiv 实验中,34 组同模型跨供应商配对有 10 组超过异常阈值。忠实模型也可能因为服务栈不同而表现不同。阈值要在实际购买的路由上校准。
能力盲区
指纹变化时任务质量可能稳定,指纹稳定时某项狭窄能力也可能回归。领域 Eval 仍然需要保留。温度计无法替代体检。
常见问题
一次查询可以识别 LLM 吗?
不可以。这套方法每次查询只取一个输出 Token,再对多个 Prompt 重复采样。分布才携带信号。
多少次查询才够?
没有统一数字。arXiv 论文在其采样设计下,8 个 Cell 的等错误率为 10.6%,16 个 Cell 为 9.5%。实际预算取决于目标错误率和供应商方差。
告警后应该自动切换供应商吗?
只有决策规则已经针对自动切换动作完成校准,且独立任务检查给出一致结论时才适合。早期系统先产生调查告警。
指纹能证明模型替换吗?
不能。它可以证明与可信参考不一致,或与另一个指纹相似。权重、量化、服务栈、路由、Prompt、缓存和解码都可能改变行为。
可以公开原始答案吗?
简单探针的隐私风险通常较低,API 元数据和账号路径仍可能敏感。对外发布聚合指标,原始证据保存在受控存储。
参考资料
- One Token Is Enough: Fingerprinting and Verifying Large Language Models from Single-Token Output Distributions
- Behavioral Fingerprints for LLM Endpoint Stability and Identity
- Codex Behavior Today
先把系统作为只能告警的影子监控器运行。积累误报率、任务 Eval 关联和真实调查记录后,再判断它是否已经获得自动切换供应商的权限。