Instructions to use imgreencucumber/rubert-ner-collection3 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use imgreencucumber/rubert-ner-collection3 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("token-classification", model="imgreencucumber/rubert-ner-collection3")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForTokenClassification tokenizer = AutoTokenizer.from_pretrained("imgreencucumber/rubert-ner-collection3") model = AutoModelForTokenClassification.from_pretrained("imgreencucumber/rubert-ner-collection3", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Upload from https://github.com/imgreencucumber/ru-ner/commit/3da1f09c15be1c18a1907fba2b72f800c6e49d0e
bf9a7fa verified |
Download README.md from imgreencucumber/rubert-ner-collection3: direct link, hf CLI and curl.
- Browser
- Download file 6.27 kB
-
https://huggingface.co/imgreencucumber/rubert-ner-collection3/resolve/main/README.md
- Command line
-
hf download hf://imgreencucumber/rubert-ner-collection3/README.md
-
curl -L -o README.md https://huggingface.co/imgreencucumber/rubert-ner-collection3/resolve/main/README.md
6.27 kB
| language: ru | |
| license: other | |
| library_name: transformers | |
| pipeline_tag: token-classification | |
| base_model: DeepPavlov/rubert-base-cased | |
| datasets: | |
| - RCC-MSU/collection3 | |
| tags: | |
| - ner | |
| - onnx | |
| - russian | |
| metrics: | |
| - f1 | |
| - precision | |
| - recall | |
| model-index: | |
| - name: rubert-ner-collection3 | |
| results: | |
| - task: | |
| type: token-classification | |
| name: Named Entity Recognition | |
| dataset: | |
| type: RCC-MSU/collection3 | |
| name: Collection3 | |
| split: test | |
| metrics: | |
| - type: f1 | |
| value: 0.976 | |
| name: F1 (entity-level, seqeval) | |
| - type: precision | |
| value: 0.972 | |
| - type: recall | |
| value: 0.980 | |
| # rubert-ner-collection3 | |
| NER для русского языка: PER (люди), LOC (места), ORG (организации). | |
| `DeepPavlov/rubert-base-cased`, дообученный на Collection3 (новости). | |
| Кроме весов PyTorch в репозитории есть квантизованная ONNX-версия для CPU (`onnx/`, 170 МБ). | |
| Код обучения, сравнение с CRF, Natasha и LLM, сервис на FastAPI: https://github.com/imgreencucumber/ru-ner | |
| ## Качество | |
| Тест Collection3: 1922 предложения, 4001 сущность. Метрики на уровне сущностей (`seqeval`): | |
| сущность засчитывается, только если совпали обе границы и тип. В скобках 95% bootstrap-интервал. | |
| | | Precision | Recall | F1 | | |
| |---|---|---|---| | |
| | Все сущности | 0.972 | 0.980 | **0.976** (0.970–0.981) | | |
| | PER | | | 0.998 | | |
| | LOC | | | 0.981 | | |
| | ORG | | | 0.943 | | |
| | Сущности, которых не было в train | | | 0.957 | | |
| ONNX int8 по качеству не отличается от исходной модели: F1 0.977 (0.971–0.982), разница с PyTorch в пределах шума | |
| (парный bootstrap). | |
| Цифры выше получены с декодированием, которое не допускает некорректных BIO-последовательностей | |
| (Витерби с запретом `O → I-X`). Если выбирать метку каждого слова независимо (argmax), F1 0.974. | |
| Стандартный `pipeline` из `transformers` тоже выбирает метки независимо, хотя части слов обрабатывает немного иначе. | |
| Для сравнения на том же тесте: Natasha 0.935, CRF 0.901, GigaChat-3-Ultra с примерами в промпте 0.828. | |
| **Другой домен.** На тесте WikiNEuRal-ru (Википедия) F1 0.799. Разметка WikiNEuRal автоматическая и содержит класс MISC, | |
| которого нет в Collection3, так что цифра занижена: часть «ошибок» приходится на MISC-сущности. | |
| ## Использование | |
| С `transformers`: | |
| ```python | |
| from transformers import pipeline | |
| ner = pipeline("token-classification", model="imgreencucumber/rubert-ner-collection3", aggregation_strategy="simple") | |
| ner("Глава Минфина Антон Силуанов встретился в Москве с представителями МВФ.") | |
| ``` | |
| ONNX-версия на CPU, без PyTorch, через пакет из репозитория проекта: | |
| ```python | |
| # pip install git+https://github.com/imgreencucumber/ru-ner | |
| from huggingface_hub import snapshot_download | |
| from ru_ner.inference import OnnxBertNER | |
| path = snapshot_download("imgreencucumber/rubert-ner-collection3", allow_patterns=["onnx/*"]) | |
| ner = OnnxBertNER(f"{path}/onnx") | |
| ner.extract("Глава Минфина Антон Силуанов встретился в Москве с представителями МВФ.") | |
| # [{'text': 'Минфина', 'type': 'ORG', 'start': 6, 'end': 13}, ...] | |
| ``` | |
| ## Скорость | |
| Одно предложение за вызов, медиана, Intel Core i3-8100 (4 ядра): | |
| | Вариант | Задержка | | |
| |---|---| | |
| | ONNX int8, CPU | 15.9 мс | | |
| | ONNX fp32, CPU | 25.6 мс | | |
| | PyTorch, CPU | 35.9 мс | | |
| | PyTorch, GTX 1060 | 12.8 мс | | |
| ## Обучение | |
| - Данные: Collection3, официальные сплиты train / validation / test (9301 / 2153 / 1922 предложения). | |
| - 4 эпохи, learning rate 3e-5, batch 16, linear warmup 10%, weight decay 0.01, `max_length=128`, seed 42. | |
| - Лучшая эпоха выбиралась по F1 на validation, тест в выборе не участвовал. | |
| - GTX 1060 6GB, 11 минут. | |
| - ONNX: экспорт через `torch.onnx` (dynamo), оптимизация графа ONNX Runtime, динамическая int8-квантизация | |
| (`per_channel=True`, `reduce_range=True`). | |
| ## Ограничения | |
| - Обучена на новостях 2010-х. На текстах другого стиля (соцсети, документы, Википедия) качество ниже. | |
| - Только три типа сущностей. Даты, суммы, должности и т. п. не размечаются. | |
| - Модель повторяет соглашения разметки Collection3: например, кавычки иногда входят в название организации, | |
| а должность в сущность не входит никогда. | |
| - Около 58% сущностей теста встречались в train, поэтому F1 на тесте частично отражает запоминание. | |
| F1 на новых сущностях (0.957) — более честная оценка обобщения. | |
| ## Лицензия | |
| У базовой модели `DeepPavlov/rubert-base-cased` лицензия не указана, у Collection3 указана `other`, | |
| поэтому и здесь `other`. Перед коммерческим использованием проверьте условия базовой модели и датасета. | |
| Код проекта распространяется по лицензии MIT. | |