UnimeType commited on
Commit
cb77f6d
·
1 Parent(s): 0e3bbea

Restore v1.0 weights and link to UnimeType/Transliteration-2.0-4B

Browse files
PROVENANCE.json CHANGED
@@ -1,47 +1,21 @@
1
  {
2
- "release_version": "v3",
3
  "release_format": "MLX 6-bit affine, group size 64",
 
4
  "base_model": "Qwen/Qwen3.5-4B",
5
- "base_snapshot_revision": "851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a",
6
- "base_source_sha256": {
7
- "model.safetensors-00001-of-00002.safetensors": "26a93f066e1916adb13453dae5a0c707c0fbc71299ed98779571a907b8e74c61",
8
- "model.safetensors-00002-of-00002.safetensors": "cb544bd9bfae93dc59b0f22b292f5933573854a7f9b97835c67060d7d910e188"
 
 
9
  },
10
- "lora_adapter_sha256": "bce2dd31b03741876471b47988dc650d056874e05f9a32b59d9a4d8e4d3236f2",
11
- "training_method": "LoRA (r=16, alpha=32, all 32 layers) on native unquantized BF16 Qwen/Qwen3.5-4B, fused in FP32/BF16 and quantized to 6-bit affine MLX",
12
- "native_unquantized_base_precision": true,
13
- "standard_weight_sha256": {
14
- "model-00001-of-00002.safetensors": "89257da0618e2a923b5de767c7cd8c5f228fdbfdb01b40b3a0348e1eae973501",
15
- "model-00002-of-00002.safetensors": "f7ccbb0d551c23b019d1d38b5913920102dd377ef3892c5102c0408913312240"
16
- },
17
- "published_model_sha256": "b1f6f26056b972a30e7ec03a122dc1a6164e18c7353ebec498f08146ecdc0f05",
18
  "audited_dense_tensors": 426,
19
  "audited_published_tensors": 924,
 
 
20
  "training_dataset_public": false,
21
- "evaluation_414_suite": {
22
- "protocol": "unimetype-convert-short-v3",
23
- "overall_strict_pass": "362 / 414 (87.44%)",
24
- "by_language": {
25
- "chinese": "199 / 207 (96.14%)",
26
- "arabic": "72 / 84 (85.71%)",
27
- "hindi": "59 / 71 (83.10%)",
28
- "japanese": "32 / 52 (61.54%)"
29
- },
30
- "key_slices": {
31
- "you_boundary": "30 / 31 (96.77%)",
32
- "reconvert_another": "66 / 78 (84.62%)",
33
- "lexicon": "16 / 16 (100.0%)",
34
- "pure_english_control": "8 / 8 (100.0%)",
35
- "json_literal_format": "4 / 4 (100.0%)"
36
- },
37
- "contract_violations": {
38
- "protected_content_changed": 0,
39
- "line_count_changed": 0,
40
- "numeric_literals_changed": 0,
41
- "unexpected_stop": 0
42
- }
43
- },
44
- "version": "2.0",
45
- "model_version": "2.0",
46
- "release_tag": "v2.0"
47
  }
 
1
  {
 
2
  "release_format": "MLX 6-bit affine, group size 64",
3
+ "weights_unchanged_from_revision": "3e2e03c8aa8f2afffa407e90c7c2b443ecaf676f",
4
  "base_model": "Qwen/Qwen3.5-4B",
5
+ "base_snapshot_revision": "not recorded in retained training configuration",
6
+ "training_method": "LoRA on quantized 4-bit base; retained floating-point fusion followed by 6-bit quantization",
7
+ "native_unquantized_base_precision": false,
8
+ "retained_floating_source_sha256": {
9
+ "model-00001-of-00002.safetensors": "5da9935a53daa73bf22809a0f89165e8d4406328ecfd6b8c3ac3f38c137c1a56",
10
+ "model-00002-of-00002.safetensors": "01af619b9a984635330554b09cb45b652673230d55aa568a76d09449f7d066e8"
11
  },
12
+ "published_model_sha256": "7d5f5d49a553d2dbeacbae56c72d69cbd3e828ee5cde4822637b1c2029fa5ac4",
 
 
 
 
 
 
 
13
  "audited_dense_tensors": 426,
14
  "audited_published_tensors": 924,
15
+ "requantized_tensor_equality": true,
16
+ "matrices_not_equal_to_sixbit_dequantization": 249,
17
  "training_dataset_public": false,
18
+ "inference_hardware_verified": "Apple M5 Pro MacBook Pro, 48 GB, LM Studio MLX",
19
+ "nvidia_cuda_inference_verified": false,
20
+ "amd_rocm_inference_verified": false
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  }
README.md CHANGED
@@ -17,174 +17,144 @@ tags:
17
  - romaji
