一句话

L1 正则脱敏 p99 开销 < 2 ms —— 相对 LLM 往返 300-1500 ms 的 0.1-0.5%,同步 chat 路径无感。L2 NER(中文命名实体识别)p99 ~2000 ms,只能走异步 audit / 后台 sanitize 路径。 两层引擎 1000 倍差异 = 生产拓扑的硬约束

4 个场景 × 2 种脱敏模式,Apple Silicon Mac 10 核,upstream = ASGI in-process mock。L1 fast 3 runs × 200 iters median;L2 NER 1 run × 30 iters(数据稳定度 p99 极差 < 70ms,multi-run median 不影响结论)。下面是原始数字 + 你自己复现的命令。

数字

L1 fast 模式(正则引擎,覆盖 36 类中文 PII)

场景 N p50 (ms) p95 (ms) p99 (ms) 错误率 RPS Overhead vs baseline (ms)
pure_forward(纯转发基线) 200 1.73 2.22 2.41 0.00 558.1 0.00
pii_redact_forward(小包 PII 脱敏) 200 2.24 2.69 2.99 0.00 438.7 0.58
pii_redact_large(大包 PII 脱敏) 200 3.40 3.79 3.96 0.00 290.7 1.55
streaming_sse(流式响应还原) 200 2.61 3.04 3.53 0.00 370.2 1.12

L2 NER 模式(argus-redact[zh],中文命名实体识别)

同机 1 run × 30 iter × 4 scenario(数字非常稳定,20 次曲线 p50/p95/p99 极差 < 70ms,multi-run median 不会改变结论):

场景 N p50 (ms) p95 (ms) p99 (ms) 错误率 RPS Overhead vs baseline (ms)
pure_forward(基线,启用 NER 扫描但无 PII 可识别) 30 1850 1911 1921 0.00 0.5 0.00
pii_redact_forward(小包 PII 脱敏) 30 1850 1919 2058 0.00 0.5 +0.24
pii_redact_large(大包 PII 脱敏) 30 1940 2031 2076 0.00 0.5 +89.83
streaming_sse(流式响应还原) 30 1856 1930 1980 0.00 0.5 +5.60

关键洞察:NER 模式 p50 ≈ 1850 ms / call几乎全部来自 HanLP ELECTRA-base 模型 forward pass,和文本长度 / PII 密度相关性弱(pure_forward 和 pii_redact_forward 几乎同数字)。相对 L1 fast 模式的 ~2ms 差 1000 倍。这不是 argus-redact 的 overhead,是 Transformer 中文 NER 在 CPU 上的根本成本。

本次 device=CPU。尝试 MPS(Apple Silicon GPU)反而更慢(~2600ms),原因是 short-text batch=1 的 kernel launch 开销 + HanLP 多阶段 pipeline 的 CPU↔GPU 往返抵消了 GPU 算子加速。真实 GPU 收益需 batching 多请求 + 服务端 NVIDIA/CUDA 环境。

生产部署建议(根据 L1 vs L2 的 1000× 差异)

并发吞吐(仅 RPS + 错误率,L1 fast 模式)

场景 N 并发 RPS 错误率
concurrent_50(50 并发请求) 50 536.9 0.00
concurrent_100(100 并发请求) 100 583.5 0.00
concurrent_200(200 并发请求) 200 607.5 0.00

环境:Apple Silicon Mac(Darwin arm64,10 核)。Python 3.11.3,argus-redact 0.4.14,upstream = ASGI in-process mock(消除网络抖动),每组 3 次 run × 200 iters 取中位。复现命令见下方"5 行命令复现"段,自己跑一份比读别人数字可信。

为什么这些数字重要

典型 LLM API 请求往返延迟(国内直连国外云厂商)在 300–1500 ms 级别。在这个基数上,个位数毫秒的 overhead 意味着 PII 治理对用户体感基本不可见。你可以把 Argus Gateway 接进所有 chat 请求的主路径,而不是只用在"高合规场景"。

但数字本身不是产品价值。产品价值是三件事:

中文 PII 覆盖的完整度

