3,583 papers
arXiv:2608.17051 80 17 авг. 2026 г. FREE

Institution-Specific Prompting: как назвать модели свои местные секреты, чтобы она их нашла

КЛЮЧЕВАЯ СУТЬ
Обнаружено: LLM для анонимизации текста удаляет ровно то, что ей назвали — ни словом больше. Метод Institution-Specific Prompting позволяет находить локальный сленг организации — сокращения больницы, названия корпусов, внутренние коды — которые не входят в стандартные 18 категорий персональных данных и поэтому спокойно остаются в тексте. Просишь модель искать конкретные локальные категории и даёшь примеры «не удалять это» — она применяет правило по всему документу, а не гадает. Результат: находится примерно 4 из 5 ранее пропущенных идентификаторов за один проход.
Адаптировать под запрос

TL;DR

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

Главная боль: LLM хорошо чистит текст от «классических» личных данных, но пропускает то, что не входит в стандартный список — сокращение больницы «TCH», название корпуса «Mark Wallace Tower», внутренние номера пейджеров. Это не ограничение модели — она просто никогда не была об этом попрошена. Когда промпт просил её убирать только «18 категорий по HIPAA», она честно убирала только 18 категорий.

Решение — не сложная архитектура, а уточнение задачи в два слоя: сначала назвать модели, какие ещё локальные термины считать идентифицирующими, потом дать пары «Неправильно → Правильно», чтобы она не начала удалять всё подряд из паранойи. Оба слоя добавляются в один и тот же промпт, без дополнительных проходов.


🔬

Схема метода

ШАГ 1: Обычный прогон — попросить убрать стандартные категории персональных данных → первый вариант очищенного текста
ШАГ 2: Посмотреть, что осталось узнаваемым (сокращения, коды, названия своей организации) → список "слепых зон"
ШАГ 3: Один финальный промпт: стандартные категории + явный список локальных категорий + примеры "не удалять это" → готовый результат за один запрос

Все три шага можно сделать в одном чате: прогнал, посмотрел, дописал промпт, прогнал ещё раз с уточнениями.


🚀

Пример применения

Задача: Стартап готовит внутреннюю переписку и отчёт о происшествии для передачи внешнему юристу перед сделкой (due diligence). Нужно убрать имена, даты — но также внутренний сленг: название переговорки «Зал Кэррибиан», сокращение отдела «ОП» (отдел продаж), клички проектов типа «Проект Мангуст», номера внутренних тикетов Jira.

Промпт:

Ты — эксперт по анонимизации документов перед передачей третьей стороне.

Замени в тексте ниже все идентифицирующие данные на плейсхолдеры вида [ТИП]:

Стандартные категории: имена людей, даты, телефоны, email, адреса, номера договоров.

Также замени специфичные для нашей компании обозначения:
- Названия внутренних помещений и переговорных комнат (например, "Зал Кэррибиан")
- Сокращения названий отделов ("ОП", "ДМ", "Тех")
- Кодовые названия проектов ("Проект Мангуст")
- Номера внутренних тикетов и задач (форматы вида PROJ-1234)

НЕ удаляй следующее — это не идентифицирует компанию или людей:
- НЕВЕРНО: "встреча в 14:00" → ВЕРНО: оставить, это не идентификатор
- НЕВЕРНО: "обсудили KPI отдела" → ВЕРНО: оставить, общий термин, не привязан к конкретному человеку

Если сомневаешься — лучше удали, чем оставь потенциально узнаваемое.

Текст:
{вставить документ}

Результат: Модель вернёт текст с плейсхолдерами вместо имён, дат и локальных обозначений. Общие бизнес-термины (KPI, отчётность, время встречи) останутся нетронутыми. При первом прогоне без списка локальных категорий часть внутреннего сленга («Зал Кэррибиан», «Проект Мангуст») скорее всего проскочит — именно ради этого нужен второй шаг с явным списком.


🧠

Почему это работает

Модель не умеет угадывать, что у тебя в компании «ОП» значит «отдел продаж» — она не видела твой внутренний словарь. Без явного указания она честно следует общим правилам и упускает контекстные детали, потому что для неё это просто обычные слова, а не идентификаторы.

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

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

Рычаги управления: - Список локальных категорий — расширяй или сужай под свой документ (юридический, HR, финансовый) - Пары «Неверно → Верно» — добавляй свои конкретные случаи излишнего удаления - Порог сомнения («если не уверен — удаляй») — можно поменять на противоположный, если важнее сохранить читаемость текста, а не максимальная анонимность


📋

Шаблон промпта

Ты — эксперт по анонимизации документов.

Замени все персональные и идентифицирующие данные в тексте ниже на плейсхолдеры вида [ТИП_ДАННЫХ].

Стандартные категории: имена людей, даты, адреса, телефоны, email, номера документов.

