File size: 3,263 Bytes
8cd67a9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
---
license: mit
language:
  - ru
library_name: onnxruntime
pipeline_tag: token-classification
base_model: RUPunct/RUPunct_big
tags:
  - punctuation
  - russian
  - onnx
  - token-classification
---

# RUPunct_big → ONNX (для «Navigator Speech to Text»)

Готовая к инференсу **ONNX-версия** русской пунктуационной модели
[`RUPunct/RUPunct_big`](https://huggingface.co/RUPunct/RUPunct_big)
(лицензия MIT). Модель расставляет запятые, точки, вопросительные и
восклицательные знаки, тире, двоеточия, многоточия и заглавные буквы.

Используется приложением **Navigator Speech to Text** для локальной (офлайн)
расстановки знаков на CPU через `onnxruntime` — без PyTorch и `transformers`.

## Файлы

| Файл | Назначение |
|---|---|
| `model.onnx` | граф token-classification (opset 17), входы `input_ids`, `attention_mask`, `token_type_ids`; выход `logits` (~0.7 ГБ) |
| `tokenizer.json` | быстрый токенизатор (`tokenizers`), `strip_accents=False`, `add_prefix_space=True` |
| `tokenizer_config.json` | конфиг токенизатора |
| `id2label.json` | индекс метки → имя метки |

Метки имеют вид `LOWER_*` / `UPPER_*` / `UPPER_TOTAL_*` с суффиксами
`O, PERIOD, COMMA, QUESTION, TIRE, DVOETOCHIE, VOSKL, PERIODCOMMA, DEFIS,
MNOGOTOCHIE, QUESTIONVOSKL`.

## Как это устроено

Экспорт выполняет `tools/export_rupunct_onnx.py` из исходного проекта
(нужны `torch` и `transformers`, запускается один раз на сборочной машине):

```bash
python export_rupunct_onnx.py --model RUPunct/RUPunct_big --output other/punctuation-onnx
```

Приложение скачивает эти 4 файла с базового URL
(`https://huggingface.co/IcPlus/rupunct-onnx/resolve/main`) с поддержкой
докачки по HTTP `Range` и держит их в локальном кэше.

## Постобработка (правила приложения)

Поверх выхода модели в приложении применяются правила на русском языке:
замена лишних тире на запятую (кроме «определительного» тире перед
«это / значит / вот»), строчная буква после тире и после `:`/`;`,
заглавная в начале предложения и подавление ошибочной заглавной у служебных
слов. Они живут в `tools/punctuate_worker.py` и к этой модели отношения не имеют.

## Атрибуция и лицензия

- Базовая модель: **RUPunct/RUPunct_big**, авторы — Russian Punctuation Research.
- Лицензия базы и этого экспорта: **MIT**.
- Это производная (конвертация формата), а не переобучение: веса не менялись.