NDS открыла код Rampart: браузерный фильтр персональных данных для чат-ботов

Организация NDS (она публикует npm-пакеты в области @nationaldesignstudio) открыла код Rampart, системы первого поколения, которая на устройстве пользователя убирает персональные данные из сообщения до того, как оно уйдёт в чат-бот. Авторы называют её «сильной первой линией защиты» и прямо оговаривают, что это альфа-продукт. Их главный принцип: единственные личные данные, в приватности которых можно быть уверенным, те, что никогда не покидают устройство.
Почему это сделали. По описанию авторов, удаление персональных данных обычно означает либо доверие удалённому серверу, либо загрузку бинарных файлов на клиент, и у обоих путей есть проблемы. Первая: гарантии приватности у ИИ-сервисов почти невозможно проверить, по словам авторов, из первых принципов проверить заявления вендоров о приватности и безопасности нельзя; новая версия среды выполнения может случайно начать логировать чувствительные данные, а у сервисов бывают неизвестные внутренние риски вроде уязвимостей нулевого дня и инсайдеров. Вторая: большинство моделей для удаления персональных данных огромны и сужают круг тех, кому они доступны. Пример из текста: OpenAI Privacy Filter весит около 2,8 ГБ, и на относительно слабом соединении (10 Мбит/с) его загрузка в браузер заняла бы примерно 38 минут.
Как это работает. Всё происходит в браузере в промежутке между набором сообщения и отправкой; сервера в цепочке нет. Сообщение просматривают два «читателя». Первый, набор правил: регулярные выражения вместе с настоящими проверками обрабатывают структурированные данные, номера социального страхования (SSN), банковские карты, телефоны, банковские маршрутные номера и номера счетов, адреса электронной почты, IP-адреса, государственные идентификаторы. Этот слой детерминированный и быстрый. Второй, небольшая языковая модель MiniLM: правила не предугадают каждое имя или адрес улицы, поэтому модель читает предложение с учётом контекста и вычёркивает найденное в заданных категориях.
Пример из анонса: фраза «My name is Maria Garcia, my Social Security number is 123-45-6789, and I make $1,950 a month. Can you help me find affordable housing?» превращается в «My name is [GIVEN_NAME] [SURNAME], my Social Security number is [SSN], and I make $1,950 a month...», имя, фамилия и номер заменены метками, сумма дохода остаётся. Браузер временно хранит соответствующие данные на устройстве, чтобы подставить их обратно в ответ.
Обучение и проверка. Rampart обучали на наборе OpenPII 1.5M от AI4Privacy и на синтетическом генераторе, который закрепляет все 17 типов сущностей на намеренно «грязном» вводе в стиле чата. Основные цифры получены на отложенной выборке OpenPII из 30 000 строк по семи языкам с латиницей; оценивался весь поставляемый конвейер целиком. Числовых значений полноты в тексте анонса нет, только график с подписью, что показана полнота по «приватным» терминам (чем выше, тем лучше).
Ограничения. Авторы называют Rampart альфа-продуктом, задуманным как первая линия обороны в более широкой работе с персональными данными для ИИ-чатов. Сейчас поддерживаются английский, испанский, французский, немецкий, итальянский, португальский и нидерландский языки.
Как подключить. Модель доступна на HuggingFace, есть NPM-библиотека и технический отчёт (whitepaper). В примере кода создаётся защитник через createGuard, затем guard.protect заменяет данные нумерованными метками вроде [GIVEN_NAME_1], текст с метками отправляется в языковую модель, а guard.reveal возвращает исходные значения в ответ.
Ключевые факты
- NDS открыла код Rampart, альфа-версии браузерного фильтра персональных данных первого поколения: сервера в цепочке нет, всё происходит между набором и отправкой сообщения.
- Два слоя: регулярные выражения с проверками для структурных данных (SSN, карты, телефоны, почта, IP, государственные ID) и модель MiniLM для имён и адресов улиц.
- Поддерживаются семь языков: английский, испанский, французский, немецкий, итальянский, португальский и нидерландский.
- Обучение на OpenPII 1.5M от AI4Privacy и синтетических данных по 17 типам сущностей; основные результаты, на отложенной выборке OpenPII из 30 000 строк.
- Для сравнения авторы приводят OpenAI Privacy Filter (около 2,8 ГБ, примерно 38 минут загрузки при 10 Мбит/с); размер самого Rampart в тексте не указан.
Почему это важно
Всё, что человек печатает в чат-боте, уходит на удалённый сервер, который он не может проверить, а имена, адреса и номера счетов нередко попадают в сообщение между делом. Rampart предлагает другой порядок: сначала вычистить личное на устройстве, и только потом отправлять текст. Авторы подчёркивают, что проверить заявления ИИ-вендоров о приватности из первых принципов невозможно, поэтому надёжнее то, что просто не покидает устройство. Отдельный довод, размер: существующие модели для такой задачи, по их словам, огромны (пример, около 2,8 ГБ), а Rampart задуман как лёгкая альтернатива для браузера.
Кому это важно
Прежде всего разработчикам веб-интерфейсов с ИИ-чатом, которые хотят не пропускать персональные данные пользователей к сторонней модели, и командам, которые думают о приватности как об архитектурном свойстве, а не обещании вендора. Для обычных пользователей это пока скорее сигнал о направлении: защитный слой на стороне клиента в самом деле можно встроить в чат до отправки сообщения.
Как это применить
Код открыт: модель лежит на HuggingFace, есть NPM-библиотека (@nationaldesignstudio/rampart) и технический отчёт. В примере из анонса: createGuard() создаёт защитник, guard.protect(текст) возвращает безопасный текст с нумерованными метками вроде [GIVEN_NAME_1] и [STREET_NAME_1], этот текст уходит в языковую модель, а guard.reveal(ответ) подставляет исходные значения обратно в ответ. Лицензия в тексте анонса не названа, перед использованием её стоит проверить в репозитории.
Можно ли доверять
Источник, анонс самих авторов, независимой проверки в тексте нет. Числовых результатов качества (значений полноты) в самом тексте не приведено: есть только график на отложенной выборке OpenPII из 30 000 строк по семи языкам. Сравнения точности Rampart с OpenAI Privacy Filter тоже нет, эта модель упомянута лишь как пример слишком большого размера. Сами авторы называют продукт альфа-версией и «первой линией защиты», а не полным решением.
Риски и подводные камни
Это альфа-версия: авторы не заявляют, что очистка полная или гарантированная. Поддерживаются только семь языков на латинице. Из примера видно, что вычищается не всё, сумма дохода в сообщении остаётся, а в примере кода город и почтовый индекс остаются в тексте. Кроме того, чтобы подставлять значения обратно в ответ, браузер временно хранит соответствующие персональные данные на устройстве. Размер и время загрузки самого Rampart и модели MiniLM в тексте не указаны, поэтому выигрыш по сравнению с крупными моделями оценить нельзя.
«Наш главный принцип проектирования: единственные личные данные, в приватности которых можно быть уверенным, это данные, которые никогда не покидают ваше устройство.»
— NDS, анонс Rampart