mlboydaisuke commited on
Commit
287aa3a
·
verified ·
1 Parent(s): d7abf9b

Upload litertlm_manifest.json with huggingface_hub

Browse files
Files changed (1) hide show
  1. 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
+ }