Также замени специфичные для {контекст: моя компания/организация/сфера} идентификаторы:
- {категория 1: например, сокращения названия компании и подразделений}
- {категория 2: например, названия помещений, зданий, офисов}
- {категория 3: например, внутренние коды проектов, номера кабинетов, служебные обозначения}

НЕ удаляй следующее — это не идентифицирующая информация:
- {пример 1: НЕВЕРНО — ..., ВЕРНО — оставить}
- {пример 2: НЕВЕРНО — ..., ВЕРНО — оставить}

Если сомневаешься — удаляй лучше избыточно, чем оставляй потенциально идентифицирующее.

Текст:
{документ}

Подставь в {контекст} тип организации или документа, в {категория} — свои локальные обозначения (найдёшь их, прогнав документ первый раз и посмотрев, что осталось узнаваемым), в примеры «Неверно/Верно» — реальные случаи, где модель могла бы удалить лишнее.

🚀 Быстрый старт — вставь в чат:

Вот шаблон для анонимизации документов. Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит, какие у тебя есть локальные сокращения, названия и коды — потому что без этого списка она не узнает, что именно в твоём документе является «местным» идентификатором.


⚠️

Ограничения

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

⚠️ Список категорий не переносится автоматически: локальные обозначения одной компании (или больницы) не подходят для другой. Каждый раз нужно составлять список заново под конкретный документ.

⚠️ Метод восстанавливает большинство, не всё: даже с уточнённым промптом часть пропусков остаётся — модель ловит примерно 4 из 5 случаев, не все.

⚠️ Разные модели реагируют по-разному: добавление уточняющих категорий у одних моделей повышает точность находок, у других — портит баланс (начинает пропускать больше). Нужно проверять на своей модели.


🔍

Как исследовали

Исследователи взяли 100 клинических записей пациентов детской онкологии из техасской больницы (5322 размеченных фрагмента персональных данных) и прогнали через 8 разных LLM (Claude, GPT-oss, GLM, DeepSeek и другие), а также через два специализированных инструмента для удаления персональных данных из медицинских текстов. Сравнивали три варианта промпта: базовый (по стандарту HIPAA), с добавленными локальными категориями и с добавленными примерами «что не трогать».

LLM обошли специализированные системы, причём разница была особенно заметна там, где нужен контекст, а не шаблонное распознавание. Простое добавление списка локальных терминов вернуло почти 80% пропущенных идентификаторов.

Отдельно проверили 14 вариантов многоагентных схем — когда несколько LLM работают по цепочке, проверяя друг друга (одна «чистит», другая «проверяет»). Ни одна сложная схема не побила простой промпт с хорошими инструкциями. Это ключевой вывод: проблема была не в архитектуре, а в формулировке задачи.

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


🔗

Ресурсы

Palacios D., Neeley M.B., et al. Institution-Specific LLM Prompting Recovers PHI That De-identification Systems and Their Gold Standards Both Miss. Baylor College of Medicine, Texas Children's Hospital.


📋 Дайджест исследования

Ключевая суть

Обнаружено: LLM для анонимизации текста удаляет ровно то, что ей назвали — ни словом больше. Метод Institution-Specific Prompting позволяет находить локальный сленг организации — сокращения больницы, названия корпусов, внутренние коды — которые не входят в стандартные 18 категорий персональных данных и поэтому спокойно остаются в тексте. Просишь модель искать конкретные локальные категории и даёшь примеры «не удалять это» — она применяет правило по всему документу, а не гадает. Результат: находится примерно 4 из 5 ранее пропущенных идентификаторов за один проход.

Принцип работы

LLM в анонимизации — не эксперт по контексту, а исполнитель списка. Скажи «убери 18 категорий по HIPAA» — убьёт ровно 18. Не упомянешь сокращение «TCH» или корпус «Mark Wallace Tower» — оставит, для неё это просто слова, а не идентификаторы. Принцип: два слоя в одном промпте — список локальных категорий плюс примеры «не трогать» — закрывают и пропуски, и лишние удаления одним запросом.

Почему работает

Модель отлично держит явное правило и плохо угадывает подтекст. Назови категорию один раз — она применит её ко всем 20 упоминаниям в тексте, даже в разных формах написания. Модель не игнорирует контекст — она просто никогда не видела твой внутренний словарь. Без этого шага она честно следует общему стандарту и упускает то, что стандарт не описывает.

Когда применять

Подготовка документов перед передачей третьим лицам → юридический due diligence, HR-архивы, медицинские записи с местными сокращениями (аббревиатуры организаций, названия корпусов, внутренние коды). Особенно нужно, когда документ уходит во внешнюю организацию, которая не знает твой внутренний жаргон. Не подходит как разовый проход без предварительной проверки — сначала нужно вручную найти, что осталось узнаваемым.

Мини-рецепт

