Главное
- Сочетайте правила (идентификаторы, телефоны, IBAN) с моделью NER для имён и мест.
- Удаляйте персональные данные при загрузке и ещё раз перед инференсом.
- Измеряйте полноту на собственных данных, а не на тестовом наборе.
- Журналируйте, что было удалено, никогда не оригинальные значения, и помните, что данные с удалённой информацией всё ещё могут быть персональными.
Удаление снижает риск, но не является автоматической анонимизацией
Сочетайте правила форматов для идентификаторов с распознаванием именованных сущностей для имён и контекста. Маскируйте ненужные персональные данные до индексирования и вызовов модели, включая запросы пользователей. Проверяйте на своих документах и транскриптах. GDPR действует и дальше, если человека можно определить по остальному тексту или отдельной таблице соответствий.
Техники
| Подход | Хорошо для | Пропускает |
|---|---|---|
| Регулярные выражения / правила | Идентификаторы, телефоны, электронные адреса, IBAN | Имена, контекст в свободном тексте |
| Правила с проверкой | IBAN, проверенные по контрольной сумме, DNI и NIE, проверенные по контрольной букве | Всё без фиксированного формата |
| Модель NER | Имена, места, организации | Редкие форматы, коды предметной области |
| Поиск по словарю | Известные имена, отделы, коды продуктов и клиник | Всё, чего нет в списке |
| Гибрид | Оба | Требует настройки для области |
Как заменять найденное
| Стратегия | Пример | Когда использовать |
|---|---|---|
| Простая маска | [REDACTED] | Значение не нужно для задачи |
| Типизированный заполнитель | [PERSON_1], [IBAN] | Модели нужно знать, что именно там было |
| Согласованный токен | Один и тот же человек в документе всегда [PERSON_1] | Модель должна следить, кто что сделал |
| Обобщение | Дата рождения становится годом, почтовый индекс: регионом | Деталь полезна, а точное значение: нет |
| Синтетическая замена | Реалистичное вымышленное имя | Текст должен читаться естественно, но остерегайтесь принять вымышленные имена за настоящих людей |
Где должно быть удаление данных
Удаляйте персональные данные один раз, когда данные попадают в систему, и ещё раз непосредственно перед любым вызовом модели. Второй проход ловит всё, что пользователь вписал прямо в промпт.
- При загрузке, до разбиения документов, создания эмбеддингов и сохранения.
- Перед каждым вызовом модели, как в промпте, так и в найденных фрагментах.
- В журналах и трассах, чтобы мониторинг не стал второй копией сырых данных.
- В выводах, где модель может повторить то, чего не должна.
Почему конвейеры речи сложнее
В речи идентификаторы произносятся вслух. Телефон приходит как череда слов-цифр, идентификатор читают по буквам, а имя может быть неверно распознано ещё до того, как его увидит любое правило. Разумный порядок: сначала транскрибировать, удалить персональные данные из текста и только потом передать его языковой модели. Проверяйте удаление на транскриптах, а не на набранном тексте, потому что ошибки разные.
Как измерить, работает ли это
- Соберите размеченную выборку собственных документов или транскриптов на всех языках, с которыми вы работаете.
- Отметьте каждую персональную деталь, которую человек захотел бы убрать.
- Запустите удаление и сравните по сущностям.
- Сначала отслеживайте полноту, потому что пропущенное имя: это утечка, а затем точность, потому что чрезмерное удаление разрушает смысл.
- Повторяйте тест всякий раз, когда меняете модель, правило или язык.
- Каждую неделю выборочно проверяйте реальные выводы в продакшене и добавляйте найденное в тестовый набор.
Журналируйте, что было удалено, например тип сущности и позицию, но никогда не оригинальные значения. Журнал удаления, полный оригинальных имён, сводит на нет собственную цель.
Типичные сбои
| Сбой | Причина | Исправление |
|---|---|---|
| Редкое или иностранное имя проскальзывает | NER обучен в основном на распространённых именах | Добавить словарь известных людей и проверять для каждого языка |
| Название лекарства заменено, будто это человек | Слишком рьяный NER | Добавить список исключений области и просматривать ложные срабатывания |
| Идентификатор, разорванный на две строки, остаётся | Правила применяются строка за строкой | Нормализовать пробелы перед сопоставлением |
| Персональные данные в названиях файлов, метаданных или URL | Очищен только основной текст | Очищать метаданные и санитизировать названия при загрузке |
| Сырой текст в журналах | Журналирование происходит до удаления данных | Перенести удаление перед журналированием |
Расскажите о документах, языках и идентификаторах в вашем процессе. Спроектируем и проверим маскирование до передачи данных модели или в журналы.
Обсудить маскирование данныхFAQ
Можно ли отменить удаление данных?
Только если вы храните соответствие. Храните его отдельно со строже ограниченным доступом или не храните вовсе.
Являются ли данные с удалённой информацией анонимными?
Не автоматически. Если оставшийся текст всё ещё можно связать с лицом, это остаются персональные данные по GDPR, поэтому сохраняйте остальные предохранители.
Нужно ли удаление, если модель размещена в ЕС?
Да, в большинстве регулируемой работы. Размещение в ЕС решает, где обрабатываются данные. Удаление ограничивает то, что видят модель, её журналы и оператор, а это уменьшает вред от любой ошибки.
Источники
- Регламент (ЕС) 2016/679 (GDPR), статья 4(1) и (5) и преамбула 26
- Европейский совет по защите данных, Руководство 01/2025 по псевдонимизации
- OWASP Top 10 для приложений с LLM, раскрытие чувствительной информации

Об авторе
Erik Salo Akimov · Сооснователь · Инженерия
Erik возглавляет инженерию в ESADEX. Он проектирует платформы, инфраструктуру и средства безопасности, стоящие за системами клиентов.