3.6 KiB
Запрос к Соннету — нумерация vs фейки для downstream LLM (2026-07-12)
Контекст
Я делаю сервис DrHider — обфускация документов. Находит ПДн → заменяет. После обфускации документы идут на дальнейшую LLM-обработку — сверка спецификаций (другой сервис contracts, извлекает типы/номера/даты/контрагентов через LLM).
Сейчас генерация фейков: Иванов И.И. → Петров А.С., ООО «Ромашка» → ООО «Спектр».
Проблема: для неизвестных типов (адреса, нестандартные ID) — character-class замена
даёт абракадабру: ул. Стекольная → иг. 8ц Лжчюсвхшбр. Downstream LLM не может это обработать.
Варианты замены
А. Чистая нумерация
Иванов И.И. → Лицо_0042, ООО «Ромашка» → Компания_0003, ул. Ленина → Адрес_0015
Плюс: никакой абракадабры. Минус: LLM теряет контекст («Лицо_0042 заключил договор» — не понимает семантику).
Б. Фейки (сейчас)
Иванов И.И. → Петров А.С., ООО «Ромашка» → ООО «Спектр»
Плюс: LLM понимает роли. Минус: сложно (11 генераторов), ложное ощущение реальности, для неизвестных типов — абракадабра.
В. Гибрид: шаблон + номер
Иванов И.И. → Иванов_5677, ООО «Ромашка» → ООО_Технология_0034,
ул. Стекольная, д.7 → ул_Ленина_0015, +7 (495) 789-41-35 → +7_495_000_0042,
info@nubes.ru → email_0007@fake
Плюс: LLM видит что это человек/компания/адрес, номер гарантирует уникальность и обфускацию. Минус: всё равно нужны шаблоны для каждого типа.
Вопросы
- Какой вариант лучше для downstream LLM-обработки (извлечение контрагентов, дат, номеров)?
- Вариант В — достаточно ли LLM поймёт что
Иванов_5677это персональные данные? - Для неизвестных типов —
[Данные_NNNN]как fallback, ок? - Глобальная нумерация (сквозная через все документы пакета) vs локальная (в рамках одного файла)?
- Стоит ли сохранять частичную структуру (например телефон
+7_495_000_0042сохраняет формат номера)?
Downstream задача (для контекста)
LLM в сервисе contracts получает текст документа и должна извлечь:
- Контрагент («с кем договор»)
- Номер и дату договора
- Список услуг с ценами (таблица)
Промпт для contracts LLM (фрагмент):
Извлеки из текста: тип документа, номер, дату, контрагента.
Верни JSON: {"type":"договор","number":"...","date":"...","counterparty":"..."}