# GLiNER2.5 Multi: локальное извлечение сущностей и проверка русского текста

Источник: https://modelium.tech/zhurnal/gliner2-5-multi/

GLiNER2.5 Multi — многоязычный checkpoint Fastino для извлечения именованных сущностей по заданной схеме; он также поддерживает классификацию, записи и отношения. Для локального сценария используйте AutoExtractor, задайте нужные метки и вручную сверяйте найденные фрагменты с исходным текстом. Карточка не даёт отдельной оценки качества на русском: пригодность для ваших документов нужно проверить самостоятельно.

Сведения сверены 2 октября 2026 года по ревизии HF `2ca71aaf` и Git `55656fbf`. Частотность запроса в России не измерена. Modelium не запускал модель; команды и ожидаемые структуры ниже описаны по первоисточникам.

## Чем Multi отличается от других GLiNER2.5?

`fastino/gliner2.5-multi-v1` — **многоязычная** boundary-модель для извлечения сущностей по переданным меткам, классификации текста, структурированных записей и отношений между сущностями. Карточка автора указывает энкодер `microsoft/mdeberta-v3-base` и 287 млн параметров; конфигурация подтверждает архитектуру `BoundaryExtractor`, включённые головы записей и отношений. Число параметров — описание конкретного checkpoint, не показатель точности на вашем корпусе [s1](#src-s1) [s2](#src-s2).

Не путайте его с [GLiNER2.5 Small в MLX](/zhurnal/gliner25-small-mlx-ner-classification-mac/): это другой checkpoint, ориентированный на компактный запуск на Mac, а не вариант тех же весов Multi [s1](#src-s1) [s4](#src-s4). Название *multilingual* не равно подтверждённому качеству для русского юридического текста или первички: в карточке этой ревизии нет отдельной таблицы русского NER-теста [s1](#src-s1).

## Для какой задачи выбирать GLiNER2.5 Multi?

Вход — **готовый текст**, например извлечённый из договора или заявки, и набор типов сущностей: организация, человек, дата, номер документа. Выход — кандидаты на фрагменты текста с меткой, при запросе также со смещением и уверенностью; для бизнес-процесса важно сверить сами фрагменты с оригиналом и подтвердить их человеком [s1](#src-s1) [s5](#src-s5). Это этап после OCR, если исходник был сканом: модель принимает текст, а не пиксели изображения. [Сравнение локального OCR](/zhurnal/ocr-modeli/) поможет выбрать предшествующий этап [s1](#src-s1).

Если требуются связи вроде «сотрудник — организация», автор предлагает отдельно `extract_relations` или `JointIE`, который позволяет заранее типизировать концы связей; независимое извлечение отношений не обеспечивает такой согласованности [s1](#src-s1) [s6](#src-s6). Для первичных документов простого NER может быть недостаточно: если важна принадлежность суммы конкретному документу или позиции, изучите режим структурированных записей и проверяйте привязку полей в конкретной схеме [s1](#src-s1) [s4](#src-s4). Не считайте результат юридическим выводом или готовой проводкой в 1С.

## Что нужно для локального запуска и что неизвестно о памяти?

У закреплённой ревизии HF присутствуют `model.safetensors`, `config.json`, файл токенизатора и его конфигурация; карточка указывает около 594 МБ весов преимущественно FP16. **Размер весов на диске не является минимумом RAM/VRAM**: в памяти также находятся энкодер, входы и промежуточные данные, а реальное потребление зависит от устройства, версии ПО и длины текста [s1](#src-s1) [s3](#src-s3). Указанный в `config.json` `max_len: 4096` — параметр окна модели, а не гарантия, что обычный вызов обработает любой многостраничный договор целиком [s2](#src-s2) [s7](#src-s7).

По инструкции автора локальная установка — `pip install "gliner2[local]"` на Python не ниже 3.10; дополнительная зависимость `[local]` устанавливает PyTorch для загрузки checkpoint. Загружать именно через `AutoExtractor.from_pretrained("fastino/gliner2.5-multi-v1")`: старый `GLiNER2.from_pretrained(...)` рассчитан на span-архитектуру и к boundary checkpoint не подходит [s1](#src-s1) [s4](#src-s4). Для воспроизводимости закрепите HF SHA `2ca71aafb3446d9014e1c55c7ff51c9bc7209c47`, версию библиотеки, Python и устройство, затем проверьте загруженную архитектуру `boundary`; этот маршрут **не был запущен Modelium** [s1](#src-s1) [s2](#src-s2).

## Как проверить извлечение сущностей на русском?

- Возьмите несколько обезличенных русских фрагментов из своего сценария и заранее вручную разметьте ожидаемые сущности. Добавьте однотипные значения в разных ролях, повторяющиеся имена, отсутствие нужной сущности и многостраничный случай. Зафиксируйте оригинальный текст до запуска.

- Задайте метки или словесные описания типов в схеме и вызовите `extract_entities` с `include_spans=True`. Документация описывает полуоткрытые символьные диапазоны: проверьте, что `text[start:end]` совпадает с выделенным фрагментом, и что фрагмент соответствует **нужному полю**, а не просто похожему слову [s1](#src-s1) [s5](#src-s5). Не копируйте английский пример из карточки как доказательство поведения на русском.

- Запишите пропуски, лишние находки и ошибочные границы отдельно для каждого типа. Сравните с ручной разметкой **на тех же документах**; не переносите авторские показатели с другого датасета. Затем откройте [маршрут проверки документов для 1С](/zadachi/raspoznavanie-dokumentov-1s/) и решите, где требуется OCR, контроль полей и подтверждение человеком.

- Если документ длиннее окна, используйте описанный автором `extract_entities_long` с перекрывающимися фрагментами вместо обычного обрезающего `extract`. Авторы предупреждают: сущность, чьи края не попали в один фрагмент, не склеивается автоматически; связь между сущностями в разных чанках также теряется. Проверьте примеры около границы разбиения отдельно [s1](#src-s1) [s7](#src-s7) [s6](#src-s6).

## Какие ограничения учитывать до внедрения?

Карточка модели указывает Apache-2.0 и перечисляет многоязычное назначение, а файл `LICENSE` репозитория относится к коду; проверяйте условия использования конкретных весов и распространяемых компонентов отдельно, не выводите коммерческие права из одного слова `open` [s1](#src-s1) [s3](#src-s3) [s8](#src-s8). Опубликованные примеры в карточке англоязычные; русский NER на вашей терминологии, скорость на CPU/Mac/GPU, память и ошибки у Modelium **не измерены** [s1](#src-s1). Для систем с персональными данными локальная загрузка весов ещё не доказывает отсутствие сетевых вызовов вашего приложения: контролируйте окружение и потоки данных отдельно.

**Следующий шаг:** [проверить извлечение на собственном обезличенном документе](/zadachi/raspoznavanie-dokumentov-1s/), сохранив исходный текст, разметку и найденные фрагменты для ручной сверки.

## Источники

1. [Fastino — карточка GLiNER2.5 Multi](https://huggingface.co/fastino/gliner2.5-multi-v1/blob/2ca71aafb3446d9014e1c55c7ff51c9bc7209c47/README.md) — получено 2026-10-02
2. [Fastino — конфигурация boundary checkpoint](https://huggingface.co/fastino/gliner2.5-multi-v1/blob/2ca71aafb3446d9014e1c55c7ff51c9bc7209c47/config.json) — получено 2026-10-02
3. [Hugging Face — inventory закреплённой ревизии модели](https://huggingface.co/api/models/fastino/gliner2.5-multi-v1/revision/2ca71aafb3446d9014e1c55c7ff51c9bc7209c47) — получено 2026-10-02
4. [Fastino — официальный README GLiNER2](https://raw.githubusercontent.com/fastino-ai/GLiNER2/55656fbfa01d3d4a77485e1a1eeeaf682990ccdf/README.md) — получено 2026-10-02
5. [Fastino — руководство по извлечению сущностей](https://raw.githubusercontent.com/fastino-ai/GLiNER2/55656fbfa01d3d4a77485e1a1eeeaf682990ccdf/tutorial/2-ner.md) — получено 2026-10-02
6. [Fastino — руководство JointIE](https://raw.githubusercontent.com/fastino-ai/GLiNER2/55656fbfa01d3d4a77485e1a1eeeaf682990ccdf/tutorial/15-joint_ie.md) — получено 2026-10-02
7. [Fastino — руководство по длинным документам](https://raw.githubusercontent.com/fastino-ai/GLiNER2/55656fbfa01d3d4a77485e1a1eeeaf682990ccdf/tutorial/12-long_context.md) — получено 2026-10-02
8. [Fastino — лицензия репозитория Apache 2.0](https://raw.githubusercontent.com/fastino-ai/GLiNER2/55656fbfa01d3d4a77485e1a1eeeaf682990ccdf/LICENSE) — получено 2026-10-02
