Приватность

GDPR и локальный ИИ: что меняет обработка на своём устройстве

Право на удаление выглядит просто, пока не столкнётся с памятью ассистента: один факт живёт в базе, полнотекстовом индексе, векторном индексе, графе, бэкапе и логах провайдера. Разбираем все места и даём чек-лист исполнения запроса.

Запрос «удалите всё, что вы обо мне знаете» кажется простым, пока адресат не открывает свою базу. У обычного сервиса профиль лежит в одной строке. У ассистента с памятью тот же факт про человека размножен по пяти-шести хранилищам, часть из которых — производные, и удаление в интерфейсе гарантированно затрагивает не все.

Дальше — не пересказ регламента, а разбор того, что физически происходит с одним фактом и как проверить, что он действительно стёрт. Всё правовое здесь помечено как ориентир: квалификация вашей роли, оснований и сроков требует проверки у юриста.

#Короткий ответ

Локальная обработка меняет две вещи и не меняет третью.

Меняет сферу действия: статья 2(2)(c) GDPR выводит из-под регламента обработку персональных данных физическим лицом в ходе исключительно личной или бытовой деятельности. Ассистент на вашем ноутбуке для вас одного, скорее всего, попадает в это исключение — так же, как записная книжка.

Меняет исполнимость прав: когда база у вас, запрос на доступ (ст. 15) и удаление (ст. 17) вы исполняете физически, а не отправляете тикет в чужую поддержку.

Не меняет вашу роль контролёра, если вы обрабатываете чужие данные вне бытовых целей. Развернули экземпляр для команды — вы контролёр (ст. 4(7)) со всем набором обязанностей, и место сервера тут ни при чём.

#Где физически живёт один факт

Допустим, в разговоре прозвучало: «Анна из бухгалтерии выходит из отпуска 3 марта». Вот куда эта фраза расходится в ассистенте с памятью — и почему удаление в одном месте не является удалением.

Место Что там лежит Уходит ли при удалении сообщения
Таблица сообщений Исходный текст реплики Да, это цель операции
Полнотекстовый индекс Зеркало текста для поиска Только если индекс синхронизирован явно
Векторный индекс Числовое представление того же фрагмента Только если расширение установлено и вычищено отдельно
Извлечённая память Отдельная запись «Анна — бухгалтерия, отпуск до 3 марта» Нет: это самостоятельная строка
Граф связей Узел «Анна» и рёбра к другим сущностям Нет: удаляется своим действием
Резервные копии Всё вышеперечисленное на момент снимка Нет и не должно: бэкап на то и бэкап
Логи провайдера модели Текст запроса, если факт подмешался в контекст Нет: это чужая система

Читать таблицу нужно снизу вверх. Нижние две строки — те, где ваш контроль заканчивается: резервная копия переживает удаление по определению, а фрагмент, уехавший облачному провайдеру вместе с запросом, вы уже не удалите своими руками. Верхние пять — ваша зона ответственности, и там удаление возможно, но требует нескольких действий, а не одного.

#Почему производные хранилища — отдельная проблема

Полнотекстовый и векторный индексы — это не копии для удобства, а производные представления. Из вектора нельзя восстановить исходный текст дословно, но по нему можно найти фрагмент и подтвердить, что такой факт был. Регламент оперирует «персональными данными» широко (ст. 4(1)), и производное представление, позволяющее определить человека, из-под определения не выпадает автоматически. Считать ли остаточную запись в векторном индексе персональными данными — вопрос, который требует проверки у юриста; технически же правильнее её удалять вместе с исходником, а не спорить о квалификации.

Отдельная ловушка — датасеты для дообучения. Если продукт складывает пары «вопрос — ответ» в отдельную таблицу для будущей тонкой настройки, эта таблица обычно не связана каскадом с чатом: удаление чата её не трогает, и в ней остаётся полный текст. В Persona это учтено явно — строки датасета удаляются первыми, до чатов, — но проверять такую вещь стоит в любом продукте, а не предполагать.

#Что из этого следует на практике

Чек-лист исполнения запроса на удаление. Он написан для того, кто держит экземпляр и получил запрос — от участника, коллеги или от самого себя.

  1. Зафиксируйте запрос и дату. Регламент даёт на ответ срок (ст. 12), российский закон — свой; конкретные сроки уточняйте по применимому к вам праву. Отметка о поступлении нужна независимо от юрисдикции.
  2. Определите объём. «Удалить факт про Анну» и «удалить аккаунт Анны» — разные операции. Первая точечная, вторая каскадная.
  3. Удалите исходник — сообщение, заметку или запись памяти. Механика поштучного удаления описана в разборе как удалить факт из памяти ИИ.
  4. Пройдите по производным. Поиск по ключевому слову в интерфейсе — самая быстрая проверка: если фрагмент всё ещё находится, индекс не вычищен.
  5. Проверьте граф. Узел с именем человека переживает удаление сообщений, потому что он самостоятельная сущность.
  6. Решите вопрос с бэкапами письменно. Вычищать резервные копии обычно не требуют, но требуют не восстанавливать из них удалённые данные и дать копиям выйти из ротации. Зафиксируйте, какая у вас глубина ротации, — это и есть ответ на вопрос «когда данные исчезнут окончательно».
  7. Отдельно скажите про провайдера модели. Если запросы уходили в облако, часть данных лежит у него, и удалить их вы не можете — только направить запрос ему. Скрывать этот факт от заявителя нельзя.
  8. Проверьте результат поиском, а не доверием к кнопке. Порядок проверки после удаления аккаунта разобран в статье про удаление аккаунта и данных.

#Где интуиция подводит