18
  - hinglish
19
  - arabizi
20
- - ime
21
  - qwen3.5
22
  ---
23
 
24
- # UnimeType Transliteration 4B · v2.0 (MLX 6-bit)
 
25
 
26
- **Type with familiar Latin characters. Get the writing system your message needs.**
27
 
28
- **UnimeType Transliteration 4B (`v2.0`)** is a specialized, low-latency multilingual input-method conversion model built on [`Qwen/Qwen3.5-4B`](https://huggingface.co/Qwen/Qwen3.5-4B). It converts **Chinese Pinyin**, **Japanese Romaji**, **Romanized Hindi / Hinglish**, and **Arabic Arabizi** into their native scripts while preserving English words, technical terms, `@handles`, URLs, code spans, JSON literals, numbers, line breaks, and emoji in place.
29
 
30
- It powers the local **Convert** and **Another** (`reconvert`) experience in [UnimeType](https://unimetype.com/).
 
 
31
 
32
  ## Get the UnimeType keyboard app
33
 
34
- Write naturally in Latin letters, then press **Caps Lock** or **Option+Return** (or tap **Convert** on mobile) to convert romanized text into your target script—or tap **Another** to cycle through context-aware homophones and alternative readings. UnimeType also includes **Polish** and **Explain**.
35
 
36
- **[Download the UnimeType app →](https://unimetype.com/download?utm_source=huggingface&utm_medium=referral&utm_campaign=transliteration_4b_v2&utm_content=readme_top)**
37
 
38
- Available for **macOS**, **iPhone & iPad**, **Android**, **Windows**, and **Linux**.
39
- Using LM Studio on Mac? Read our step-by-step **[LM Studio Local Setup Guide →](https://unimetype.com/blog/run-transliteration-4b-in-lm-studio)**.
40
 
41
- ---
42
 
43
- ## Download model weights (v2.0)
44
 
45
- | Format | Repository | Best for | Size |
46
- | --- | --- | --- | ---: |
47
- | **MLX 6-bit** (`group_size=64`) | **[UnimeType/Transliteration-4B](https://huggingface.co/UnimeType/Transliteration-4B/tree/main)** *(this repo)* | Apple Silicon Macs (LM Studio MLX, `mlx-lm`) | 3.42 GB |
48
- | **Standard BF16 Safetensors** | **[UnimeType/Transliteration-4B-Safetensors](https://huggingface.co/UnimeType/Transliteration-4B-Safetensors/tree/main)** | PyTorch, Transformers, vLLM, SGLang, custom quantization | 8.42 GB |
49
- | **GGUF `Q8_0`** | **[UnimeType/Transliteration-4B-GGUF](https://huggingface.co/UnimeType/Transliteration-4B-GGUF/tree/main)** | `llama.cpp`, Ollama, LM Studio (GGUF), cross-platform CPU/GPU | 4.48 GB |
50
 
51
- ---
52
 
53
- ## What's new in v2.0
54
 
55
- 1. **Native BF16 Full-Precision Lineage**: Fine-tuned directly on the official unquantized BF16 [`Qwen/Qwen3.5-4B`](https://huggingface.co/Qwen/Qwen3.5-4B) checkpoint (`revision: 851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a`) across all 32 Transformer layers (`r=32, alpha=64`), fused in `bfloat16`, and quantized directly to 6-bit affine MLX (`group_size=64`).
56
- 2. **+31.8% Higher Strict Accuracy**: Reaches **87.4% (`362 / 414`)** strict exact-match pass rate on the 414-case UnimeType multilingual benchmark (up from `55.6%` in v1.0, and outperforming cloud `DeepSeek V4.1 Flash` at `70.5%` by **+16.9%**).
57
- 3. **Context-Aware Disambiguation & `Another` (`reconvert`)**:
58
- - Resolves bilingual collisions like English `"you"` vs Chinese `"有"` (**96.8%** accuracy, up from `58.1%`).
59
- - Supports multi-step candidate cycling via `"operation": "reconvert"` and `"rejected_outputs"` (**84.6%** accuracy), including returning back to the original Latin token when alternative readings are exhausted.
60
- 4. **100% Dynamic User Glossary (`lexicon`) & Zero Structural Violations**:
61
- - Honors per-request user glossary overrides (`preferred` spellings and `do_not_translate` rules) at **100% (`16 / 16`)**.
62
- - **Zero** protected-placeholder (`[[UNIMETYPE_PROTECTED_*]]`), line-break, numeric-literal, or unexpected-stop violations across all 414 evaluation cases.
63
 
64
- ---
65
 
66
- ## Four writing systems, one familiar input
67
 
68
- | Mode | Input (`input`) | Model Output |
69
- | --- | --- | --- |
70
- | **Chinese Pinyin** (Mixed English) | `jintian yao finish README` | `今天要 finish README` |
71
- | **Chinese Context Boundary** (`you` vs `有`) | `you` *(context: `下午能出来喝咖啡吗?`)* | `有` *(press **Another** → `you`)* |
72
- | **Chinese Homophone Cycling** (`reconvert`) | `do you know ta you kong?` *(rejecting `do you know 他有空?`)* | `do you know 她有空?` |
73
- | **Japanese Romaji** | `ashita Tokyo de meeting ga arimasu` | `明日 Tokyo で meeting があります` |
74
- | **Hindi / Hinglish** | `aaj meeting hai, please deck bhej do` | `आज meeting है, please deck भेज दो` |
75
- | **Arabic Arabizi** | `el order hayewsal bokra isA` | `ال order هيوصل بكرة إن شاء الله` |
76
 
77
- ---
 
 
 
 
78
 
79
- ## Evaluation summary (v2.0 vs v1.0 & Cloud Baseline)
80
 
81
- All models are evaluated with **strict exact-match** scoring across the 414-case UnimeType multilingual test suite (`temperature=0`, thinking disabled). An output passes only if every character—including preserved English words, punctuation, line breaks, and protected spans—matches an accepted reference.
82
 
83
- | Slice / Metric | v1.0 | DeepSeek V4.1 Flash | **v2.0 (Current)** | v1.0 → v2.0 Delta |
84
- | --- | ---: | ---: | ---: | ---: |
85
- | **Overall Strict Pass (414 cases)** | 230 / 414 (55.6%) | 292 / 414 (70.5%) | **362 / 414 (87.4%)** | **+31.8%** |
86
- | **Chinese Pinyin (`zh`)** | 151 / 207 (72.9%) | 171 / 207 (82.6%) | **199 / 207 (96.1%)** | **+23.2%** |
87
- | **Arabic Arabizi (`ar`)** | 23 / 84 (27.4%) | 35 / 84 (41.7%) | **72 / 84 (85.7%)** | **+58.3%** |
88
- | **Hindi / Hinglish (`hi`)** | 41 / 71 (57.7%) | 49 / 71 (69.0%) | **59 / 71 (83.1%)** | **+25.4%** |
89
- | **Japanese Romaji (`ja`)** | 15 / 52 (28.8%) | 37 / 52 (71.2%) | **32 / 52 (61.5%)** | **+32.7%** |
90
- | **`you` vs `有` Context Boundary** | 18 / 31 (58.1%) | 16 / 31 (51.6%) | **30 / 31 (96.8%)** | **+38.7%** |
91
- | **`Another` (`reconvert` cycling)** | 58 / 78 (74.4%) | 65 / 78 (83.3%) | **66 / 78 (84.6%)** | **+10.2%** |
92
- | **Dynamic User Glossary (`lexicon`)** | 9 / 16 (56.3%) | 12 / 16 (75.0%) | **16 / 16 (100.0%)** | **+43.8%** |
93
- | **Pure English Preservation Control** | 6 / 8 (75.0%) | 6 / 8 (75.0%) | **8 / 8 (100.0%)** | **+25.0%** |
94
- | **JSON / Code Literal Preservation** | 0 / 4 (0.0%) | 3 / 4 (75.0%) | **4 / 4 (100.0%)** | **+100.0%** |
95
- | **Protected / Line / Number / Stop Violations** | 10 | 9 | **0** | **−100%** |
96
 
97
- ---
 
 
 
 
98
 
99
- ## How to run locally
100
-
101
- ### Option 1: LM Studio + UnimeType App (Recommended on Mac)
102
-
103
- 1. Download **`UnimeType/Transliteration-4B`** in [LM Studio](https://lmstudio.ai/) and start the local server (`http://127.0.0.1:1234/v1`) with model identifier `transliteration-4b`.
104
- 2. In **UnimeType → Settings → AI Service → Use Your Own API Key**, select **OpenAI-Compatible**, set Base URL to `http://127.0.0.1:1234/v1`, and Model to `transliteration-4b`.
105
- 3. UnimeType automatically activates the compact **Short Protocol** (`~110` prompt tokens, **~198 ms P50 latency** on Apple Silicon).
106
-
107
- ### Option 2: Python (`mlx-lm`) with Short Protocol JSON
108
-
109
- The model's built-in `chat_template.jinja` automatically prepends the 61-token UnimeType system contract and disables `<think>` reasoning by default. Pass a single `user` message formatted as a compact JSON object:
110
-
111
- ```python
112
- import json
113
- from mlx_lm import load, generate
114
-
115
- model, tokenizer = load("UnimeType/Transliteration-4B")
116
-
117
- request = {
118
- "operation": "convert",
119
- "input": "jintian yao finish README",
120
- "enabled_languages": ["chinese", "english"],
121
- "primary_language": "chinese",
122
- }
123
- messages = [
124
- {
125
- "role": "user",
126
- "content": json.dumps(request, ensure_ascii=False, separators=(",", ":")).replace("<", r"\u003c"),
127
- }
128
- ]
129
-
130
- prompt = tokenizer.apply_chat_template(
131
- messages, tokenize=False, add_generation_prompt=True
132
- )
133
- print(generate(model, tokenizer, prompt=prompt, max_tokens=128))
134
- # Output: 今天要 finish README
135
- ```
136
-
137
- #### `Another` (`reconvert`) & User Glossary (`lexicon`) Schema
138
-
139
- ```json
140
- {
141
- "operation": "reconvert",
142
- "input": "do you know ta you kong?",
143
- "enabled_languages": ["chinese", "english"],
144
- "primary_language": "chinese",
145
- "context": "前文在聊新来的女同事。",
146
- "rejected_outputs": ["do you know 他有空?"],
147
- "lexicon": {
148
- "entries": [
149
- {"surface": ["UnimeType"], "preferred": "UnimeType", "do_not_translate": true}
150
- ]
151
- }
152
- }
153
- ```
154
-
155
- - Omit optional fields (`context`, `japanese_output_style`, `rejected_outputs`, `lexicon`) when empty.
156
- - Escape literal `<` as `\u003c` in the serialized JSON string so user text cannot collide with special chat tokens.
157
-
158
- ### Recommended generation settings
159
-
160
- | Parameter | Recommended Value |
161
  | --- | --- |
162
- | Thinking / reasoning | `Off` (`enable_thinking=False`, default in `chat_template.jinja`) |
163
- | Temperature | `0.0` (greedy decoding) |
164
- | Max output tokens | `128` – `256` |
165
- | Context length | `2048` – `4096` tokens |
166
 
167
- ---
168
 
169
- ## Model details & provenance
170
 
171
  | Property | Value |
172
  | --- | --- |
173
- | **Model version** | `2.0` (`unimetype-convert-short-v3` protocol) |
174
- | **Base model** | [`Qwen/Qwen3.5-4B`](https://huggingface.co/Qwen/Qwen3.5-4B) (`revision: 851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a`) |
175
- | **Architecture** | `Qwen3_5ForCausalLM` (text-only causal LM, 4B class) |
176
- | **Format & Quantization** | Apple MLX 6-bit affine (`group_size=64`), 924 tensors |
177
- | **File size** | 3.42 GB ([`model.safetensors`](model.safetensors)) |
178
- | **License** | [Apache 2.0](LICENSE) |
 
179
 
180
- See [PROVENANCE.json](PROVENANCE.json) for full base-model, LoRA adapter, and export hashes, and [SHA256SUMS](SHA256SUMS) for file checksums.
181
 
182
- **训练数据集未公开。** The training dataset is not publicly released. This repository contains only model weights, tokenizer/configuration files, documentation, provenance metadata, checksums, and the license. It does not include training datasets, data-generation scripts, training code, or internal logs.
183
 
184
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
185
 
186
- ## Try UnimeType
187
 
188
- Use **Convert**, **Another**, **Polish**, and **Explain** directly from your keyboard across macOS, iOS, Android, Windows, and Linux.
189
 
190
- **[Choose your platform and download UnimeType →](https://unimetype.com/download?utm_source=huggingface&utm_medium=referral&utm_campaign=transliteration_4b_v2&utm_content=readme_bottom)**
 
17
  - romaji
18
  - hinglish
19
  - arabizi
 
20
  - qwen3.5
21
  ---
22
 
23
+ > [!IMPORTANT]
24
+ > **Newer Generation Available (`2.0`)**: See **[`UnimeType/Transliteration-2.0-4B`](https://huggingface.co/UnimeType/Transliteration-2.0-4B)** for the latest **UnimeType Transliteration 2.0 4B** release (**87.4%** 4-language strict accuracy, `+31.8%` over v1.0, dynamic user glossary `lexicon`, and zero protected-span violations).
25
 
26
+ # UnimeType Transliteration 4B
27
 
28
+ Type with familiar Latin characters. Get the writing system your message needs.
29
 
30
+ UnimeType Transliteration 4B is a focused language conversion model for everyday, mixed-language writing. It converts Pinyin, Romaji, Romanized Hindi, Hinglish, and Arabizi, with English words, product names, links, code, numbers, punctuation, and emoji intended to stay in place. Review outputs before using them; preservation is not guaranteed.
31
+
32
+ It was created for the Convert experience from [UnimeType](https://unimetype.com/).
33
 
34
  ## Get the UnimeType keyboard app
35
 
36
+ Write with Latin letters, then choose **Convert** to change romanized text into your selected writing system. UnimeType also includes **Polish** and **Explain**.
37
 
38
+ **[Download the UnimeType app →](https://unimetype.com/download?utm_source=huggingface&utm_medium=referral&utm_campaign=transliteration_4b&utm_content=readme_top)**
39
 
40
+ Choose your platform: iPhone & iPad, Android, Mac, or Windows (beta).
 
41
 
42
+ To run this model yourself, see **Download model weights** below.
43
 
44
+ ## Download model weights
45
 
46
+ | Format | Download |
47
+ | --- | --- |
48
+ | MLX 6-bit | [This repository](https://huggingface.co/UnimeType/Transliteration-4B/tree/main) |
49
+ | Standard floating-point Safetensors | [Safetensors repository](https://huggingface.co/UnimeType/Transliteration-4B-Safetensors/tree/main) |
50
+ | GGUF Q8_0 | [GGUF repository](https://huggingface.co/UnimeType/Transliteration-4B-GGUF/tree/main) |
51
 
52
+ The new exports share the retained fine-tuned source described below. Their model cards document a known Arabic trailing-newline error and runtime-specific validation. This repository's MLX weights remain unchanged.
53
 
54
+ ## Four writing systems, one familiar input
55
 
56
+ | Input style | Example input | Model output |
57
+ | --- | --- | --- |
58
+ | Chinese Pinyin | `jintian yao finish README` | `今天要 finish README` |
59
+ | Japanese Romaji | `ashita Tokyo de meeting ga arimasu` | `明日 Tokyo で meeting があります` |
60
+ | Romanized Hindi / Hinglish | `aaj meeting hai` | `आज meeting है` |
61
+ | Arabic Arabizi | `fee meeting bokra` | `في meeting بكرة` |
 
 
62
 
63
+ These examples are direct outputs from the published 6-bit model in LM Studio.
64
 
65
+ ## Made for real messages
66
 
67
+ UnimeType Transliteration 4B is designed for text that does not fit into a traditional transliteration box:
 
 
 
 
 
 
 
68
 
69
+ - Mixed-language sentences that combine romanized text with English terms
70
+ - Short chat messages and conversational phrases
71
+ - Product names, technical vocabulary, URLs, email addresses, and code spans
72
+ - Punctuation, line breaks, Markdown, numbers, and emoji that should remain intact
73
+ - Text that is already in the target writing system and should not be changed
74
 
75
+ The model returns the converted text directly, ready to review and use.
76
 
77
+ ## Supported conversion modes
78
 
79
+ | Target | Latin input | Output |
80
+ | --- | --- | --- |
81
+ | Simplified Chinese | Pinyin and natural unmarked Pinyin | Chinese characters |
82
+ | Japanese | Romaji | Kanji, Hiragana, and Katakana |
83
+ | Hindi | Romanized Hindi and Hinglish | Devanagari with preserved English |
84
+ | Arabic | Arabizi and conversational romanized Arabic | Arabic script with preserved English |
 
 
 
 
 
 
 
85
 
86
+ ## Run locally
87
+
88
+ This repository contains an MLX model for Apple silicon Macs. The model can be downloaded from Hugging Face and loaded with MLX-LM or imported into an MLX-compatible local runtime such as LM Studio.
89
+
90
+ Recommended generation settings:
91
 
92
+ | Setting | Value |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  | --- | --- |
94
+ | Thinking / reasoning | Off |
95
+ | Temperature | `0` |
96
+ | Maximum output | `128` tokens for short messages |
97
+ | Context used for validation | `2048` tokens |
98
 
99
+ Select one target language from `chinese`, `japanese`, `hindi`, or `arabic`, then provide the original text. The model is built for conversion, not translation, rewriting, polishing, or explanation.
100
 
101
+ ## Model details
102
 
103
  | Property | Value |
104
  | --- | --- |
105
+ | Base model | [Qwen3.5-4B](https://huggingface.co/Qwen/Qwen3.5-4B) |
106
+ | Parameters | 4B class |
107
+ | Format | MLX |
108
+ | Quantization | 6-bit affine, group size 64 |
109
+ | Model file size | 3.42 GB |
110
+ | Primary task | Context-aware transliteration and script conversion |
111
+ | License | Apache 2.0 |
112
 
113
+ ## Historical standalone evaluation
114
 
115
+ The published model was tested with exact final-text matching. A result passes only when the complete output matches an accepted answer, including preserved English, punctuation, code, and spacing.
116
 
117
+ | Runtime | Everyday conversion suite | Reserved multilingual suite |
118
+ | --- | ---: | ---: |
119
+ | Direct MLX | 98 / 127 | 57 / 104 |
120
+ | LM Studio | 94 / 127 | 57 / 104 |
121
+
122
+ The reserved multilingual score measures exact agreement with its reference responses. Exact-match scoring is strict: a valid alternative spelling or wording can still count as a mismatch. Review ambiguous names, dialect terms, and very short fragments before sending them.
123
+
124
+ ## Product-pipeline validation
125
+
126
+ On September 6, 2026, the unchanged published MLX weights were tested with UnimeType's production Convert prompts and evaluator, using LM Studio on an Apple M5 Pro MacBook Pro with 48 GB memory and a 16,384-token context setting.
127
+
128
+ | Check | Result |
129
+ | --- | ---: |
130
+ | Fixed conversion suite, exact accepted output | 97 / 127 |
131
+ | Conversational-context regression suite, valid-reference exact agreement | 12 / 71 |
132
+ | Context-suite structure and protected-literal count checks | 74 / 76 |
133
+ | Protected-literal count and order, cases containing protected literals | 31 / 32 |
134
+ | Latin-word preservation in eligible fixed-suite cases | 43 / 48 |
135
+ | URL preservation in eligible context cases | 16 / 16 |
136
+ | Code-span preservation in eligible context cases | 16 / 16 |
137
+ | Numeric-literal preservation in eligible context cases | 16 / 16 |
138
+ | Punctuation-sequence preservation in eligible context cases | 15 / 16 |
139
+
140
+ These are product-pipeline results, including input protection, output validation, and 20 local-route cases in the fixed suite. They are not raw-model accuracy. Five structurally invalid reference answers are excluded from context agreement, but all 76 cases remain in the structure check. Context references are model-generated and have not been reviewed by native speakers. These suites have been used during development and are not an independent blind benchmark.
141
+
142
+ Preservation counts measure exact literal counts and order within eligible cases, not general language accuracy. The Latin-word check covers case-sensitive words present in the input and every accepted reference, excluding URL, email, and code spans. Context preservation checks cover explicitly marked literals; categories overlap.
143
+
144
+ Known limitations include ambiguous short inputs, Arabic dialect and spelling variation, and context-related formatting errors. Short English fragments can be converted instead of preserved. A Japanese regression case also failed to preserve punctuation and an emoji. NVIDIA CUDA, AMD ROCm, iOS, and Android inference have not been validated for this release. The historical standalone scores above use a different evaluation setup and should not be treated as interchangeable with this product-pipeline run.
145
+
146
+ ## Release provenance and files
147
+
148
+ This repository contains the retained MLX 6-bit release. The model was fine-tuned with LoRA on a quantized 4-bit Qwen3.5-4B base, fused into a floating-point checkpoint, and then quantized to 6-bit MLX. Floating-point storage does not recover the original base model's pre-quantization precision.
149
+
150
+ The retained floating-point checkpoint was audited against this release: its 426 tensors reproduce all 924 published tensors under 6-bit affine quantization. It is not a dequantization of the published 6-bit weights. See [PROVENANCE.json](PROVENANCE.json) for source hashes and [SHA256SUMS](SHA256SUMS) for public-file checksums.
151
+
152
+ **训练数据集未公开。** The training dataset is not publicly released. This repository does not include training data, data-generation scripts, training code, or training logs.
153
+
154
+ The base model uses [Apache 2.0](https://huggingface.co/Qwen/Qwen3.5-4B/blob/main/LICENSE). A copy is included in [LICENSE](LICENSE). Safetensors and GGUF downloads are in the separate repositories linked above.
155
 
156
+ ## UnimeType keyboard app
157
 
158
+ Use Convert, Polish, and Explain from the UnimeType keyboard.
159
 
160
+ **[Choose your platform and download →](https://unimetype.com/download?utm_source=huggingface&utm_medium=referral&utm_campaign=transliteration_4b&utm_content=readme_bottom)**
SHA256SUMS CHANGED
@@ -1,9 +1,9 @@
1
  bbedc3fda3305820b977265f01b8619d87570a6739de3a5582c3464840f1e57a LICENSE
2
- 01d0a63c7651ad06f4da30bfe030ecc05df2326e675fd0e7b0109523c6e0ce36 PROVENANCE.json
3
- d01582c45213d71d4a9150d202d79104ad02b1c1f28d0d7ca3b82f0fc6f8e7dd README.md
4
- ab0bf004843a9989f79bc036ddbbc70a690fe5ddad5a1253e9ad2cbff5751167 chat_template.jinja
5
- 2a32e2a87100d23ecfa4d54d1f97f4daafc5b3925d4121a777a1ef197cd14201 config.json
6
- b1f6f26056b972a30e7ec03a122dc1a6164e18c7353ebec498f08146ecdc0f05 model.safetensors
7
- 8f649e891d65605a1b582ada3955b9f41b1d34d6f1c7e8ab41b74322c9e8c1b5 model.safetensors.index.json
8
  87a7830d63fcf43bf241c3c5242e96e62dd3fdc29224ca26fed8ea333db72de4 tokenizer.json
9
  970d4874c33b6624b3b979e5c3e55b777e77c1e6a115e985b202c8225fc81afd tokenizer_config.json
 
1
  bbedc3fda3305820b977265f01b8619d87570a6739de3a5582c3464840f1e57a LICENSE
2
+ 04552b04439c0ff111c26346981f0b310761c182252445af947d2979232128ba PROVENANCE.json
3
+ cc1e3f00266d9ed01cba976202e885dba87fba80813ec38f0ec12f905140663f README.md
4
+ ad22cb6365e58696ffc10f1fbfc5f09b8762d0486df899e8f18b0491906e0b21 chat_template.jinja
5
+ 41bc0101eb66fc8d2322fbec82763f41a7406b9f2d3d6f48f55c7c8a41c96e4b config.json
6
+ 7d5f5d49a553d2dbeacbae56c72d69cbd3e828ee5cde4822637b1c2029fa5ac4 model.safetensors
7
+ 647bf47db0319c1b3d348a2906ee53b37b3096b7df768016f30f0a4ded80619b model.safetensors.index.json
8
  87a7830d63fcf43bf241c3c5242e96e62dd3fdc29224ca26fed8ea333db72de4 tokenizer.json
9
  970d4874c33b6624b3b979e5c3e55b777e77c1e6a115e985b202c8225fc81afd tokenizer_config.json
chat_template.jinja CHANGED
@@ -62,8 +62,6 @@
62
  {%- if messages[0].role == 'system' %}
63
  {%- set content = render_content(messages[0].content, false, true)|trim %}
64
  {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
65
- {%- else %}
66
- {{- '<|im_start|>system\nUnimeType IME converter. Convert only Romanized primary_language in input; preserve English, numbers, [[UNIMETYPE_PROTECTED_*]], and JSON/code literals. Never copy context. For reconvert, never output rejected_outputs; output UNIMETYPE_NO_ALTERNATIVE only if closed candidates are exhausted.<|im_end|>\n' }}
67
  {%- endif %}
68
  {%- endif %}
69
  {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
 
62
  {%- if messages[0].role == 'system' %}
63
  {%- set content = render_content(messages[0].content, false, true)|trim %}
64
  {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
 
 
65
  {%- endif %}
66
  {%- endif %}
67
  {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
config.json CHANGED
@@ -19,10 +19,7 @@
19
  "attention_dropout": 0.0,
20
  "attn_output_gate": true,
21
  "dtype": "bfloat16",
22
- "eos_token_id": [
23
- 248044,
24
- 248046
25
- ],
26
  "full_attention_interval": 4,
27
  "head_dim": 256,
28
  "hidden_act": "silu",
@@ -98,4 +95,4 @@
98
  "video_token_id": 248057,
99
  "vision_end_token_id": 248054,
100
  "vision_start_token_id": 248053
101
- }
 
19
  "attention_dropout": 0.0,
20
  "attn_output_gate": true,
21
  "dtype": "bfloat16",
22
+ "eos_token_id": 248044,
 
 
 
23
  "full_attention_interval": 4,
24
  "head_dim": 256,
25
  "hidden_act": "silu",
 
95
  "video_token_id": 248057,
96
  "vision_end_token_id": 248054,
97
  "vision_start_token_id": 248053
98
+ }
model.safetensors CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:b1f6f26056b972a30e7ec03a122dc1a6164e18c7353ebec498f08146ecdc0f05
3
- size 3418442573
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7d5f5d49a553d2dbeacbae56c72d69cbd3e828ee5cde4822637b1c2029fa5ac4
3
+ size 3418436379
model.safetensors.index.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "metadata": {
3
- "total_size": 3418322432,
4
  "total_parameters": 4205749760
5
  },
6
  "weight_map": {
@@ -929,4 +929,4 @@
929
  "language_model.model.layers.9.post_attention_layernorm.weight": "model.safetensors",
930
  "language_model.model.norm.weight": "model.safetensors"
931
  }
932
- }
 
1
  {
2
  "metadata": {
3
+ "total_size": 3418316288,
4
  "total_parameters": 4205749760
5
  },
6
  "weight_map": {
 
929
  "language_model.model.layers.9.post_attention_layernorm.weight": "model.safetensors",
930
  "language_model.model.norm.weight": "model.safetensors"
931
  }
932
+ }