核心摘要
AI 产品隐私工程的核心,是控制 Prompt、文件、Embedding、日志、输出、分析事件和训练流水线中的数据流。GDPR 与 CCPA/CPRA 要求的不只是隐私政策,而是数据最小化、目的限制、同意或退出机制、保留控制、删除流程、PII 脱敏和训练数据隔离。最安全的架构,是把每次 AI 交互都视为数据生命周期事件,明确目的、存储位置、保留周期和删除路径。
目录
核心要点
- AI 产品会产生比团队预期更多的数据副本:Prompt、输出、Embedding、缓存、Trace、分析和训练队列。
- 原始 Prompt 日志是隐私风险,除非保留、访问、脱敏和目的控制足够严格。
- Embedding 并不自动匿名,它可能编码个人或敏感语义。
- 训练数据必须与服务日志隔离,除非用户被明确告知且有有效法律依据。
- 删除必须覆盖向量索引和缓存,不能只删主数据库。
🔧 实用工具:使用 JSON 格式化工具 校验数据清单;使用 文本差异对比工具 审查隐私政策或数据处理变更。
为什么 AI 隐私更复杂
传统 SaaS 隐私主要关注账户数据、事件和上传文件。AI 产品增加了新的隐私表面:
| 数据类型 | 隐私风险 |
|---|---|
| Prompt | 用户会粘贴密钥、合同、病历 |
| 生成输出 | 可能包含推断出的个人数据 |
| Embedding | 可能编码敏感语义 |
| 向量索引 | 删除和访问控制更难 |
| Trace | 可能包含工具结果和隐藏上下文 |
| 训练队列 | 目的可能不同于服务交付 |
| 评测集 | 常从生产样本复制而来 |
因此,“我们不会用你的数据训练模型”还不够。日志、保留、删除和访问控制仍然必须清楚。
数据清单
从数据清单开始:
{
"dataClass": "ai_prompt",
"containsPII": true,
"purpose": "service_delivery",
"retentionDays": 7,
"storage": ["request_logs", "trace_store"],
"usedForTraining": false,
"deletionSupported": true
}
每个 AI 功能都应该说明:
- 收集什么数据。
- 为什么收集。
- 存在哪里。
- 谁能访问。
- 保留多久。
- 是否进入训练。
- 如何删除。
数据最小化架构
数据最小化应在三层完成:
- 输入层:尽可能在模型调用前脱敏密钥和不必要 PII。
- 存储层:默认记录元数据,而不是原始内容。
- 训练层:用户数据进入训练前必须有明确目的和复核。
Prompt 日志与脱敏
原始 Prompt 日志对调试有用,但风险很高。更安全的策略:
| 日志类型 | 默认策略 |
|---|---|
| 请求元数据 | 保留 |
| 模型/版本/延迟 | 保留 |
| token 数 | 保留 |
| 原始 Prompt | 默认关闭 |
| 脱敏 Prompt | 短保留 |
| 输出内容 | 短保留或哈希 |
| 工具结果 | 脱敏并分类 |
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]"));
脱敏不是完美的,只能降低风险,不能当作法律豁免。
训练数据隔离
训练数据不应该是产品日志的副作用。应建立独立受控流程:
- 生产交互。
- 隐私分类。
- 用户同意或退出检查。
- PII 脱敏。
- 人工或自动复核。
- 训练数据集注册。
- 删除与血缘追踪。
{
"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 功能,但拒绝将数据用于训练。
实现模式
为每个事件添加目的标签:
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;
}
这样隐私规则才能在代码中执行,而不是停留在政策文本里。
最佳实践
- 默认记录元数据,不记录原始 Prompt。
- 服务数据和训练数据必须显式隔离。
- 源自个人内容的 Embedding 应按个人数据处理。
- 上线前打通向量库和缓存删除流程。
- 每个事件都标注目的和保留周期。
常见问题
AI 产品中的数据最小化是什么意思?
它指只收集和保留特定 AI 功能所必需的数据。对 AI 来说,这包括 Prompt、文件、输出、Embedding、Trace 和训练样本。
GDPR 下 AI Prompt 可以用于训练吗?
只有在具备有效法律依据、明确告知、目的限制,并在必要时提供同意或退出机制时才可以。服务日志应与训练数据集隔离。
AI 产品如何处理删除请求?
删除必须覆盖 Prompt、文件、输出、Embedding、缓存、Trace、分析事件和训练队列。DSAR 系统应追踪全部存储位置。
Embedding 是匿名数据吗?
不一定。Embedding 可能编码个人或敏感语义,尤其当源内容来自私人文档或 Prompt 时。应将其视为派生个人数据。
最安全的 Prompt 日志策略是什么?
默认只记录元数据。如果必须为调试记录原文,应使用脱敏、短保留期、加密、访问控制和明确目的标签。
总结
隐私安全的 AI 产品依赖数据生命周期工程。每条 Prompt、输出、Embedding、缓存、Trace 和训练样本都应有目的、保留、访问和删除路径。最好的隐私架构不是“什么都不存”,而是显式、最小化、可审计、可执行。