failed09 commited on
Commit
defc91f
·
verified ·
1 Parent(s): 8ac9cc7

Release update

Browse files
Files changed (4) hide show
  1. LICENSE +202 -0
  2. META.json +1 -1
  3. README.md +185 -185
  4. SHA256SUMS +3 -2
LICENSE ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
META.json CHANGED
@@ -7,7 +7,7 @@
7
  "language": [
8
  "ba"
9
  ],
10
- "license": "unknown",
11
  "source": "Fine-tuned BashkirRoBERTa encoder using Bashkir person-entity annotations; source texts are not redistributed.",
12
  "base_model": "failed09/bashkir-roberta",
13
  "created_at": "2026-09-29T19:47:12+00:00",
 
7
  "language": [
8
  "ba"
9
  ],
10
+ "license": "apache-2.0",
11
  "source": "Fine-tuned BashkirRoBERTa encoder using Bashkir person-entity annotations; source texts are not redistributed.",
12
  "base_model": "failed09/bashkir-roberta",
13
  "created_at": "2026-09-29T19:47:12+00:00",
README.md CHANGED
@@ -1,185 +1,185 @@
1
- ---
2
- language:
3
- - ba
4
- license: unknown
5
- pretty_name: BashkirRoBERTa NER
6
- library_name: onnxruntime
7
- pipeline_tag: token-classification
8
- tags:
9
- - bashkir
10
- - named-entity-recognition
11
- - person
12
- - onnx
13
- - onnxruntime
14
- - low-resource
15
- ---
16
-
17
- # BashkirRoBERTa NER
18
-
19
- > ONNX models for finding person names in Bashkir text, with a compact CPU default.
20
-
21
- ## Overview
22
-
23
- BashkirRoBERTa NER is a person-name tagger fine-tuned from the BashkirRoBERTa
24
- masked-language encoder. It recognizes people (`PER`) and returns spans in the
25
- original text. The release includes FP32 and dynamically quantized INT8 ONNX
26
- graphs, the original SentencePiece tokenizer, and a small standalone runtime.
27
- The INT8 model is the default for CPU use.
28
-
29
- | At a glance | |
30
- | --- | --- |
31
- | Task | Bashkir person named entity recognition (`PER`) |
32
- | Default artifact | `onnx/model_int8.onnx` |
33
- | Source | A Bashkir-language encoder and person-entity training annotations |
34
- | Version / license | v1 / unresolved (`unknown`) |
35
-
36
- ## Contents
37
-
38
- ### Files and Configurations
39
-
40
- | File | Purpose | Size |
41
- | --- | --- | ---: |
42
- | **`onnx/model_int8.onnx`** | CPU default, dynamic INT8 | 82.4 MB |
43
- | `onnx/model_fp32.onnx` | FP32 reference with PyTorch tag parity | 200.3 MB |
44
- | `spm_bashkir_bert_16k.model` | SentencePiece tokenizer | 0.59 MB |
45
- | `runtime.py` | Word alignment, BIO spans, character offsets | — |
46
- | `config.json` | Architecture, label order, runtime contract | — |
47
- | `benchmark_summary.json` | Aggregate evaluation without source text | — |
48
- | `example.py` | Download and run the default model | — |
49
- | `META.json` | Release passport and artifact hashes | — |
50
- | `SHA256SUMS` | Checksums of the public files | — |
51
-
52
- ### Model Architecture
53
-
54
- | Property | Value |
55
- | --- | --- |
56
- | Encoder | BashkirRoBERTa, eight Pre-LayerNorm Transformer blocks |
57
- | Head | Linear word-level classifier |
58
- | Labels | `O`, `B-PER`, `I-PER` |
59
- | Tokenization | SentencePiece, first piece of each original word is labeled |
60
- | Input | `input_ids`, int64, dynamic batch and sequence dimensions |
61
- | Output | `logits`, float, `[batch, sequence, 3]` |
62
- | Maximum context | 256 SentencePiece tokens, including boundary tokens |
63
-
64
- ### Examples
65
-
66
- Outputs below were produced by the included INT8 runtime:
67
-
68
- | Input | Found people |
69
- | --- | --- |
70
- | `Рәми Ғарипов һәм Мостай Кәрим тураһында һөйләштек.` | `Рәми Ғарипов`; `Мостай Кәрим` |
71
- | `Мәрйәм менән Илнур мәктәпкә китте.` | `Мәрйәм`; `Илнур` |
72
- | `Өфө ҡалаһында яңы мәктәп асылды.` | None |
73
-
74
- ## Method
75
-
76
- ```text
77
- BashkirRoBERTa encoder → person-entity fine-tuning → FP32 ONNX
78
- → dynamic INT8 quantization → word-level BIO decoding
79
- ```
80
-
81
- The encoder was fine-tuned with Bashkir person-entity annotations; its encoder
82
- layers and classification head changed. The original masked-language ONNX graph
83
- cannot be combined with this head to reproduce the release. Training data and
84
- evaluation text are not included. The tokenizer and first-subword alignment are
85
- provided so ONNX scores can be mapped back to complete words.
86
-
87
- ### Benchmark
88
-
89
- On a held-out, human-verified person-entity set, exact person-span micro F1 is
90
- **0.8594** for FP32 and **0.8589** for INT8 when run one sentence at a time
91
- through the included adapter. FP32 makes no word-tag changes relative to the
92
- PyTorch checkpoint. The separately authored 100-sentence stress suite gives span F1
93
- **0.9294** (FP32) and **0.9231** (INT8), with 92 sentences entirely correct in
94
- each format. The stress suite is a targeted diagnostic, not an estimate of
95
- population accuracy. Dynamic INT8 outputs can vary slightly with batch
96
- composition; the figures above use the public single-sentence runtime. Counts
97
- and the BIO scoring convention are in
98
- [`benchmark_summary.json`](benchmark_summary.json).
99
-
100
- ## Quality and Use
101
-
102
- Use this model to find mentions of people in Bashkir text, including inflected
103
- names and multiword names. The `runtime.py` adapter returns each span with
104
- character offsets. `predict_tokens` also accepts pre-tokenized words for
105
- evaluation workflows. The default INT8 graph is smaller while preserving nearly
106
- all of the observed gold-set score; FP32 is available when exact checkpoint
107
- parity matters.
108
-
109
- ### Limitations
110
-
111
- - Only person entities are labeled. Places and organizations have no output class.
112
- - Rare names can be missed. Long names and adjacent people can be split or merged.
113
- - Names inside institution names can be mistaken for person mentions.
114
- - Inputs beyond the context limit are truncated; the runtime reports `truncated: true`.
115
- - Word boundaries from noisy OCR, unusual punctuation, and mixed writing systems
116
- can differ from the training tokenization.
117
- - The authored stress suite is too small and structured to replace the held-out
118
- human-verified benchmark.
119
-
120
- ## Related Resources
121
-
122
- - [BashkirRoBERTa](https://huggingface.co/failed09/bashkir-roberta) is the
123
- underlying masked-language model; use it for fill-mask work and new fine-tuning
124
- tasks rather than person-name extraction.
125
-
126
- ## Usage
127
-
128
- ```bash
129
- pip install onnxruntime sentencepiece numpy huggingface_hub
130
- ```
131
-
132
- ```python
133
- import sys
134
- from huggingface_hub import snapshot_download
135
-
136
- model_dir = snapshot_download(
137
- "failed09/bashkir-roberta-ner",
138
- allow_patterns=["onnx/model_int8.onnx", "spm_bashkir_bert_16k.model",
139
- "config.json", "runtime.py"],
140
- )
141
- sys.path.insert(0, model_dir)
142
- from runtime import BashkirPersonNER
143
-
144
- ner = BashkirPersonNER(model_dir)
145
- print(ner.predict("Рәми Ғарипов һәм Мостай Кәрим тураһында һөйләштек."))
146
- ```
147
-
148
- For the FP32 graph, download `onnx/model_fp32.onnx` as well and construct
149
- `BashkirPersonNER(model_dir, precision="fp32")`. The included `example.py`
150
- runs the default configuration.
151
-
152
- ## License
153
-
154
- The license for this checkpoint has not yet been determined. The weights are
155
- available for download, but public availability alone does not grant reuse or
156
- redistribution rights. We are reviewing the provenance and rights of the
157
- [BashkirRoBERTa base model](https://huggingface.co/failed09/bashkir-roberta)
158
- and training sources before selecting a license. Training texts and benchmark
159
- sentences are not included. Contact the maintainer through the Hub for
160
- provenance, intended-use, or removal requests.
161
-
162
- ## Citation
163
-
164
- ```bibtex
165
- @software{failed09_bashkir_roberta_ner_2026,
166
- title = {BashkirRoBERTa NER},
167
- author = {failed09},
168
- year = {2026},
169
- publisher = {Hugging Face},
170
- url = {https://huggingface.co/failed09/bashkir-roberta-ner},
171
- note = {ONNX person named entity recognition for Bashkir}
172
- }
173
- ```
174
-
175
- ## Open Bashkir Data and Sources 🐝
176
-
177
- This release is part of an open-source effort to support the development,
178
- preservation and practical use of the Bashkir language. Other related models,
179
- datasets and tools are available on the author's Hugging Face profile.
180
-
181
- The author does not claim ownership or authorship of the source texts or other
182
- materials used to derive this release; rights and licensing remain with the
183
- original authors, publishers and dataset providers. Source texts are not
184
- redistributed in this repository, so users should follow the licenses and
185
- attribution requirements of the relevant upstream resources.
 
1
+ ---
2
+ language:
3
+ - ba
4
+ license: apache-2.0
5
+ pretty_name: BashkirRoBERTa NER
6
+ library_name: onnxruntime
7
+ pipeline_tag: token-classification
8
+ tags:
9
+ - bashkir
10
+ - named-entity-recognition
11
+ - person
12
+ - onnx
13
+ - onnxruntime
14
+ - low-resource
15
+ ---
16
+
17
+ # BashkirRoBERTa NER
18
+
19
+ > ONNX models for finding person names in Bashkir text, with a compact CPU default.
20
+
21
+ ## Overview
22
+
23
+ BashkirRoBERTa NER is a person-name tagger fine-tuned from the BashkirRoBERTa
24
+ masked-language encoder. It recognizes people (`PER`) and returns spans in the
25
+ original text. The release includes FP32 and dynamically quantized INT8 ONNX
26
+ graphs, the original SentencePiece tokenizer, and a small standalone runtime.
27
+ The INT8 model is the default for CPU use.
28
+
29
+ | At a glance | |
30
+ | --- | --- |
31
+ | Task | Bashkir person named entity recognition (`PER`) |
32
+ | Default artifact | `onnx/model_int8.onnx` |
33
+ | Source | A Bashkir-language encoder and person-entity training annotations |
34
+ | Version / license | v1 / Apache-2.0 |
35
+
36
+ ## Contents
37
+
38
+ ### Files and Configurations
39
+
40
+ | File | Purpose | Size |
41
+ | --- | --- | ---: |
42
+ | **`onnx/model_int8.onnx`** | CPU default, dynamic INT8 | 82.4 MB |
43
+ | `onnx/model_fp32.onnx` | FP32 reference with PyTorch tag parity | 200.3 MB |
44
+ | `spm_bashkir_bert_16k.model` | SentencePiece tokenizer | 0.59 MB |
45
+ | `runtime.py` | Word alignment, BIO spans, character offsets | — |
46
+ | `config.json` | Architecture, label order, runtime contract | — |
47
+ | `benchmark_summary.json` | Aggregate evaluation without source text | — |
48
+ | `example.py` | Download and run the default model | — |
49
+ | `META.json` | Release passport and artifact hashes | — |
50
+ | `LICENSE` | Full license text | — |
51
+ | `SHA256SUMS` | Checksums of the public files | — |
52
+
53
+ ### Model Architecture
54
+
55
+ | Property | Value |
56
+ | --- | --- |
57
+ | Encoder | BashkirRoBERTa, eight Pre-LayerNorm Transformer blocks |
58
+ | Head | Linear word-level classifier |
59
+ | Labels | `O`, `B-PER`, `I-PER` |
60
+ | Tokenization | SentencePiece, first piece of each original word is labeled |
61
+ | Input | `input_ids`, int64, dynamic batch and sequence dimensions |
62
+ | Output | `logits`, float, `[batch, sequence, 3]` |
63
+ | Maximum context | 256 SentencePiece tokens, including boundary tokens |
64
+
65
+ ### Examples
66
+
67
+ Outputs below were produced by the included INT8 runtime:
68
+
69
+ | Input | Found people |
70
+ | --- | --- |
71
+ | `Рәми Ғарипов һәм Мостай Кәрим тураһында һөйләштек.` | `Рәми Ғарипов`; `Мостай Кәрим` |
72
+ | `Мәрйәм менән Илнур мәктәпкә китте.` | `Мәрйәм`; `Илнур` |
73
+ | `Өфө ҡалаһында яңы мәктәп асылды.` | None |
74
+
75
+ ## Method
76
+
77
+ ```text
78
+ BashkirRoBERTa encoder → person-entity fine-tuning → FP32 ONNX
79
+ → dynamic INT8 quantization → word-level BIO decoding
80
+ ```
81
+
82
+ The encoder was fine-tuned with Bashkir person-entity annotations; its encoder
83
+ layers and classification head changed. The original masked-language ONNX graph
84
+ cannot be combined with this head to reproduce the release. Training data and
85
+ evaluation text are not included. The tokenizer and first-subword alignment are
86
+ provided so ONNX scores can be mapped back to complete words.
87
+
88
+ ### Benchmark
89
+
90
+ On a held-out, human-verified person-entity set, exact person-span micro F1 is
91
+ **0.8594** for FP32 and **0.8589** for INT8 when run one sentence at a time
92
+ through the included adapter. FP32 makes no word-tag changes relative to the
93
+ PyTorch checkpoint. The separately authored 100-sentence stress suite gives span F1
94
+ **0.9294** (FP32) and **0.9231** (INT8), with 92 sentences entirely correct in
95
+ each format. The stress suite is a targeted diagnostic, not an estimate of
96
+ population accuracy. Dynamic INT8 outputs can vary slightly with batch
97
+ composition; the figures above use the public single-sentence runtime. Counts
98
+ and the BIO scoring convention are in
99
+ [`benchmark_summary.json`](benchmark_summary.json).
100
+
101
+ ## Quality and Use
102
+
103
+ Use this model to find mentions of people in Bashkir text, including inflected
104
+ names and multiword names. The `runtime.py` adapter returns each span with
105
+ character offsets. `predict_tokens` also accepts pre-tokenized words for
106
+ evaluation workflows. The default INT8 graph is smaller while preserving nearly
107
+ all of the observed gold-set score; FP32 is available when exact checkpoint
108
+ parity matters.
109
+
110
+ ### Limitations
111
+
112
+ - Only person entities are labeled. Places and organizations have no output class.
113
+ - Rare names can be missed. Long names and adjacent people can be split or merged.
114
+ - Names inside institution names can be mistaken for person mentions.
115
+ - Inputs beyond the context limit are truncated; the runtime reports `truncated: true`.
116
+ - Word boundaries from noisy OCR, unusual punctuation, and mixed writing systems
117
+ can differ from the training tokenization.
118
+ - The authored stress suite is too small and structured to replace the held-out
119
+ human-verified benchmark.
120
+
121
+ ## Related Resources
122
+
123
+ - [BashkirRoBERTa](https://huggingface.co/failed09/bashkir-roberta) is the
124
+ underlying masked-language model; use it for fill-mask work and new fine-tuning
125
+ tasks rather than person-name extraction.
126
+
127
+ ## Usage
128
+
129
+ ```bash
130
+ pip install onnxruntime sentencepiece numpy huggingface_hub
131
+ ```
132
+
133
+ ```python
134
+ import sys
135
+ from huggingface_hub import snapshot_download
136
+
137
+ model_dir = snapshot_download(
138
+ "failed09/bashkir-roberta-ner",
139
+ allow_patterns=["onnx/model_int8.onnx", "spm_bashkir_bert_16k.model",
140
+ "config.json", "runtime.py"],
141
+ )
142
+ sys.path.insert(0, model_dir)
143
+ from runtime import BashkirPersonNER
144
+
145
+ ner = BashkirPersonNER(model_dir)
146
+ print(ner.predict("Рәми Ғарипов һәм Мостай Кәрим тураһында һөйләштек."))
147
+ ```
148
+
149
+ For the FP32 graph, download `onnx/model_fp32.onnx` as well and construct
150
+ `BashkirPersonNER(model_dir, precision="fp32")`. The included `example.py`
151
+ runs the default configuration.
152
+
153
+ ## License
154
+
155
+ The model weights, tokenizer and runtime are distributed under the
156
+ [Apache-2.0 license](LICENSE). The model is fine-tuned from
157
+ [BashkirRoBERTa](https://huggingface.co/failed09/bashkir-roberta), which is also
158
+ released under Apache-2.0. Training texts and benchmark sentences are not
159
+ included; rights in the original texts remain with their respective owners.
160
+ Contact the maintainer through the Hub for provenance or removal requests.
161
+
162
+ ## Citation
163
+
164
+ ```bibtex
165
+ @software{failed09_bashkir_roberta_ner_2026,
166
+ title = {BashkirRoBERTa NER},
167
+ author = {failed09},
168
+ year = {2026},
169
+ publisher = {Hugging Face},
170
+ url = {https://huggingface.co/failed09/bashkir-roberta-ner},
171
+ note = {ONNX person named entity recognition for Bashkir}
172
+ }
173
+ ```
174
+
175
+ ## Open Bashkir Data and Sources 🐝
176
+
177
+ This release is part of an open-source effort to support the development,
178
+ preservation and practical use of the Bashkir language. Other related models,
179
+ datasets and tools are available on the author's Hugging Face profile.
180
+
181
+ The author does not claim ownership or authorship of the source texts or other
182
+ materials used to derive this release; rights and licensing remain with the
183
+ original authors, publishers and dataset providers. Source texts are not
184
+ redistributed in this repository, so users should follow the licenses and
185
+ attribution requirements of the relevant upstream resources.
SHA256SUMS CHANGED
@@ -1,5 +1,6 @@
1
- 228193ce4bcbb931f1c4b5cfd6b42e4f2a30bd7d6989ee3c50421008b87e46f3 META.json
2
- 39726094d6dce7072f05604cd9723e6124a02cb6e3c87c36519224ffa83af1d4 README.md
 
3
  0ed527c20e4be58304e32521470243841f1e3fb1bd76df203e57c0f17e04628b benchmark_summary.json
4
  4116a520ec1537633120ccd74aa167581b9a9fd2b50f5a47abfbe5171242341c config.json
5
  bbe06259d2a8343523f6b8abc4c219bc776b18cb7df8161f86ab6c533136302c example.py
 
1
+ cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
2
+ 67e1fa0880a4e383fb781491bd511ce32fe87d07389339bbfe3eac51e16b5f1c META.json
3
+ 5911b5ddad5f81d3c3f87732da1eb930d92182ea8002c4d2c1ba214fc6187591 README.md
4
  0ed527c20e4be58304e32521470243841f1e3fb1bd76df203e57c0f17e04628b benchmark_summary.json
5
  4116a520ec1537633120ccd74aa167581b9a9fd2b50f5a47abfbe5171242341c config.json
6
  bbe06259d2a8343523f6b8abc4c219bc776b18cb7df8161f86ab6c533136302c example.py