«Локально — значит GDPR не применяется». Исключение из ст. 2(2)(c) касается личной и бытовой деятельности, а не места установки. Ассистент на домашнем сервере, куда зарегистрированы пять коллег, к бытовой деятельности не относится.

«Я обезличил, значит удалять нечего». Псевдонимизированные данные остаются персональными, пока существует ключ соответствия, — регламент прямо отделяет её от анонимизации. Процедура и её пределы разобраны в гайде про персональные данные в промпте.

«Право на удаление абсолютно». Статья 17 содержит основания и исключения: часть данных удерживается для исполнения правовых обязанностей или установления и защиты требований. Обезличенная отметка «требование исполнено такого-то числа» — как раз тот случай, когда полное стирание работает против заявителя: без такой записи оператор не докажет, что выполнил запрос.

«Экспорт и удаление — одно и то же действие». Разные права: ст. 15 и 20 — про получение копии, ст. 17 — про стирание. Порядок правильный: сначала выгрузка, потом удаление, потому что после стирания выгружать нечего. Про форматы и подводные камни переноса — в материале про экспорт и перенос памяти ИИ.

#Как это устроено у нас, включая неудобное

Персональные права участника собраны на странице «Мои данные»: выгрузка всего в один JSON и самостоятельное удаление аккаунта с подтверждением. Удаление — каскадное, с явными зачистками таблиц, у которых внешнего ключа нет, и с отдельным удалением строк датасета до чатов. Полный текст того, что и куда девается, — в политике конфиденциальности.

Теперь то, что важнее рекламной части.

Администратор экземпляра имеет полный доступ к базе. Ваши чаты, извлечённые факты и личные сообщения технически видны тому, кто держит сервер. Это не изъян конкретного продукта, а свойство любого self-hosted сервиса, и мы говорим об этом на странице политики прямым текстом. Если такая модель доверия не подходит — разворачивайте свой экземпляр; что это меняет по существу, разобрано в статье про приватный ИИ и локальное хранение.

Ключи API и токены участников лежат в базе в открытом виде. В самостоятельную выгрузку они намеренно не попадают — вместо значения там отметка о наличии и длина, чтобы файл в папке «Загрузки» не стал инструментом кражи ключа. Но в самой базе они не зашифрованы.

Удаление аккаунта стирает ветки личных сообщений у обеих сторон, и собеседник не получает об этом уведомления. Решение спорное, и мы выбрали его сознательно: обезличенный огрызок переписки один на один атрибутируется обратно тривиально, а значит не является удалением. Цену платит собеседник, и честнее сказать это до нажатия кнопки.

Резервные копии, сделанные до удаления, не переписываются. Они вымываются по мере ротации у оператора. Это стандартная практика, но она означает, что «удалено» и «физически исчезло отовсюду» — разные моменты времени.

#Частые вопросы

#Применяется ли GDPR, если я в России, а ассистент стоит у меня дома?

Регламент имеет территориальный охват, привязанный к обработке данных лиц, находящихся в ЕС, и к деятельности заведений в ЕС. Личный ассистент для себя одного, вероятно, попадает ещё и под исключение личной и бытовой деятельности (ст. 2(2)(c)). Если же вы обрабатываете данные клиентов или коллег из ЕС, ситуация меняется и требует проверки у юриста. Российская сторона вопроса разобрана в статье про 152-ФЗ и ИИ-ассистентов.

#Что делать с фактом, который уже ушёл облачному провайдеру?

Своими руками — ничего: это чужая система. Порядок такой: прекратить отправку, найти в текущей редакции документов провайдера процедуру удаления истории запросов, направить запрос, сохранить ответ. И честно сообщить заявителю, что часть данных находится вне вашего контроля, — умолчание здесь хуже неприятного факта.

#Нужно ли чистить резервные копии по запросу на удаление?

Обычно от оператора не требуют вскрывать каждый архив, но требуют не восстанавливать удалённые данные из копий и дать копиям истечь по ротации. Практический ответ заявителю выглядит так: «данные удалены из рабочей системы сегодня, из резервных копий исчезнут не позднее такой-то даты, восстановление их не вернёт». Формулировку под вашу ситуацию проверяйте у юриста.

#Считается ли эмбеддинг персональными данными?

Однозначного универсального ответа нет, и он требует проверки у юриста. Технически вектор позволяет найти исходный фрагмент и подтвердить его существование, то есть работает как указатель на человека. Практика простая: удаляйте вектор вместе с исходником и не полагайтесь на то, что регулятор сочтёт его безопасным.

#Что важнее сделать первым — выгрузку или удаление?

Выгрузку. После удаления выгружать нечего, а восстановить данные из ротации бэкапов ради исполнения запроса на доступ — плохая идея по всем причинам сразу. Порядок: экспорт, проверка, что файл читается, затем удаление.

#Локальная модель отменяет обязанности по регламенту?

Она снимает целый класс вопросов — трансграничную передачу, политику провайдера, чужие логи. Но статус контролёра и обязанности по правам субъектов она не отменяет: если вы обрабатываете чужие данные вне бытовых целей, обязанности возникают независимо от того, есть ли у вас интернет.

#Вывод

Если ассистент стоит у вас и вы единственный пользователь — регламент, скорее всего, до вас не дотягивается, но привычка знать, где лежит каждая копия факта, пригодится в любом случае. Если на экземпляре есть другие люди — исходите из того, что вы контролёр, и стройте процедуру удаления по местам хранения, а не по кнопкам интерфейса: базовая таблица, полнотекстовый индекс, векторный индекс, память, граф, бэкапы, чужой провайдер. Кнопка «удалить» закрывает первый пункт из семи, и это нормально ровно до тех пор, пока вы знаете про остальные шесть.

Хотите ИИ, который помнит вас?

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

Создать аккаунт