Чтобы спрятать имена и адреса от нейросети, их сначала надо найти. Номера, почту и ключи находят правила. Имена и адреса одними правилами не поймать — их ищет небольшая обученная модель. Своей модели у нас пока нет, поэтому сначала мы измерили открытые: десять моделей, которые можно бесплатно взять и запустить у себя. Замер сделан 10.10.2026.
Коротко
- Лучшая для нашего способа запуска —
rubert-base-pii-nerотredmadrobot-rnd. На открытом наборе сообщений она нашла 99,5 имени из 100 и 95,4 адреса из 100. Из её находок имён верны 97,4 из 100. В открытом наборе 378 сообщений без личных данных, и находку она дала только в трёх из них. Лицензия чистая по всей цепочке: модель, её основа и данные для обучения — Apache-2.0 и MIT. - Лишнего меньше всех находит
ru-pii-ner-gliner2.5. Имён — почти столько же (98,2 из 100), но адресов из чата заметно меньше (73,2 из 100). И ей нужна библиотека torch: в нашем способе запуска она не работает. - Две модели GLiNER «без обучения» (
gliner-multi-*) находят имена, но вместе с ними — слова «мастер», «курьера», «Заказчик» и «я». На открытом наборе из 100 их находок имён верны только от 31,5 до 42,7, а каждое пятое сообщение без личных данных получает находку. Для маскировки так не годится. - Модели, обученные на новостях, адресов не умеют. Своего типа «адрес» у них нет, и целиком они закрывают меньше 4 адресов из 100. Имя в JSON и одиночное имя или фамилию на наших текстах они находят в 19–37 случаях из 100.
Как мерили
Меряли только то, что должна находить модель: имена (имя, фамилия, отчество, инициалы) и почтовые адреса. Город, область или страна сами по себе адресом не считаются.
Наборов два:
- Открытый
hivetrace/pii-bench— 1 810 русских сообщений: поддержка банка, связи, доставки, кадры, недвижимость, чаты, диалоги в JSON. В нём 228 имён и 176 адресов. Тексты выдуманы и размечены людьми. - Наши выдуманные тексты — 3 005 текстов из шаблонов: реплики чата, письма, длинные договоры, ответы CRM в JSON. Имена в шести падежах: русские, татарские, казахские, кавказские, латиницей.
У всех моделей один порог уверенности — 0,5. После модели работает наша склейка: соседние части ФИО и адреса собираются в одну находку. То есть в таблице — «модель плюс склейка», как это будет работать в продукте, а не голый выход модели.
«Найдено» — сколько известных значений модель задела хотя бы одним знаком. «Верных» — сколько её находок попали в настоящее значение того же типа. Доли найденного обрезаны до десятых, доли ошибок округлены вверх: в свою пользу ничего не округлено.
Итог по открытому набору
Из 100 значений или находок, набор hivetrace/pii-bench.
| Модель | Имён найдено | Верных находок имён | Адресов найдено |
|---|---|---|---|
| rubert-base-pii-ner | 99,5 | 97,4 | 95,4 |
| nym-pii-multilingual-small | 98,6 | 97,4 | 94,8 |
| ru-pii-ner-gliner2.5 | 98,2 | 98,2 | 73,2 |
| bert-base-ner-russian | 98,2 | 57,7 | 90,3 |
| gliner-multi-v2.1 | 99,5 | 31,5 | 97,1 |
| gliner-multi-pii-v1 | 99,5 | 42,7 | 65,3 |
| gliner-guard-uniencoder | 95,1 | 72,8 | 34,6 |
| rubert-base-collection3 | 100,0 | 63,5 | 21,0 |
| rubert-tiny-news | 94,7 | 82,4 | 39,7 |
| slovnet-ner-news | 94,2 | 86,3 | 15,9 |
Скорость лучшей модели — 13 мс на короткое сообщение, 15 мс на 200 знаков и 131 мс на 2 000 знаков. Файл модели — 711 МБ, процесс занимает около 1,6 ГБ памяти. Самые быстрые модели — slovnet и rubert-tiny-news: 0,7 и 1,2 мс на 200 знаков, но адресов они не умеют.
Где открытые модели слабы
Это и есть то, чему нужно учить свою модель. У лучшей модели:
- имена латиницей — 87,5 из 100;
- одиночное имя или фамилия — 94,9 из 100;
- имя в JSON без слов вокруг — 95,8 из 100;
- улицу без номера дома («на проспекте Ленина пробка») она всегда считает адресом.
Публичных людей («Как отмечал Чехов…») прячут все десять моделей: от 59 до 98 сообщений из 100.
Своей модели у нас пока нет. Эти числа — планка: своя должна находить не меньше и ошибаться не чаще, чем rubert-base-pii-ner на тех же мерках.
Оговорки
- Набор маленький. В открытом наборе 228 имён и 176 адресов, одно значение — это 0,4–0,6 пункта. Разница между моделями в один пункт ничего не значит.
- Наши тексты собраны из шаблонов. 97–98 из 100 на них у двух разных моделей говорит о том, что шаблоны простые, а не о том, что задача решена. Разницу между сильными моделями лучше показывает открытый набор.
- Скорость мерилась на занятом компьютере. На нём в это время шли другие работы, поэтому среднее может быть хуже, чем на свободной машине. Порядок величин и соотношение между моделями верные. Мерили на процессоре Apple M4 Pro в 4 потока; на сервере надо мерить заново.
- Разметка открытого набора местами расходится с нашей. Город без улицы у его авторов — тоже адрес, а второй адрес в сообщении размечен не всегда. Поэтому числа по адресам у всех моделей занижены.
- Вторую внешнюю мерку провести не удалось: набор
pseudex-ai/agentmask-ruне скачивается.