The User You Can't Delete: Right to Be Forgotten in AI Systems
A deletion request lands in your queue. A user has invoked their right to erasure, and legally you have a month to make their personal data disappear. In a normal system this is a DELETE statement and a smug audit-log entry. In an AI system it is the moment you discover that your data doesn't live in one place — it has been smeared across a fine-tuned model's weights, baked into a vector index, cached in a dozen retrieval snapshots, and copied into last quarter's evaluation set. There is no single row to delete. The user is, in a very literal engineering sense, undeletable.
This is not a hypothetical. In March 2025 the European Data Protection Board launched a coordinated enforcement action across thirty national authorities focused specifically on the right to erasure. Regulators have converged on an uncomfortable position: including someone's data in training is processing, so Article 17 applies to the model, not just the database. The question every AI team eventually faces is whether output suppression — teaching the model to refuse to talk about someone — is enough, or whether you actually have to remove the influence of their data from the system. The honest answer is that most teams have never designed for either.
The reason this catches people off guard is that "delete the data" is an assumption baked so deep into how we build software that we never notice it. Relational databases give us referential integrity and cascading deletes. Object storage gives us lifecycle policies. We built an entire compliance industry on the premise that data is addressable — that if it exists, you can point at it and remove it. Machine learning quietly breaks that premise. A model doesn't store your records; it stores a statistical shadow of them, distributed across billions of parameters with no index back to the individual. Forgetting stops being a lookup and becomes a research problem.
Where the copies hide
Before you can argue about unlearning versus suppression, you have to find everything. This is the step most teams underestimate, because in an AI pipeline the same personal data fans out into places that don't look like data stores.
A user's information typically lands in at least seven distinct locations. The training corpus and any fine-tuning sets are the obvious ones. But there is also RLHF and preference data where their interactions shaped reward signals; chat logs and telemetry captured for debugging and analytics; evaluation and golden datasets that quietly duplicate production traffic; the retrieval index — usually a vector database — that powers your RAG system; and derived caches including semantic caches, prompt caches, and materialized retrieval snapshots. A deletion that only touches your primary database leaves six other copies intact, each of them still processing personal data under the regulator's definition.
Data mapping for AI therefore has to be deliberate and maintained, not reconstructed in a panic when a request arrives. The practical move is to tag data with its subject identity at ingestion and propagate that tag through every derivative artifact — every embedding, every fine-tune shard, every eval snapshot carries a back-reference to the human it came from. Without that lineage you are doing forensic archaeology under a legal deadline. With it, a deletion request becomes a fan-out query instead of an investigation.
The vector index that only pretends to forget
The single most dangerous gap is the one that looks solved. You call delete(ids=[...]) on your vector store, the record vanishes from query results, and everyone moves on. Under the hood, most vector databases built on HNSW indexes do not erase anything. They flip a metadata flag so future searches skip the entry, but the raw vector stays in the index file on disk, physically unchanged. This is a soft delete masquerading as erasure.
That distinction is not academic pedantry — it is a live attack surface. Embeddings are not anonymous hashes of text; they are lossy but invertible representations, and inversion techniques have gotten alarmingly good. Research on soft-deleted embeddings in HNSW stores showed that by reading the raw index files at the storage layer — bypassing the API entirely — an attacker using an off-the-shelf inversion model recovered roughly a quarter of exact person names and nearly half of geographic locations from biographical data, and reached 100% recovery on structured fields like patient age and gender. On facial embeddings, top-1 identity recovery hit 99%. The "deleted" user was reconstructible the whole time.
The regulatory bar here is explicit: the EDPB has stated that erasure must be both verifiable and irreversible, and that suppressing records from query results alone does not satisfy Article 17. A soft delete is exactly the thing they are telling you is not enough. If your compliance story is "we call the delete API," you are one storage-layer audit away from a finding. The right treatment for embeddings is to assume they carry the same confidentiality as the raw text they encode, and to make deletion physically real — compaction that rewrites the index, or a cryptographic approach that makes the residual bytes meaningless.
Suppress, delete, or unlearn
Once you have found the copies, you face a genuine engineering fork, and the correct answer depends on where the data sits and how strong a guarantee you need.
Suppression is the fastest and the weakest. You add the individual to a blocklist so the model refuses to surface information about them, or you filter their records out of retrieval at query time. This is instant and reversible, which makes it perfect as a first response — you can stop the bleeding within minutes of a request. But the underlying data still exists, the model's parameters are unchanged, and a jailbreak or a storage-layer read can still expose it. Suppression buys time; it does not discharge the obligation.
Pipeline deletion is the honest baseline: physically remove the person's records from every store you mapped — corpus, logs, evals, and index — with hard deletes and tombstoning so nothing can be re-indexed or recovered. For everything except the trained model itself, this is the work, and it is mostly a plumbing and lineage problem rather than a research one.
Unlearning is what you reach for when the influence is baked into weights and retraining from scratch is infeasible. Naive retraining is the gold standard and is usually off the table on cost alone; you are not rebuilding a foundation model because one user opted out. Machine unlearning tries to remove a specific example's influence cheaply. The most production-ready pattern remains SISA — Sharded, Isolated, Sliced, Aggregated — where you split training data into disjoint shards, train a sub-model per shard, and aggregate. Because each data point's influence is confined to one shard, deleting it means retraining only that shard from a checkpoint rather than the whole model. Reported retraining speedups land in the 55–65% range with sub-percent accuracy loss. The catch is that SISA is an architecture decision you have to make before training; you cannot bolt it onto a model that was already trained as one monolith.
The pragmatic 2025 posture combines all three: suppress immediately to meet the deadline and stop exposure, delete from every pipeline store as the real remediation, and reserve unlearning or targeted retraining for the cases where regulators or risk genuinely demand that the model itself forget.
Designing for forgettability up front
The teams that handle erasure gracefully are the ones that treated it as an architectural requirement rather than a compliance afterthought, and the cheapest lever they pulled was cryptography.
Crypto-shredding flips the deletion problem inside out. Instead of hunting down and physically erasing every copy of a user's data, you encrypt each user's data with a per-user key at ingestion, and when a deletion request arrives you destroy that one key. The ciphertext can stay exactly where it is — in immutable logs, in append-only event stores, in backups you can't surgically edit — because without the key it is cryptographically indistinguishable from random noise. This is how you satisfy Article 17 in systems that were never designed to delete individual rows, and it extends naturally to embeddings: encrypt vectors under a per-subject key and discard the key on deletion, and the residual bytes in your HNSW index become unrecoverable in milliseconds instead of requiring a full index rebuild.
The broader principle is that forgettability is a property you build in, not a procedure you run later. That means keeping subject-level lineage from ingestion through every derivative artifact; preferring architectures like SISA when you know you'll fine-tune on user data; treating retrieval indexes as data stores subject to real deletion, not soft flags; and putting an expiry and an owner on every cache and snapshot so copies don't quietly accumulate faster than you can delete them. It also means being honest in your model-anonymity assessment: the EDPB's Opinion 28/2024 was explicit that a model trained on personal data cannot be assumed anonymous, and that you have to show the likelihood of re-identification is insignificant — a much higher bar than "we didn't store names."
The uncomfortable truth is that the industry built AI systems on the assumption that data, once ingested, was a permanent asset — and the law is now asserting that it is a liability with an expiration date the user controls. You can keep treating erasure as a fire drill that recurs every time a request lands, or you can decide, before the next model trains, that every piece of personal data entering your system should have a clean path back out. The users who can invoke this right are not going to get fewer. Design for the deletion you can't currently perform, because the request is already in someone's queue.
- https://keferboeck.com/en-gb/articles/gdpr-and-ai-right-to-be-forgotten-now-means-unlearning
- https://www.helpnetsecurity.com/2025/07/17/machine-unlearning-privacy-upgrade/
- https://arxiv.org/pdf/2508.12220
- https://milvus.io/ai-quick-reference/how-do-vector-dbs-comply-with-legal-data-privacy-regulations-eg-gdpr
- https://aws.amazon.com/blogs/machine-learning/implementing-knowledge-bases-for-amazon-bedrock-in-support-of-gdpr-right-to-be-forgotten-requests/
- https://github.com/OWASP/AISVS/blob/main/1.0/en/0x10-C08-Memory-Embeddings-and-Vector-Database.md
- https://arxiv.org/pdf/2606.18497
- https://gdpr-info.eu/art-17-gdpr/
- https://www.emergentmind.com/topics/sisa-framework-for-machine-unlearning
- https://arxiv.org/html/2406.10280v1
- https://ironcorelabs.com/blog/2024/text-embedding-privacy-risks/
- https://www.conduktor.io/glossary/crypto-shredding-for-kafka
- https://granit-fx.dev/blog/crypto-shredding-gdpr-erasure-without-deleting-rows/
- https://securiti.ai/summary-of-edpb-opinion-282024-concerning-ai-models-processing-of-personal-data/
- https://www.edpb.europa.eu/system/files/2024-12/edpb_opinion_202428_ai-models_en.pdf
