核心摘要

AI 产品隐私工程的核心,是控制 Prompt、文件、Embedding、日志、输出、分析事件和训练流水线中的数据流。GDPR 与 CCPA/CPRA 要求的不只是隐私政策,而是数据最小化、目的限制、同意或退出机制、保留控制、删除流程、PII 脱敏和训练数据隔离。最安全的架构,是把每次 AI 交互都视为数据生命周期事件,明确目的、存储位置、保留周期和删除路径。

目录

核心要点

  • AI 产品会产生比团队预期更多的数据副本:Prompt、输出、Embedding、缓存、Trace、分析和训练队列。
  • 原始 Prompt 日志是隐私风险,除非保留、访问、脱敏和目的控制足够严格。
  • Embedding 并不自动匿名,它可能编码个人或敏感语义。
  • 训练数据必须与服务日志隔离,除非用户被明确告知且有有效法律依据。
  • 删除必须覆盖向量索引和缓存,不能只删主数据库。

🔧 实用工具:使用 JSON 格式化工具 校验数据清单;使用 文本差异对比工具 审查隐私政策或数据处理变更。

为什么 AI 隐私更复杂

传统 SaaS 隐私主要关注账户数据、事件和上传文件。AI 产品增加了新的隐私表面:

数据类型 隐私风险
Prompt 用户会粘贴密钥、合同、病历
生成输出 可能包含推断出的个人数据
Embedding 可能编码敏感语义
向量索引 删除和访问控制更难
Trace 可能包含工具结果和隐藏上下文
训练队列 目的可能不同于服务交付
评测集 常从生产样本复制而来

因此,“我们不会用你的数据训练模型”还不够。日志、保留、删除和访问控制仍然必须清楚。

数据清单

从数据清单开始:

json
{
  "dataClass": "ai_prompt",
  "containsPII": true,
  "purpose": "service_delivery",
  "retentionDays": 7,
  "storage": ["request_logs", "trace_store"],
  "usedForTraining": false,
  "deletionSupported": true
}

每个 AI 功能都应该说明:

  • 收集什么数据。
  • 为什么收集。
  • 存在哪里。
  • 谁能访问。
  • 保留多久。
  • 是否进入训练。
  • 如何删除。

数据最小化架构

flowchart TD A["用户输入"] --> B["PII 检测器"] B --> C["脱敏 / Tokenization"] C --> D["AI 功能"] D --> E["输出过滤器"] D --> F["元数据日志"] D --> G{"是否允许训练"} G -->|"否"| H["仅服务保留"] G -->|"是"| I["训练复核队列"] H --> J["删除工作流"] I --> J

数据最小化应在三层完成:

  1. 输入层:尽可能在模型调用前脱敏密钥和不必要 PII。
  2. 存储层:默认记录元数据,而不是原始内容。
  3. 训练层:用户数据进入训练前必须有明确目的和复核。

Prompt 日志与脱敏

原始 Prompt 日志对调试有用,但风险很高。更安全的策略:

日志类型 默认策略
请求元数据 保留
模型/版本/延迟 保留
token 数 保留
原始 Prompt 默认关闭
脱敏 Prompt 短保留
输出内容 短保留或哈希
工具结果 脱敏并分类
typescript
function redactPrompt(prompt: string): string {
  return prompt
    .replace(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}/gi, "[EMAIL]")
    .replace(/\b\d{3}-\d{2}-\d{4}\b/g, "[SSN]")
    .replace(/\b(?:\d[ -]*?){13,16}\b/g, "[CARD]");
}

console.log(redactPrompt("Email me at [email protected]"));

脱敏不是完美的,只能降低风险,不能当作法律豁免。

训练数据隔离

训练数据不应该是产品日志的副作用。应建立独立受控流程:

  1. 生产交互。
  2. 隐私分类。
  3. 用户同意或退出检查。
  4. PII 脱敏。
  5. 人工或自动复核。
  6. 训练数据集注册。
  7. 删除与血缘追踪。
json
{
  "sampleId": "train_sample_001",
  "sourceEvent": "evt_123",
  "legalBasis": "consent",
  "piiRedacted": true,
  "approvedForTraining": true,
  "datasetId": "support-assistant-v3"
}

保留与删除

删除请求必须覆盖主数据库之外的所有副本:

存储位置 删除要求
Prompt 日志 删除或匿名化
上传文件 删除对象存储
生成输出 删除用户可见产物
Embedding 删除向量记录
缓存 清理派生内容
Trace 脱敏或删除关联 Span
训练队列 移除待训练样本
备份 定义延迟删除策略

DSAR 工作流应维护 user_id 到所有数据位置的映射。

同意管理与用户权利

GDPR 与 CCPA/CPRA 不完全相同,但工程模式相似:

  • 明确告知数据用途。
  • 训练用途提供同意或退出机制。
  • 访问/导出流程。
  • 删除流程。
  • 必要时提供更正流程。
  • 加州用户的“do not sell/share”处理。
  • 保留与目的限制。

UI 应区分服务交付和模型改进。用户可以使用 AI 功能,但拒绝将数据用于训练。

实现模式

为每个事件添加目的标签:

typescript
type DataPurpose = "service_delivery" | "security" | "analytics" | "training";

interface AIEvent {
  eventId: string;
  userId: string;
  purpose: DataPurpose;
  containsPII: boolean;
  retentionDays: number;
  deletionKey: string;
}

function canUseForTraining(event: AIEvent, userTrainingOptIn: boolean): boolean {
  return event.purpose === "training" && userTrainingOptIn && !event.containsPII;
}

这样隐私规则才能在代码中执行,而不是停留在政策文本里。

最佳实践

  1. 默认记录元数据,不记录原始 Prompt
  2. 服务数据和训练数据必须显式隔离
  3. 源自个人内容的 Embedding 应按个人数据处理
  4. 上线前打通向量库和缓存删除流程
  5. 每个事件都标注目的和保留周期

常见问题

AI 产品中的数据最小化是什么意思?

它指只收集和保留特定 AI 功能所必需的数据。对 AI 来说,这包括 Prompt、文件、输出、Embedding、Trace 和训练样本。

GDPR 下 AI Prompt 可以用于训练吗?

只有在具备有效法律依据、明确告知、目的限制,并在必要时提供同意或退出机制时才可以。服务日志应与训练数据集隔离。

AI 产品如何处理删除请求?

删除必须覆盖 Prompt、文件、输出、Embedding、缓存、Trace、分析事件和训练队列。DSAR 系统应追踪全部存储位置。

Embedding 是匿名数据吗?

不一定。Embedding 可能编码个人或敏感语义,尤其当源内容来自私人文档或 Prompt 时。应将其视为派生个人数据。

最安全的 Prompt 日志策略是什么?

默认只记录元数据。如果必须为调试记录原文,应使用脱敏、短保留期、加密、访问控制和明确目的标签。

总结

隐私安全的 AI 产品依赖数据生命周期工程。每条 Prompt、输出、Embedding、缓存、Trace 和训练样本都应有目的、保留、访问和删除路径。最好的隐私架构不是“什么都不存”,而是显式、最小化、可审计、可执行。

相关资源