跳转到主要内容

GDPR 的删除难题:为什么你的 LLM 记忆存储是法律风险

阅读需 2 分钟Tian PanTian Pan

大多数构建 RAG 管道的团队对 GDPR 的理解方式是错误的。他们关注推理调用——模型是否生成了 PII?——却忽略了静静地藏在向量数据库中的更严重的风险敞口。每当用户提交一份文档、一张支持工单或一条个人笔记,经过分块、嵌入和索引后,该向量存储在 GDPR 下就成为了个人数据处理器。当用户行使被遗忘权时,"按 ID 删除"并不能解决问题。

被遗忘权不仅仅是从关系型数据库中删除一行数据。由个人数据派生的嵌入向量携带着可恢复的信息:研究表明,句子级嵌入中 40% 的敏感数据可以用简单代码重建,对于较短文本,这一比例高达 70%。派生的表示形式是个人数据,而非经过净化的抽象。GDPR 第 17 条适用于此,监管机构正在密切关注。

为什么向量数据库的设计不考虑删除

近似最近邻搜索的主流范式将向量视为索引后基本不可变的数据。FAISS——为大多数早期向量搜索基础设施提供动力或灵感的库——没有原生的删除操作。删除一个向量意味着重建索引或维护单独的阻止列表——如果删除比例超过索引的 10–15%,查询质量就会下降,直到从头重新索引。

即使是后来添加了删除功能的数据库,通常也将其作为软操作实现:在元数据中将向量标记为已删除,在查询时过滤掉,定期压缩。从性能角度来说,这是正确的技术权衡,但它有一个具体的法律含义:至少在下一个压缩周期之前,用户行使被遗忘权后,数据仍物理存在于存储中。墓碑标记的记录是否满足第 17 条的要求存在真正的争议,大多数数据保护机构尚未发布明确指导。

Pinecone 支持通过单个 API 调用进行基于元数据的删除,对于命名用户来说效果很好。但无服务器 Pinecone 索引根本不支持按元数据删除——只支持按 ID 前缀删除——这意味着你需要在摄入时维护从用户身份到向量 ID 的映射。如果没有做到,删除将成为全表扫描操作,甚至更糟。

更深层的问题不是 API 表面,而是大多数团队在没有用户级隔离的情况下,将数据摄入共享命名空间。当用户要求被遗忘时,如果他们的数据与其他所有人的数据共存于一个扁平索引中,就无法干净地删除他们的向量。

三种真正有效的架构模式

存储层的用户范围命名空间

最可靠的 GDPR 兼容架构是在索引时而非检索时,在物理或逻辑层面分离用户数据。在查询时进行过滤(传递 where user_id = X 条件)并不满足被遗忘权——数据仍然存在。分离必须发生在存储层。

Weaviate 的多租户模型为每个租户提供专用分片:独立的倒排索引、向量索引和元数据桶。删除租户相当于删除一个文件。该系统支持每个集群超过一百万个并发活跃租户。Qdrant 通过带有每租户访问控制的载荷级分区采用了类似方法。如果在架构设计时采用,两种方法都有效。将命名空间隔离改造到共享索引上代价高昂。

实践要求:在摄入时,用来源用户的标识符标记每个向量,并将其路由到用户范围的分区。这在写入时增加了开销,并使跨用户聚合查询变得复杂,但它使删除请求无需维护单独的 ID 映射层即可处理。

嵌入前脱敏

解决删除问题最简洁的方案是一开始就不嵌入个人数据。Tonic.ai 的研究表明,在嵌入前对敏感内容进行脱敏,可以使所得向量的敏感数据恢复率达到 0%,而直接嵌入原始文本时恢复率为 40–70%。事后无法"取消嵌入"姓名或地址;可以防止其进入索引。

嵌入前脱敏通过扫描摄入内容中的 PII 模式——姓名、地址、标识符、财务数据——并在嵌入调用前用确定性占位符标记替换它们来实现。"John Smith 的账户余额为 4200 美元"变为"[PERSON_001] 的账户余额为 [AMOUNT_001]"。嵌入捕获语义结构,而不编码可恢复的个人数据。

确定性标记化在这里至关重要。随机匿名化会破坏跨文档的引用完整性;同一实体应在会话或语料库中始终映射到同一标记,以确保检索仍能正确工作。多个隐私工程库实现了这一点,值得将管道构建为在嵌入前调用它们,而不是作为事后补充。

这种方法需要前期投入于 PII 检测,以处理你的特定数据类型。现成的基于正则表达式的扫描器会遗漏很多内容;使用带有分类提示的次级 LLM 调用进行语义扫描可以捕获更微妙的模式,但会增加延迟和成本。对于任何预期会收到删除请求的数据,这种权衡是值得的。

有界保留的索引墓碑标记

对于摄入时无法脱敏的数据——历史语料库、你无法控制内容的上传文档——索引墓碑标记是备用方案。收到删除请求后立即将向量标记为已删除,在查询时过滤它们,并按照定义的计划(每日压缩、每周完整重新索引)执行物理删除。该计划成为你处理活动记录文档的一部分。

会员专享

余下内容仅对会员开放。

会员可读完整内容 —— 每一个公开发布的观点背后,那些框架、决策与推理的全貌。

  • 完整文章,包含未公开存档的部分
  • 可落地的工作框架,附带权衡与决策依据
  • 新文章抢先看,先于公开发布

随时取消 · 一次订阅,畅读全部

参考资料

保持联系,关注我获取更多内容

阅读需 9 分钟

你的 Embedding 是个人身份信息 (PII):反向攻击与向量数据库中的被遗忘权

反向攻击可以从 embedding 中恢复出原始文本——甚至包括临床笔记中的姓名——这使得你的向量数据库属于个人数据,而非匿名的数学表示。本文将探讨为什么删除请求在面对软删除、快照和代理 ID 时会失效,以及如何通过删除传播架构来解决这一问题。

privacy
security
阅读需 12 分钟

生产环境中的 LLM 流水线在哪泄露用户数据:PII、数据驻留以及经得起考验的合规模式

大多数 LLM 数据泄露并非来自模型本身,而是源于未脱敏的 RAG 分块、逐字的提示词日志以及可被注入的检索流水线。本文是一份关于生产级 AI 系统中 PII 处理、数据驻留路由和合规日志记录的实用指南。

insider
llm
阅读需 10 分钟

RAG 管道中的 PII 泄露:为什么你的聊天机器人知道它不该知道的事情

语义相似性并不遵循数据访问边界。本文将探讨 RAG 管道如何将敏感记录暴露给未经授权的用户,以及阻止这种行为的分层防御机制。

rag
security
阅读需 10 分钟

LLM 应用的特征存储模式:停止检索那些你可以预计算的内容

将特征存储架构应用于 LLM 上下文组装,可以显著降低检索延迟、减少推理成本,并防止因训练-推理偏差(training-serving skew)而导致的模型性能静默下降。

insider
llm
阅读需 10 分钟

第三份副本:向量存储、删除完整性以及 RAG 团队一直忽视的 GDPR 缺口

当用户行使被遗忘权时,删除源文本并不代表删除了嵌入向量。大多数团队从未将向量存储建模为用户数据的“第三份副本” —— 而关于逆向攻击的相关文献表明,他们理应这样做。

security
privacy