О модели
Модель ищет персональные данные в русскоязычных документах. Кроме имён, адресов, дат, телефонов и почты она размечает идентификаторы, по которым человека можно связать с документом: данные паспорта и миграционных документов, СНИЛС, ИНН и другие госномера, банковские реквизиты, медицинские, судебные, нотариальные, кадровые и учебные номера, данные об имуществе и транспорте, номера билетов и заказов, аккаунты, пропуска, внутренние коды систем и многое другое. В реальных документах именно на них приходится большая часть персональных данных.
Датасет размечен по контексту, поэтому модель находит идентификаторы, которые не описать регулярным выражением, и отличает данные человека от данных организации. Границы разметки опираются на 152-ФЗ и российскую правоприменительную практику. Разметка консервативная — если непонятно к кому данные относятся, значение считается персональными данными. При этом граница проводилась по юридическому смыслу, а не по принципу «замазать всё подряд», то есть данные организаций, справочные и служебные значения, не привязанные к человеку, остаются нетронутыми.
Метрики
Валидационная выборка: 405 документов, 4 134 сущности
Метрики строгие: спан засчитывается только при точном совпадении границ с эталоном. Coverage мягче — доля эталонных сущностей, полностью покрытых предсказаниями того же класса.
| Класс | Сущностей | Precision | Recall | F1 | Coverage |
|---|
| PERSON | 789 | 93.28% | 91.51% | 92.39% | 92.52% |
| LOCATION | 249 | 88.94% | 74.30% | 80.96% | 78.31% |
| DATE | 562 | 89.64% | 75.44% | 81.93% | 78.11% |
| PHONE | 136 | 95.04% | 84.56% | 89.49% | 86.03% |
| EMAIL | 62 | 100.00% | 87.10% | 93.10% | 87.10% |
| PII | 2 336 | 89.91% | 80.86% | 85.15% | 83.05% |
| Общее | 4 134 | 90.83% | 81.98% | 86.18% | 84.06% |
Зависимость от порога, по умолчанию 0.5:
| Порог | Precision | Recall | F1 | TP | FP | FN |
|---|
| 0.02 | 0.834 | 0.838 | 0.836 | 3 464 | 689 | 670 |
| 0.10 | 0.868 | 0.834 | 0.851 | 3 447 | 522 | 687 |
| 0.30 | 0.897 | 0.828 | 0.861 | 3 422 | 392 | 712 |
| 0.50 | 0.908 | 0.820 | 0.862 | 3 389 | 342 | 745 |
| 0.70 | 0.917 | 0.810 | 0.860 | 3 349 | 302 | 785 |
| 0.90 | 0.929 | 0.795 | 0.857 | 3 286 | 252 | 848 |
| 0.99 | 0.947 | 0.707 | 0.809 | 2 922 | 164 | 1 212 |
Датасет
4 097 примеров
Датасет полностью сгенерирован. Работа проходила в несколько этапов: юридическая проработка состава ПДн и правил разметки, генерация и аугментация документов, затем ручная доработка части примеров.
Примеры охватывают личные документы физических лиц, кадровую и внутреннюю документацию организаций, корпоративные и административные материалы, юридические и нормативные документы, договорную, коммерческую, финансовую, бухгалтерскую и банковскую документацию. Также государственные и регистрационные документы, медицинские, социальные и образовательные материалы, производственная и техническая документация, документы об имуществе и транспорте, деловая и пользовательская переписка, реестры, справочники, формы, таблицы и другие примеры.
Различные варианты bad OCR, HTML и Markdown, и других форматов. Около 6% примеров иностранные — английский, белорусский, узбекский, казахский, киргизский, таджикский, армянский, грузинский, азербайджанский.
| Класс | Сущностей | Примеров |
|---|
| PERSON | 7 790 | 2 629 |
| LOCATION | 1 918 | 763 |
| DATE | 4 514 | 1 481 |
| PHONE | 1 548 | 889 |
| EMAIL | 1 004 | 600 |
| PII | 22 466 | 3 103 |
Архитектура
Полный файнтюн fastino/gliner2.5-multi-v1 — GLiNER2.5
Модель не перебирает все возможные фрагменты текста, а сразу предсказывает, где сущность начинается и где заканчивается, после чего сопоставляет найденный фрагмент с каждой меткой. На практике это значит, что длина сущности ничем не ограничена: длинные адреса, банковские реквизиты и составные идентификаторы не обрезаются, а скорость не падает на объёмных документах. За один проход модель принимает до 4096 токенов, поэтому большинство документов обрабатывается целиком, без нарезки на куски.
Список меток не зашит в веса, а подаётся на вход вместе с текстом. Метки можно переименовать под свою схему или добавить новые типы без переобучения — модель ищет их по смыслу названия. Но заявленное качество относится только к меткам из карточки: на произвольных метках оно не гарантировано.
Использование
Установка:
pip install gliner2
Загрузка модели и обработка текста:
from gliner2 import AutoExtractor
model = AutoExtractor.from_pretrained("metrika-labs/ru-pii-ner-gliner2.5")
model.to("cuda")
LABELS = ["ru_pii_person", "ru_pii_location", "ru_pii_date",
"ru_pii_phone", "ru_pii_email", "ru_pii"]
result = model.extract_entities(
"Иван Петров, телефон +7 999 123-45-67",
LABELS,
threshold=0.5,
include_spans=True,
)
{
"entities": {
"ru_pii_person": [
{"text": "Иван Петров", "start": 0, "end": 11},
],
"ru_pii_phone": [
{"text": "+7 999 123-45-67", "start": 21, "end": 37},
],
"ru_pii_location": [],
"ru_pii_date": [],
"ru_pii_email": [],
"ru_pii": [
{"text": "Иван Петров", "start": 0, "end": 11},
{"text": "+7 999 123-45-67", "start": 21, "end": 37},
],
}
}
Остальные параметры, батчи и работа со схемами — в документации GLiNER2.
ru_pii — общий класс персональных данных. ru_pii_person, ru_pii_location, ru_pii_date, ru_pii_phone, ru_pii_email его подклассы. Поэтому один фрагмент может одновременно получить общий класс и более конкретный. Для обезличивания рекомендуется использовать объединение всех найденных классов. Общий класс служит дополнительной страховкой и покрывает персональные идентификаторы, для которых нет отдельной категории.
Ограничения
NER модель — только один из слоёв системы обезличивания ПДн. В реальной системе её необходимо дополнять регулярными выражениями, словарями и прикладными правилами. При этом ни модель, ни полностью автоматический пайплайн не могут гарантировать обнаружение всех чувствительных данных.
Модель предназначена для поиска персональных данных. Она не выявляет коммерческую тайну и другую конфиденциальную информацию, не относящуюся к физическим лицам: без отдельных правил такие сведения останутся открытыми.
Примеры работы модели
<div style="font-size:14px;line-height:1.55">
<div>
# СВИДЕТЕЛЬСТВО О РОЖДЕНИИ<br>
<br>
| Гражданин(ка) | <span style="color:#7f82c7">Савицкий</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| :--- | :--- |<br>
| фамилия | <span style="color:#7f82c7">Кирилл Андреевич</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| родился(лась) | <span style="color:#b28a4a">16 мая 2006</span> <span style="color:#b28a4a">[DATE 0.84]</span> <span style="color:#b87676">[PII 0.86]</span> года |<br>
| <span style="color:#b28a4a">две тысячи шестого года</span> <span style="color:#b28a4a">[DATE 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| о чем в книге регистрации актов о рождении |<br>
| чиста | <span style="color:#b87676">11</span> <span style="color:#b87676">[PII 0.97]</span> |<br>
| произведена запись за № | <span style="color:#b87676">642</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| Место рождения: республика (государство) | Беларусь |<br>
| область (край) | |<br>
| <span style="color:#5f9f88">район</span> <span style="color:#5f9f88">[LOCATION 0.93]</span> <span style="color:#b87676">[PII 0.96]</span> | |<br>
| город (поселок, село, деревня) | <span style="color:#5f9f88">г. Могилёв</span> <span style="color:#5f9f88">[LOCATION 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| РОДИТЕЛИ: | |<br>
| Отец | <span style="color:#7f82c7">Савицкий</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| <span style="color:#7f82c7">Андрей Викторович</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| национальность | белорус |<br>
| Мать | <span style="color:#7f82c7">Савицкая</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| <span style="color:#7f82c7">Елена Сергеевна</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| национальность | белорусская |<br>
| Место регистрации рождения | О / ЗАГС администрации Ленинского района Могилёва |<br>
| Дата выдачи « | <span style="color:#b28a4a">29</span> <span style="color:#b28a4a">[DATE 0.82]</span> <span style="color:#b87676">[PII 0.77]</span> |<br>
| мая | <span style="color:#b28a4a">2006</span> <span style="color:#b28a4a">[DATE 0.82]</span> <span style="color:#b87676">[PII 0.68]</span> |<br>
| Руководитель органа записи актов гражданского состояния | |<br>
| <span style="color:#b87676">II-МГ</span> <span style="color:#b87676">[PII 0.75]</span> № <span style="color:#b87676">4175836</span> <span style="color:#b87676">[PII 0.80]</span> |<br>
</div>
<hr>
<div>
Продавец:<br>
ООО «Линия Интерьера»<br>
190020, РФ, г. Санкт-Петербург,<br>
наб. Обводного канала,<br>
дом 134, офис 312<br>
ОГРН 1187847236541 от 12.07.2018<br>
р/с 40702810955000018426<br>
Банк: Санкт-Петербургский филиал<br>
АО «Расчётный Союз»<br>
к/с 30101810600000000612<br>
ИНН 7839127465, БИК 044030612<br>
КПП 783901001<br>
<br>
Покупатель:<br>
<span style="color:#7f82c7">Киреева Милана Рустамовна</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 0.99]</span> <br>
<span style="color:#5f9f88">443080,РФ, Самарская область ,<br>
Г. Самара, ул. Революционная, д. 91, кв. 28</span> <span style="color:#5f9f88">[LOCATION 0.61]</span> <span style="color:#b87676">[PII 0.63]</span> <br>
ОГРНИП <span style="color:#b87676">321631200047816</span> <span style="color:#b87676">[PII 1.00]</span> <br>
р/с <span style="color:#b87676">40802810761590003842</span> <span style="color:#b87676">[PII 1.00]</span> <br>
Банк: Самарское отделение № 1182<br>
АО «Расчётный Союз»<br>
к/с 30101810600000000612<br>
ИНН 631624837195, БИК<br>
043601612
</div>
<hr>
<div>
# СВИДЕТЕЛЬСТВО<br>
<br>
Форма № 2-1-Учет <br>
Код по КНД 1122022 <br>
<br>
Федеральная налоговая служба <br>
<br>
## О ПОСТАНОВКЕ НА УЧЕТ ФИЗИЧЕСКОГО ЛИЦА В НАЛОГОВОМ ОРГАНЕ<br>
<br>
Настоящее свидетельство подтверждает, что <br>
**<span style="color:#7f82c7">КАРИМОВ РУСТАМ ФАРХОДОВИЧ</span> <span style="color:#7f82c7">[PERSON 0.97]</span> <span style="color:#b87676">[PII 0.99]</span>**<br>
<br>
пол — мужской <br>
дата рождения — <span style="color:#b28a4a">18.11.1986</span> <span style="color:#b28a4a">[DATE 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> <br>
<br>
место рождения — КЫРГЫЗСТАН <br>
<br>
поставлен(а) на учет в соответствии с Налоговым кодексом Российской Федерации <br>
<br>
с присвоением **<span style="color:#b28a4a">17.05.2024</span> <span style="color:#b28a4a">[DATE 1.00]</span> <span style="color:#b87676">[PII 1.00]</span>** <br>
ИНН: **<span style="color:#b87676">0 2 0 4 9 8 6 1 5 6 5 4</span> <span style="color:#b87676">[PII 0.99]</span>**<br>
<br>
---<br>
<br>
Заместитель начальника Инспекции Федеральной налоговой службы по Октябрьскому району г. Саратова <br>
<br>
<span style="color:#7f82c7">А. В. Кондратьев</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> <br>
<br>
*(подпись)* <br>
*(печать: МП ИНСПЕКЦИЯ ФЕДЕРАЛЬНОЙ НАЛОГОВОЙ СЛУЖБЫ ПО ОКТЯБРЬСКОМУ РАЙОНУ Г. САРАТОВА)*
</div>
<hr>
<div>
Взыскать с Управления ФНС России по Пермскому краю в пользу <span style="color:#7f82c7">Корнилова М. С.</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> <br>
судебные расходы в сумме 8 317 рублей.<br>
Решение суда может быть обжаловано в апелляционном порядке в течение одного месяца со<br>
дня принятия решения суда в окончательной форме в Пермский краевой суд путем подачи<br>
жалобы через Пермский районный суд Пермского края.<br>
Судья: <span style="color:#7f82c7">Белозерова Т.К.</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> <br>
Мотивированное решение составлено 17.08.2021<br>
Документ для печати<br>
https://permski--perm.sudrf.ru/modules.php?name=sud_delo&srv_num...<br>
Стр. 7 из 7<br>
11.04.2024, 14:37<br>
Страница 1 из 2 <br>
Ленинский районный суд города Краснодара <br>
350020, г. Краснодар, ул. Коммунаров, д. 179 <br>
<br>
Истец: <span style="color:#7f82c7">Воронцов Максим Сергеевич</span> <span style="color:#7f82c7">[PERSON 0.98]</span> <span style="color:#b87676">[PII 0.97]</span> <br>
<span style="color:#b28a4a">09.11.1984</span> <span style="color:#b28a4a">[DATE 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> года рождения <br>
Место рождения: <span style="color:#5f9f88">с. Ключи, Шадринского <br>
района Курганской обл.</span> <span style="color:#5f9f88">[LOCATION 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> <br>
Водительское удостоверение: серии 6632 № <br>
<span style="color:#b87676">718405</span> <span style="color:#b87676">[PII 0.79]</span> <br>
Место жительства: <span style="color:#5f9f88">350087, Краснодарский край, г. Краснодар,<br>
ул. Российская, д. 267</span> <span style="color:#5f9f88">[LOCATION 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> <br>
Тел.: <span style="color:#5c929c">+7-918-417-6259</span> <span style="color:#5c929c">[PHONE 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> <br>
Эл. почта: <span style="color:#6a88b8">maxim.vorontsov84@outlook.com</span> <span style="color:#6a88b8">[EMAIL 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> <br>
<br>
Ответчик: <span style="color:#7f82c7">Алиев Тимур Эльдарович</span> <span style="color:#7f82c7">[PERSON 0.99]</span> <span style="color:#b87676">[PII 0.99]</span> <br>
<span style="color:#b28a4a">24.03.1991</span> <span style="color:#b28a4a">[DATE 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> года рождения <br>
Место рождения: <span style="color:#5f9f88">Азербайджан</span> <span style="color:#5f9f88">[LOCATION 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> <br>
Водительское удостоверение: серии 6674 № <br>
<span style="color:#b87676">316528</span> <span style="color:#b87676">[PII 0.82]</span> <br>
Место жительства: <span style="color:#5f9f88">344022, Ростовская область, г. Ростов-на-Дону,<br>
ул. Пушкинская, д. 145, кв. 38</span> <span style="color:#5f9f88">[LOCATION 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> <br>
Тел.: <span style="color:#5c929c">+7-928-681-2047</span> <span style="color:#5c929c">[PHONE 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> <br>
<br>
Судья: <span style="color:#7f82c7">Н.В. Крылова</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> <br>
Дело №: 2-714/2026 <br>
Судебное заседание: 18.05.2026 в 10:30
</div>
<hr>
<div>
# ПАСВЕДЧАННЕ АБ НАРАДЖЭННІ<br>
<br>
| Грамадзянін(ка) | <span style="color:#7f82c7">Савіцкі</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| :--- | :--- |<br>
| прозвішча | <span style="color:#7f82c7">Кірыл Андрэевіч</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| нарадзіўся(пася) | <span style="color:#b28a4a">16 мая 2006</span> <span style="color:#b28a4a">[DATE 0.84]</span> <span style="color:#b87676">[PII 0.87]</span> года |<br>
| <span style="color:#b28a4a">дзве тысячы шостага года</span> <span style="color:#b28a4a">[DATE 0.99]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| аб чым у кнізе рэгістрацыі актаў аб нараджэнні |<br>
| чысло | <span style="color:#b87676">11</span> <span style="color:#b87676">[PII 0.94]</span> |<br>
| зроблен запіс за № | <span style="color:#b87676">642</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| Месца нараджэння: рэспубліка (дзяржава) | <span style="color:#5f9f88">Беларусь</span> <span style="color:#5f9f88">[LOCATION 0.70]</span> |<br>
| вобласць (край) | |<br>
| <span style="color:#5f9f88">раён</span> <span style="color:#5f9f88">[LOCATION 0.71]</span> <span style="color:#b87676">[PII 0.57]</span> | |<br>
| горад (пасёлак, сяло, вёска) | <span style="color:#5f9f88">г. Магілёў</span> <span style="color:#5f9f88">[LOCATION 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| БАЦЬКІ: | |<br>
| Бацька | <span style="color:#7f82c7">Савіцкі</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| <span style="color:#7f82c7">Андрэй Віктаравіч</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| нацыянальнасць | беларус |<br>
| Маці<br>
| <span style="color:#7f82c7">Савіцкая</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| <span style="color:#7f82c7">Алена Сяргееўна</span> <span style="color:#7f82c7">[PERSON 1.00]</span> <span style="color:#b87676">[PII 1.00]</span> |<br>
| нацыянальнасць | беларуская |<br>
| Месца рэгістрацыі нараджэння | А / ЗАГС адміністрацыі Ленінскага раёна г. Магілёва |<br>
| Дата выдачы « | <span style="color:#b28a4a">29</span> <span style="color:#b28a4a">[DATE 0.96]</span> <span style="color:#b87676">[PII 0.96]</span> |<br>
| <span style="color:#b28a4a">мая</span> <span style="color:#b28a4a">[DATE 0.52]</span> | <span style="color:#b28a4a">2006</span> <span style="color:#b28a4a">[DATE 0.95]</span> <span style="color:#b87676">[PII 0.91]</span> |<br>
| Крайнік органа запісу актаў грамадзянскага стану | |<br>
| <span style="color:#b87676">II-МГ</span> <span style="color:#b87676">[PII 0.63]</span> № <span style="color:#b87676">4175836</span> <span style="color:#b87676">[PII 0.67]</span> |
</div>
</div>