File size: 1,690 Bytes
0fe9ca9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
license: apache-2.0
language:
  - ru
tags:
  - ner
  - token-classification
  - coreml
  - russian
base_model: ai-forever/ruBert-base
---

# rubert-base-collection3-ner-coreml

Russian NER (PER / ORG / LOC) as a self-contained fp16 Core ML package for on-device
inference on Apple Silicon. Converted for the [Letopis](https://smkrv.net/letopis) macOS app
(on-device PII redaction of call transcripts); usable by any Core ML consumer.

## Lineage

- Base model: [ai-forever/ruBert-base](https://huggingface.co/ai-forever/ruBert-base)
- Fine-tune (Collection3, PER/ORG/LOC): [viktor-shcherb/sberbank-rubert-base-collection3](https://huggingface.co/viktor-shcherb/sberbank-rubert-base-collection3) (Apache-2.0); reported Collection3 test F1 0.948
- This repo: fp16 Core ML conversion of that fine-tune, plus the WordPiece vocab and label map

## Files

- `NERCollection3.mlpackage` - BertForTokenClassification, fp16 mlprogram, fixed shape
  (1, 256): inputs `input_ids` + `attention_mask` (int32), output `logits` (1, 256, 7)
- `vocab.txt` - WordPiece vocab (do_lower_case = true, accents stripped per BERT BasicTokenizer)
- `tokenizer_config.json` - reference tokenizer settings
- `config.json` - `id2label`: O, B-PER, I-PER, B-ORG, I-ORG, B-LOC, I-LOC; `seq_len: 256`
- `tokenizer_fixtures.json` - reference tokenizations (ids + char offsets) for porting tokenizers

## Conversion fidelity

Verified against the PyTorch original on 1500 conversational RU sentences (cased and
lowercase/unpunctuated): token-level label agreement 99.98%, entity-span agreement 99.8%.

## License

Apache-2.0, inherited from the fine-tune and base model. Conversion and packaging:
© 2026 Sergey Makarov.