开源 PII 工具(如 Microsoft Presidio)对中文身份证、中文地址、中国手机号的识别能力有限,需要自己写 pattern 补。Argus Gateway 的 L1 正则模式内置 36 类中文 PII(身份证、手机号、统一社会信用代码、银行卡、住址、车牌、护照、军官证、病历号等),L2 NER 模式在此之上用中文模型识别姓名 / 组织机构 / 地名。见 argus-redact 开源仓库了解完整规则清单。

Fail-safe 默认

脱敏失败(配置错误 / 引擎挂了 / 超时)时 Argus Gateway 拒绝转发明文,不静默 fallback。数字上这意味着 L1 引擎任何异常都会表现为错误率上升,而不是悄悄漏掉 PII 到 OpenAI / DeepSeek 的日志里。上表的错误率 0 说明引擎在单机 8GB 条件下稳定,不代表"没事"——合规的前提正是"坏了你会看见"。

审计粒度 + 成本透明

每次代理请求都写一行审计日志:请求 SHA 哈希、脱敏版本、upstream 模型、token 数、费用。这意味着事后追责、按部门分摊成本、合规审计都有单一真相源。这层审计本身在上表 overhead 数字里已经算进,不是"关掉审计才能跑这么快"。

自己测一份

网关代码仍在 pre-alpha 私有阶段,但 PII 脱敏引擎 argus-redact 是独立开源的 Python 包(Apache 2.0)。上面 p99 overhead 的 core 工作量就是 redact() 调用本身 —— 你 pip install 就能复测:

pip install argus-redact

python3 -c "
import time
from argus_redact import redact

payload = '我叫张伟, 手机 13800138000, 身份证 110101199003075678。'

# Warmup
for _ in range(20):
    redact(payload, mode='fast', lang='zh')

# 200 iters, sorted, 取分位
ts = []
for _ in range(200):
    t0 = time.perf_counter()
    redact(payload, mode='fast', lang='zh')
    ts.append((time.perf_counter() - t0) * 1000)
ts.sort()
print(f'p50={ts[99]:.2f}ms  p95={ts[189]:.2f}ms  p99={ts[197]:.2f}ms')
"

这段是 redact 引擎本身的 p99,不含 HTTP / FastAPI / audit 层的 overhead;那些在上表 pii_redact_forward 的数字里已经算进 —— 减去 pure_forward baseline 就是网关 wrapper 的 overhead (≈0.58ms p99 小包)。

想跑 L2 NER 模式:pip install 'argus-redact[zh]' 约 400MB(含中文 tokenizer)。把上面 mode='fast' 换成 mode='ner' 即可。警告:首次运行 HanLP 冷启动 + 迭代重加载,在 Apple Silicon Mac 上单次可达数秒 — 见上面 L2 NER 说明。

我们没测的部分(诚实清单)

如何读这些数字

不要把这组数字当 SLA 承诺。把它当最低标尺:如果你在自己环境跑出明显更差的数字(比如 L1 p99 超过 50ms),先排查这几个方向:

  1. upstream 连接池大小(默认 100,并发 > 100 会排队)
  2. audit log 的落盘介质(SQLite on SD card vs NVMe 差异巨大)
  3. Python 版本(3.10 vs 3.11 在 regex 热路径有 ~15% 差异)
  4. argus-redact 版本(0.4.x 每个 minor 都有引擎优化,pin 太老会吃亏)

也欢迎你把数字发给我们—— 极端长尾场景是真实客户教出来的,不是我们 scenario 里能凭空想到的。

关于 Argus Gateway

Argus Gateway 是企业 AI 隐私代理网关:拦截去往 LLM 的请求,脱敏后转发,响应还原后返回客户端。核心 PII 脱敏引擎 argus-redact 开源(Apache 2.0),可独立使用或嵌入自有方案。网关完整服务通过申请 demo 体验。

产品定位:把 PIPL / GDPR / HIPAA 合规要求从"写进采购合同"变成"每次请求都有数字证据"。

联系:contact@agilist.cn · 申请 demo · PIPL 白皮书