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

Подход AWS переносит логику детекции из весов модели в инструкции. Текст оборачивается в промпт, где перечислены типы сущностей, которые нужно найти, и ожидаемый формат ответа; модель возвращает структурированный список найденных фрагментов. Два решения делают детектор независимым от конкретной модели. Первое — детекция по инструкции: вся логика живёт в промпте и тонком слое разбора ответа, поэтому не зависит от особенностей отдельной модели. Второе — настраиваемый бэкенд: модель вызывается через единый интерфейс Inferencer. В пакете есть адаптер для Amazon Bedrock, где доступны управляемые модели вроде Mistral или OSS-GPT. Тот же интерфейс принимает кастомный адаптер для открытой модели, например OSS-GPT 20B на собственном GPU, — это закрывает защищённые и изолированные контуры, у которых нет доступа к Amazon Bedrock. Интерфейсу достаточно, чтобы объект принимал список сообщений и возвращал текст ассистента.

КомпонентЧто задаётКак меняется
МодельТочность, задержку, стоимостьВыбор фронтирной модели на Amazon Bedrock или открытой модели на своём GPU
Набор сущностейЧто считается персональными даннымиПравка одной строки в инструкциях, без переобучения
БэкендГде выполняется инференсПодключение через интерфейс Inferencer: Amazon Bedrock или кастомный адаптер

Настройка распадается на два независимых компонента. Модель задаёт точность, задержку и стоимость: можно взять фронтирную модель на Amazon Bedrock или небольшую открытую модель на одной видеокарте. Набор сущностей определяет, что считается персональными данными. Чтобы его расширить, достаточно добавить доменный идентификатор или убрать ненужный — это правка одной строки в инструкциях, без переобучения и повторного развёртывания. Роль модели узкая: прочитать текст, найти все фрагменты PII и пометить каждый типом из схемы. Ответ приходит в виде структурированного JSON, а постобработка вычисляет точные позиции символов и убирает дубликаты.

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

Схема детектора описана в одном системном промпте: пятнадцать категорий сущностей, у каждой — определение в одну строку, список того, что помечать не нужно, опциональные примеры и сам входной текст. Технически детектор собран из четырёх частей: промпт задаёт схему, бэкенд запускает модель, слой разбора и смещений превращает ответ в найденные фрагменты, а короткая последовательность вызовов связывает всё вместе. Чтобы оценить подход, авторы сравнили его фрагмент за фрагментом с восемью другими LLM-детекторами, включая OpenAI PrivacyFilter, на общей эталонной разметке. Оценка шла на пяти публичных корпусах PII.

Практическая ценность здесь в том, что очистка данных перестаёт быть отдельным проектом под каждую модель. Команда, которая готовит корпус для дообучения, может сначала прогнать его через такой детектор, а потом уже обучать модель — и не хранить в весах чужие персональные данные. Для отраслевого контекста это заметный сдвиг: раньше фильтрация PII требовала своей размеченной выборки и своей модели под каждую задачу, теперь конфигурация выносится в промпт, а модель становится сменным компонентом. Код опубликован как пакет pii-detector в репозитории sample-llm-pii-detection, в статье AWS есть раздел с установкой и запуском детектора на собственных данных.