1. Прогони черновик: попроси модель убрать стандартные категории — имена, даты, адреса.
2. Найди слепые зоны: пробегись по результату глазами — что осталось узнаваемым? Сокращения, коды, названия зданий.
3. Впиши список в промпт: <категория>сокращения отделов, <категория>названия переговорных, <категория>коды проектов.
4. Добавь примеры «не удалять»: пары НЕВЕРНО → ВЕРНО, чтобы модель не выкосила общие термины типа «KPI» или «встреча в 14:00».
5. Прогони финальный промпт одним запросом: обе проблемы — пропуски и лишнее удаление — закрываются сразу.

Примеры

[ПЛОХО] : Анонимизируй документ, убери персональные данные — модель уберёт имена и даты, но оставит сокращение «TCH», корпус «Mark Wallace Tower» и внутренние номера пейджеров, потому что не знала, что это тоже идентификаторы.
[ХОРОШО] : Замени стандартные категории (имена, даты, адреса) и дополнительно: сокращение больницы «TCH», корпус «Mark Wallace Tower», внутренние номера пейджеров. Не удаляй общие термины вроде «утренний обход» — это не идентификатор. — теперь модель ловит и локальный сленг, и не выкашивает лишнее.
Источник: Institution-Specific LLM Prompting Recovers PHI That De-identification Systems and Their Gold Standards Both Miss
ArXiv ID: 2608.17051 | Сгенерировано: 2026-08-19 05:24

Проблемы LLM

ПроблемаСутьКак обойти
Модель ищет только то, что ей явно назвалиПросишь убрать "персональные данные" — модель убирает имена, даты, адреса. Локальные сокращения, названия зданий, внутренние коды она не трогает. Не потому что не может их найти. Просто никто не сказал, что это тоже идентификаторы. Модель следует списку категорий буквально, не додумывает контекстПрогони текст один раз со стандартными категориями. Посмотри, что осталось узнаваемым. Впиши найденное как отдельные категории в промпт явным текстом
Инструкция "удаляй при сомнении" провоцирует лишнее удалениеКогда просишь модель быть строгой ("если не уверен — удали"), она начинает вычёркивать безобидные слова: общие термины, время встречи, обычные аббревиатуры. Слишком широкий фильтр без противовеса портит читаемость текстаДобавь в промпт пары "неверно верно" — конкретные примеры того, что оставлять. Это работает как противовес к строгому правилу

Методы

МетодСуть
Аудит слепых зон + явный список локальных категорийПрогони текст с базовыми категориями (имена, даты, адреса). Посмотри, что осталось узнаваемым — это твои слепые зоны (сокращения, названия помещений, внутренние коды). Впиши их явным списком во второй промпт вместе с примерами «не трогать это». Стандартные категории: ... + Также замени: [список] + НЕ удаляй: [примеры]. Почему работает: модель точно выполняет то, что ей явно назвали, но не обобщает implicit-контекст сама. Явный список превращает «неизвестное слово» в «известное правило», которое применяется по всему тексту одинаково. Работает для: анонимизации, модерации контента, извлечения сущностей по категориям — любой задачи «найди и убери/пометь X». Не работает: если нет возможности сделать пробный прогон и заранее увидеть, что модель пропускает

Тезисы

ТезисКомментарий
Модель применяет явное правило системно, а implicit-контекст игнорируетЕсли один раз назвать категорию словами («убирай сокращения отделов»), модель применит это правило ко всем похожим случаям в тексте, даже в разных формах написания. Но пока категорию не назвали — модель воспринимает её как обычное слово, а не как признак для действия. Разница не в возможностях модели, а в том, что ей явно поручили делать. Применяй: не жди, что модель «поймёт контекст» сама — переводи любой скрытый контекст в явный список правил внутри одного промпта
📖 Простыми словами

Institution-SpecificLLMPromptingRecovers PHI That De-identification Systems and Their Gold Standards Both Miss

arXiv: 2608.17051

Любые стандартные системы анонимизации данных слепы к локальному контексту. Они послушно вычищают очевидные имена, телефоны и даты, но в упор не видят внутреннюю кухню конкретной конторы. Если в отчёте мелькает «встреча в корпусе Б-4» или «согласовано с ОП», для базовой модели это белый шум, а не персональные данные. В итоге получается иллюзия безопасности и дырявая защита на выходе.

Это как запустить иностранца с карманным разговорником подслушивать разговоры местных на районе. Формально язык он знает, но когда люди договариваются «пересечься на Стекляшке», он ищет посудную лавку, а не вход в метро. Базовая модель — ровно такой же турист без понимания сленга, который пропускает критически важные данные просто потому, что не знает контекста вашей тусовки.

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

Метод тестировали на медицинских картах, но принцип абсолютно универсален. Точно так же чистятся логи из Jira, переписки из Slack и отчёты об инцидентах перед передачей юристам на due diligence. Любой бизнес мгновенно обрастает своим птичьим языком. Если отдать такие тексты стандартным утилитам, типовые маскировщики сядут в лужу, оставив в документах и секретный «Проект Мангуст», и личные айдишники сотрудников.

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

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с