Text Generation
LiteRT-LM
LiteRT
English
litertlm
on-device
edge
asr
automatic-speech-recognition
text-normalization
inverse-text-normalization
punctuation
truecasing
speech-to-text
dictation
post-processing
qwen3
Instructions to use mlboydaisuke/S1-mini-LiteRT with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LiteRT-LM
How to use mlboydaisuke/S1-mini-LiteRT with LiteRT-LM:
# LiteRT-LM runs on various platforms (Android, iOS, Windows, Linux, macOS, IoT, Web/WASM) # and supports many APIs (C++, Python, Kotlin, Swift, JavaScript, Flutter). # For platform-specific integration guides, please refer to the official developer website: # https://ai.google.dev/edge/litert-lm # To try LiteRT-LM, the easiest way is to use our CLI tool. # 1. Install the LiteRT-LM CLI tool: pip install -U litert-lm # 2. Download and run this model locally: # See: https://ai.google.dev/edge/litert-lm/cli litert-lm run \ --from-huggingface-repo=mlboydaisuke/S1-mini-LiteRT \ --prompt="Write me a poem"
- LiteRT
How to use mlboydaisuke/S1-mini-LiteRT with LiteRT:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
Upload litertlm_manifest.json with huggingface_hub
Browse files- litertlm_manifest.json +157 -0
litertlm_manifest.json
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"manifest_schema": "0.1.0",
|
| 3 |
+
"repo": "mlboydaisuke/S1-mini-LiteRT",
|
| 4 |
+
"generated": "2026-08-25",
|
| 5 |
+
"generator": "make_manifest.py",
|
| 6 |
+
"model": {
|
| 7 |
+
"display_name": "S1-mini (LiteRT-LM)",
|
| 8 |
+
"base_model": "superwhisper/s1-mini",
|
| 9 |
+
"architecture": "Dense 0.6B ASR-transcript normalizer, Qwen3ForCausalLM finetune, 28 layers, GQA 16Q:8KV, tied embeddings",
|
| 10 |
+
"parameters_b": 0.6,
|
| 11 |
+
"license": "other",
|
| 12 |
+
"session_defaults": {
|
| 13 |
+
"notes": "Single-task text normalizer, NOT a chat model — it rewrites a question instead of answering it. Greedy is the trained behaviour (upstream generation_config sets do_sample=false): use top-k 1 / temperature 0. Every input is a control line '[Styling: casual|semi-casual|semi-formal|formal] [Structure: prose|lists] [Context: general|email]', a newline, then one raw transcript; values outside those sets are out of contract. The required system prompt is baked into the bundle template, so callers send only the control line and transcript. English only, inputs up to ~1000 tokens. License carries a naming term: distribution must keep identifying it as \"S1-mini\" by \"Superwhisper\"."
|
| 14 |
+
},
|
| 15 |
+
"context_length": 4096,
|
| 16 |
+
"capabilities": {
|
| 17 |
+
"vision": false,
|
| 18 |
+
"audio": false,
|
| 19 |
+
"thinking": {
|
| 20 |
+
"declared": true,
|
| 21 |
+
"channel": {
|
| 22 |
+
"start": "<think>",
|
| 23 |
+
"end": "</think>"
|
| 24 |
+
}
|
| 25 |
+
}
|
| 26 |
+
}
|
| 27 |
+
},
|
| 28 |
+
"variants": [
|
| 29 |
+
{
|
| 30 |
+
"file": "S1-mini_int8.litertlm",
|
| 31 |
+
"sha256": "0376f042102cd1409055374d3e823faaaf3a66c5f61c6c744ffe01193d0ae397",
|
| 32 |
+
"size_bytes": 688157792,
|
| 33 |
+
"sections": [
|
| 34 |
+
{
|
| 35 |
+
"type": "LlmMetadataProto",
|
| 36 |
+
"size_bytes": 770
|
| 37 |
+
},
|
| 38 |
+
{
|
| 39 |
+
"type": "HF_Tokenizer_Zlib",
|
| 40 |
+
"size_bytes": 2142162
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"type": "TFLiteModel",
|
| 44 |
+
"size_bytes": 685978720,
|
| 45 |
+
"model_type": "tf_lite_prefill_decode"
|
| 46 |
+
}
|
| 47 |
+
],
|
| 48 |
+
"quantization": "int8 dynamic on linears + embedding (dynamic_wi8_afp32)",
|
| 49 |
+
"backends": [
|
| 50 |
+
"cpu",
|
| 51 |
+
"gpu"
|
| 52 |
+
],
|
| 53 |
+
"default_backend": "cpu",
|
| 54 |
+
"requirements": {
|
| 55 |
+
"platform_notes": [
|
| 56 |
+
"Context (KV cache) 4096; prefill signatures 1..1024",
|
| 57 |
+
"int8 is the only variant: an int4 block-32 build was measured and rejected — it drops commas and discourse words and decodes slower at this size",
|
| 58 |
+
"Pixel 8a (Tensor G3): graph runs entirely on the OpenCL delegate — 1247/1247 decode nodes, zero XNNPACK fallback",
|
| 59 |
+
"iPhone 17 Pro verified (Metal): loads and generates, peak ~1.7 GB",
|
| 60 |
+
"Android: Google AI Edge Gallery imports the file, but Gallery builds current as of 2026-08 give imported models no accelerator choice and run them on the CPU; set TopK 1 / temperature 0.00 in the import dialog (its defaults are sampling values)"
|
| 61 |
+
]
|
| 62 |
+
},
|
| 63 |
+
"measured": [
|
| 64 |
+
{
|
| 65 |
+
"device": "Apple M4 Max",
|
| 66 |
+
"os": "macOS",
|
| 67 |
+
"backend": "gpu",
|
| 68 |
+
"runtime": "litert-lm 0.16.0",
|
| 69 |
+
"prompt_tokens": 256,
|
| 70 |
+
"decode_tokens": 256,
|
| 71 |
+
"prefill_tps": 3777,
|
| 72 |
+
"decode_tps": 146.7,
|
| 73 |
+
"ttft_s": 0.075,
|
| 74 |
+
"max_num_tokens": 4096,
|
| 75 |
+
"runs": 3,
|
| 76 |
+
"date": "2026-08-25",
|
| 77 |
+
"source": "litert-lm benchmark, -p 256 -d 256 --runs 3 --cache no, quiet machine"
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"device": "Apple M4 Max",
|
| 81 |
+
"os": "macOS",
|
| 82 |
+
"backend": "cpu",
|
| 83 |
+
"runtime": "litert-lm 0.16.0",
|
| 84 |
+
"prompt_tokens": 256,
|
| 85 |
+
"decode_tokens": 256,
|
| 86 |
+
"prefill_tps": 466,
|
| 87 |
+
"decode_tps": 34.6,
|
| 88 |
+
"ttft_s": 0.58,
|
| 89 |
+
"max_num_tokens": 4096,
|
| 90 |
+
"runs": 3,
|
| 91 |
+
"date": "2026-08-25",
|
| 92 |
+
"source": "litert-lm benchmark, -p 256 -d 256 --runs 3 --cache no, quiet machine"
|
| 93 |
+
},
|
| 94 |
+
{
|
| 95 |
+
"device": "Pixel 8a",
|
| 96 |
+
"os": "Android",
|
| 97 |
+
"backend": "gpu",
|
| 98 |
+
"runtime": "litert_lm_advanced_main v0.16.0 kit (LiteRT CompiledModel, LITERT_CL)",
|
| 99 |
+
"prompt_tokens": 205,
|
| 100 |
+
"prefill_tps": 434,
|
| 101 |
+
"decode_tps": 12.3,
|
| 102 |
+
"ttft_s": 0.67,
|
| 103 |
+
"max_num_tokens": 4096,
|
| 104 |
+
"runs": 1,
|
| 105 |
+
"date": "2026-08-25",
|
| 106 |
+
"source": "on-device benchmark run, 205-token prompt"
|
| 107 |
+
},
|
| 108 |
+
{
|
| 109 |
+
"device": "Pixel 8a",
|
| 110 |
+
"os": "Android",
|
| 111 |
+
"backend": "cpu",
|
| 112 |
+
"runtime": "litert_lm_advanced_main v0.16.0 kit (XNNPACK)",
|
| 113 |
+
"prompt_tokens": 205,
|
| 114 |
+
"prefill_tps": 40.4,
|
| 115 |
+
"decode_tps": 5.8,
|
| 116 |
+
"ttft_s": 6.46,
|
| 117 |
+
"max_num_tokens": 4096,
|
| 118 |
+
"runs": 1,
|
| 119 |
+
"date": "2026-08-25",
|
| 120 |
+
"source": "on-device benchmark run, 205-token prompt"
|
| 121 |
+
},
|
| 122 |
+
{
|
| 123 |
+
"device": "iPhone 17 Pro",
|
| 124 |
+
"os": "iOS",
|
| 125 |
+
"backend": "gpu",
|
| 126 |
+
"runtime": "litert-lm (Swift, yardstick harness)",
|
| 127 |
+
"prompt_tokens": 180,
|
| 128 |
+
"prefill_tps": 801,
|
| 129 |
+
"decode_tps": 32.0,
|
| 130 |
+
"ttft_s": 0.31,
|
| 131 |
+
"max_num_tokens": 4096,
|
| 132 |
+
"runs": 2,
|
| 133 |
+
"date": "2026-08-25",
|
| 134 |
+
"source": "on-device harness, cooled retake; both runs agreed to 0.1 tok/s"
|
| 135 |
+
},
|
| 136 |
+
{
|
| 137 |
+
"device": "iPhone 17 Pro",
|
| 138 |
+
"os": "iOS",
|
| 139 |
+
"backend": "cpu",
|
| 140 |
+
"runtime": "litert-lm (Swift, yardstick harness)",
|
| 141 |
+
"prompt_tokens": 180,
|
| 142 |
+
"prefill_tps": 281,
|
| 143 |
+
"decode_tps": 15.5,
|
| 144 |
+
"ttft_s": 0.74,
|
| 145 |
+
"max_num_tokens": 4096,
|
| 146 |
+
"runs": 1,
|
| 147 |
+
"date": "2026-08-25",
|
| 148 |
+
"source": "on-device harness; measured at thermal state 'serious' — treat as a floor"
|
| 149 |
+
}
|
| 150 |
+
],
|
| 151 |
+
"known_issues": [
|
| 152 |
+
"Pixel 8a GPU: on number-dense input a date separator can be lost ('March 3rd, 2026.' -> 'March 32026.'), deterministic on repeat runs; the CPU backend on the same phone is byte-identical to macOS across all 12 test cases. Prefer CPU on this phone when exactness matters, GPU when time-to-first-token matters.",
|
| 153 |
+
"The released checkpoint itself drifts from its own upstream card's example table (it keeps 'Hmm,' / 'So' discourse markers the card drops); parity here is stated against HF fp32, not against those published examples."
|
| 154 |
+
]
|
| 155 |
+
}
|
| 156 |
+
]
|
| 157 |
+
}
|