anonym.legal

By · Last updated 2026-05-27

Назад к блогуТехнические

Анонимизация обучающих данных ML в соответствии с GDPR

GDPR запрещает использовать персональные данные для обучения ML-моделей вне целей их первоначального сбора. Специализированные Python-скрипты не обеспечивают должного соответствия требованиям.

May 27, 20267 мин чтения
ML training dataGDPR data scienceSchrems IItraining dataset anonymizationresponsible AI

Одного скрипта недостаточно

Каждая команда дата-сайентистов писала что-то вроде этого:

import re
def anonymize_email(text):
    return re.sub(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}', '[EMAIL]', text)

Этот код заменяет адреса электронной почты. Только их. Имена, номера телефонов и медицинские идентификаторы по-прежнему остаются в датасете. Аудит GDPR такой подход не пройдёт.

Разрыв между «я анонимизировал адреса электронной почты» и «этот датасет соответствует GDPR» огромен. Команды постоянно его недооценивают.

Почему GDPR ограничивает использование данных для обучения ML

Ключевое правило — статья 5(1)(b) GDPR, принцип ограничения цели. Персональные данные можно использовать только в тех целях, для которых они были собраны.

Данные о заказах собирались для обработки заказов, а не для обучения рекомендательных моделей. Медицинские записи собирались для лечения, а не для обучения моделей прогнозирования повторной госпитализации. Ответы на опросы собирались для обратной связи о продукте, а не для обучения классификаторов тональности.

Чтобы использовать эти данные для обучения ML, команда должна располагать одним из трёх оснований:

  1. Явное согласие каждого субъекта на использование данных для целей ML — сложно получить, ретроспективно зачастую невозможно.
  2. Оценка законного интереса, подтверждающая совместимость использования в ML, — юридически неопределённо, зависит от надзорного органа.
  3. Анонимизация — замена или удаление персональных данных так, чтобы датасет перестал быть персональным по смыслу GDPR.

Полноценная анонимизация обеспечивает наибольшую правовую определённость. Главная задача — делать её правильно каждый раз.

Проблема разовых скриптов

Команды, пишущие новый скрипт для каждого датасета, накапливают проблемы.

Неполное покрытие. Скрипт, написанный под одну схему, не обнаруживает новые поля. Колонка с клиническими заметками, добавленная полгода назад? Её нет в регулярном выражении. Поле отчества? Скрипт обрабатывает только имя и фамилию.

Отсутствие согласованности. Датасет A обработан скриптом v1. Датасет B — скриптом v3. Датасет C обрабатывал другой сотрудник. В итоге объединённый обучающий датасет содержит три разных метода обработки. DPO не сможет его сертифицировать.

Нет журнала аудита. Скрипт отработал. Что именно изменилось? Какие сущности были обнаружены? Без записей о обработке соответствие требованиям невозможно. Когда инспектор надзорного органа спрашивает: «Как вы убедились, что обучающий датасет очищен?», ответ «мы запустили Python-скрипт» не является достаточным.

Устаревание паттернов. Регулярные выражения, работавшие в 2023 году, пропускают форматы идентификаторов, появившиеся в 2024-м. Скрипты не обновляются сами.

Пример пакетной обработки

Команда разработчиков медицинского ИИ должна анонимизировать 8 000 записей пациентов. Команде из США нужен доступ из офиса в ЕС. Применяется решение Schrems II — данные, собранные в ЕС, не могут передаваться в инфраструктуру США без надлежащих гарантий.

Традиционный путь: дата-инженер пишет специализированный скрипт. Два-три дня на разработку. Один-два дня на проверку DPO. Один день на доработку. Итого: четыре-шесть дней. ML-проект задерживается.

Путь через пакетную обработку:

  1. Экспорт 8 000 записей в CSV.
  2. Загрузка в систему пакетной обработки.
  3. Выбор типов сущностей: PERSON, EMAIL_ADDRESS, PHONE_NUMBER, US_SSN, MEDICAL_RECORD, DATE_OF_BIRTH, LOCATION.
  4. Выбор метода: Replace (замена реалистичными синтетическими значениями с сохранением структуры).
  5. Обработка: 45 минут для 8 000 записей.
  6. Загрузка очищенного CSV.
  7. DPO проверяет метаданные обработки — найденные сущности на запись, применённые методы: 2 часа.
  8. DPO даёт одобрение. Передача данных выполняется.

Общее время: 45 минут плюс 2 часа на проверку DPO. Вместо четырёх-шести дней.

См. руководство по обучающим данным для EU AI Act о том, как те же шаги выполняют обязательства по статье 10.

Replace vs. Redact для обучающих данных ML

Метод анонимизации влияет на качество модели.

Redact заменяет персональные данные токеном вида [REDACTED]. Это работает для моделей обнаружения ПДн. Для других задач — анализа тональности, классификации, рекомендаций — такой подход вреден. Модель обучается на том, что [REDACTED] — особый токен, и не может учиться на естественном распределении имён и значений.

Replace заменяет «Иван Петров» на «Дмитрий Соколов», а «ipetrov@company.com» — на «dsokolov@synthetic.com». Структура остаётся нетронутой. Расположение сущностей, паттерны совместной встречаемости, синтаксический строй предложений — всё сохраняется. Модель обучается на реалистичном контексте.

Для обучающих датасетов ML правильный выбор — Replace. Модель не запоминает подставные значения. Она учится паттернам вокруг них. Именно это и важно.

Schrems II и трансграничные передачи

Решение Schrems II (CJEU, 2020) признало недействительным Privacy Shield между ЕС и США. Данные, собранные в ЕС, не могут передаваться в ML-инфраструктуру США — AWS US-East, GCP US-Central — без надлежащих гарантий передачи.

Три основных гарантии:

  • Стандартные договорные положения (SCC) с оценкой воздействия передачи.
  • Обязательные корпоративные правила (BCR) для передачи внутри группы компаний.
  • Исключение для анонимизированных записей — должным образом анонимизированные файлы перестают быть персональными по смыслу GDPR и освобождаются от правил передачи.

Для команд, использующих инфраструктуру США с наборами данных из ЕС, правильная анонимизация снимает проблему Schrems II. Очищенный датасет не является персональными данными. Он может передаваться свободно.

Это одно из главных практических преимуществ пакетной анонимизации. Она не просто удовлетворяет требованиям GDPR — она полностью устраняет трансграничные ограничения.

Подробнее об ограничениях передачи см. в руководстве по принципу ограничения цели в GDPR.

Что передать DPO

При подаче очищенного обучающего датасета на согласование DPO включите пять пунктов:

  1. Описание источника. Что за исходный датасет? Какова была цель сбора? Какие категории персональных данных он содержал?
  2. Конфигурация анонимизации. Какие типы сущностей обнаруживались и заменялись? Какой метод применялся?
  3. Метаданные обработки. Количество сущностей на запись, оценки уверенности, общее число обработанных записей.
  4. Оценка остаточного риска. Какова вероятность повторной идентификации любого конкретного лица? При анонимизации методом Replace с 285+ типами сущностей для структурированного текста эта вероятность крайне мала.
  5. Предполагаемое использование. Какая модель будет обучаться? Какова цель обучения?

Пакетная обработка автоматически предоставляет пункты 2 и 3. Пункты 1, 4 и 5 готовит дата-сайентист.

См. пакетный API anonym.legal — там описано, как метаданные обработки возвращаются с каждым заданием.

Что вы получаете

Датасеты для обучения ML, соответствующие GDPR, достижимы без специализированных скриптов, без многодневных задержек и без потери качества модели.

Метод Replace сохраняет естественно-языковые свойства, важные для обучения NLP. Он удаляет персональные данные, создающие риски в контексте GDPR.

45 минут пакетной обработки — это разница между затяжной проверкой на соответствие и прямолинейным согласованием DPO.

Источники

Готовы защитить ваши данные?

Начните анонимизацию PII с 285+ типов сущностей на 48 языках.

About this page

We update this page when our platform or the law changes.

Read our founder note for how we work.

Each change shows up in the timestamp at the top.

Related reading

We follow these rules

  • GDPR (EU 2016/679).
  • ISO/IEC 27001:2022.
  • NIS2 (EU 2022/2555).
  • HIPAA safe harbor under 45 CFR § 164.514(b)(2).

Our promise

We do not sell your data.

We do not train models on your text.

We store your files in Germany.

You can delete your account at any time.

You own your work.

Where we run

Our servers live in Falkenstein, Germany.

We use Hetzner. They hold ISO 27001 certification.

All data stays in the EU.

Backups run every day.

Need help?

Email support@anonym.legal.

We reply within one business day.

How we test

We run a full check suite on every release.

Each surface gets its own sweep script and report.

Human reviewers spot-check the output each week.

We track recall and precision on a labelled set.

Bad runs block the deploy.

What we never do

  • We never sell your information to third parties.
  • We never train models on what you upload.
  • We never keep your work after you delete it.
  • We never share keys with any outside firm.
  • We never run ads inside the product.

Plans in plain words

We sell credits, not seats.

One credit covers one short job.

Long jobs use a few credits each.

You can top up at any time.

Unused credits roll over each month.

Read the plans page for current rates.

Who built this

A small team of engineers and lawyers built this.

We ship from Europe and work in the open.

Our founder note spells out why we started.

Where to start

How the parts fit

A browser add-on cleans text inside Chrome.

A Word plug-in handles drafts in Office.

A small desktop tool works on whole folders.

An agent protocol link feeds large models safely.

All four share one core engine and one rule set.

Words from our team

We started this work after a lunch about cookies.

One friend kept getting odd ads on her phone.

We asked why a court file leaked through a draft.

We sketched the first build on a napkin that week.

By month three we had a tiny demo for a friend.

She used it on her first case the next day.

Common questions we hear

Can the tool read scanned PDFs? Yes, with OCR.

Does it work on long files? Yes, in small chunks.

Can I roll my own rule set? Yes, save it as a preset.

Does it run offline? The desktop build runs offline.

Do you keep my files? No, the cloud build wipes after each run.

Will it learn from my work? No, we never train on inputs.

A short tour of the workflow

Upload a file or paste a snippet of prose.

Pick the entities you want gone from the draft.

Choose a method: replace, mask, hash, encrypt, or redact.

Press run and watch the side panel show each hit.

Skim the result and tweak any rule that misfired.

Save the cleaned file or send it to a teammate.