yongqiang commited on
Commit
1fb96e1
·
1 Parent(s): 92c62a0

Add AX650 deployment package: text, image, video and audio

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +13 -0
  2. README.md +497 -1
  3. assets/gemma4_audio_test_5s.wav +3 -0
  4. assets/gemma4_audio_test_chunk0_30s.wav +3 -0
  5. assets/gemma4_audio_test_chunk1_30s.wav +3 -0
  6. assets/gemma4_axera_banner.jpg +3 -0
  7. assets/red-panda-openai.mp4 +3 -0
  8. assets/sample.png +3 -0
  9. bin/axllm +3 -0
  10. config.json +135 -0
  11. gemma4_audio_30s.axmodel +3 -0
  12. gemma4_audio_5s.axmodel +3 -0
  13. gemma4_text_p256_l0_together.axmodel +3 -0
  14. gemma4_text_p256_l10_together.axmodel +3 -0
  15. gemma4_text_p256_l11_together.axmodel +3 -0
  16. gemma4_text_p256_l12_together.axmodel +3 -0
  17. gemma4_text_p256_l13_together.axmodel +3 -0
  18. gemma4_text_p256_l14_together.axmodel +3 -0
  19. gemma4_text_p256_l15_together.axmodel +3 -0
  20. gemma4_text_p256_l16_together.axmodel +3 -0
  21. gemma4_text_p256_l17_together.axmodel +3 -0
  22. gemma4_text_p256_l18_together.axmodel +3 -0
  23. gemma4_text_p256_l19_together.axmodel +3 -0
  24. gemma4_text_p256_l1_together.axmodel +3 -0
  25. gemma4_text_p256_l20_together.axmodel +3 -0
  26. gemma4_text_p256_l21_together.axmodel +3 -0
  27. gemma4_text_p256_l22_together.axmodel +3 -0
  28. gemma4_text_p256_l23_together.axmodel +3 -0
  29. gemma4_text_p256_l24_together.axmodel +3 -0
  30. gemma4_text_p256_l25_together.axmodel +3 -0
  31. gemma4_text_p256_l26_together.axmodel +3 -0
  32. gemma4_text_p256_l27_together.axmodel +3 -0
  33. gemma4_text_p256_l28_together.axmodel +3 -0
  34. gemma4_text_p256_l29_together.axmodel +3 -0
  35. gemma4_text_p256_l2_together.axmodel +3 -0
  36. gemma4_text_p256_l30_together.axmodel +3 -0
  37. gemma4_text_p256_l31_together.axmodel +3 -0
  38. gemma4_text_p256_l32_together.axmodel +3 -0
  39. gemma4_text_p256_l33_together.axmodel +3 -0
  40. gemma4_text_p256_l34_together.axmodel +3 -0
  41. gemma4_text_p256_l35_together.axmodel +3 -0
  42. gemma4_text_p256_l36_together.axmodel +3 -0
  43. gemma4_text_p256_l37_together.axmodel +3 -0
  44. gemma4_text_p256_l38_together.axmodel +3 -0
  45. gemma4_text_p256_l39_together.axmodel +3 -0
  46. gemma4_text_p256_l3_together.axmodel +3 -0
  47. gemma4_text_p256_l40_together.axmodel +3 -0
  48. gemma4_text_p256_l41_together.axmodel +3 -0
  49. gemma4_text_p256_l4_together.axmodel +3 -0
  50. gemma4_text_p256_l5_together.axmodel +3 -0
.gitattributes CHANGED
@@ -33,3 +33,16 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ *.axmodel filter=lfs diff=lfs merge=lfs -text
37
+ main_api_ax650 filter=lfs diff=lfs merge=lfs -text
38
+ main_api_axcl_x86 filter=lfs diff=lfs merge=lfs -text
39
+ main_ax650 filter=lfs diff=lfs merge=lfs -text
40
+ main_axcl_x86 filter=lfs diff=lfs merge=lfs -text
41
+ *.png filter=lfs diff=lfs merge=lfs -text
42
+ *.jpg filter=lfs diff=lfs merge=lfs -text
43
+ *.mp4 filter=lfs diff=lfs merge=lfs -text
44
+ *.mp3 filter=lfs diff=lfs merge=lfs -text
45
+ *.wav filter=lfs diff=lfs merge=lfs -text
46
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
47
+ gemma4_tokenizer.txt filter=lfs diff=lfs merge=lfs -text
48
+ bin/axllm filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,3 +1,499 @@
1
  ---
2
- license: bsd-3-clause
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ library_name: transformers
3
+ license: gemma
4
+ base_model:
5
+ - google/gemma-4-E4B-it
6
+ pipeline_tag: image-text-to-text
7
+ tags:
8
+ - gemma4
9
+ - multimodal
10
+ - vision
11
+ - video
12
+ - audio
13
+ - axera
14
+ - ax650
15
+ - npu
16
+ - quantized
17
+ - gptq
18
+ - 4-bit
19
+ - W4A16
20
+ - long-context
21
+ language:
22
+ - en
23
+ - multilingual
24
  ---
25
+
26
+ <p align="center">
27
+ <img src="assets/gemma4_axera_banner.jpg" alt="Gemma4-Axera Banner">
28
+ </p>
29
+
30
+ # Gemma 4 E4B GPTQ-INT4 8K-Context on AXERA NPU
31
+
32
+ Ready-to-run deployment package for the GPTQ INT4 (W4A16) conversion of
33
+ [`google/gemma-4-E4B-it`](https://huggingface.co/google/gemma-4-E4B-it) on AX650 / NPU3,
34
+ compiled for an extended 8K-token context.
35
+
36
+ - Runtime: packaged `axllm` OpenAI-compatible server
37
+ - Target: AX650 / AX650N, AArch64
38
+ - Core context layout: 256-token prefill chunk, 6400-token max prefill, 8191-token decode context
39
+ - Packaged modalities: text, single image, video, fixed-duration audio
40
+ - Included runtime assets: `bin/axllm`, 43 text axmodel files, 3 vision axmodel files,
41
+ 2 audio axmodel files, tokenizer, embedding weights, sample assets
42
+
43
+ The text runtime extends the context window to 8191 tokens with up to 6400 tokens of prefill
44
+ capacity, using 25 warm-prefill history buckets (256 to 6144 in 256-token steps). The model has 42
45
+ transformer layers with sliding/full attention (512-token sliding window, full attention every 6th
46
+ layer) and 18 KV-shared layers.
47
+
48
+ ## Supported Platform
49
+
50
+ - AX650 / AX650N
51
+ - NPU3 runtime environment
52
+ - 10 GiB CMM configuration required
53
+
54
+ ## Compiled Runtime Profile
55
+
56
+ | Setting | Value |
57
+ | --- | ---: |
58
+ | Transformer layers | 42 |
59
+ | Prefill graph length | 256 tokens |
60
+ | Warm-prefill history buckets | 256 to 6144 tokens, in 256-token steps |
61
+ | Number of prefill groups | 25 |
62
+ | Maximum compiled prefill capacity | 6400 tokens |
63
+ | Maximum KV-cache length | 8191 tokens |
64
+ | Sliding-attention window | 512 tokens |
65
+ | Full-attention layers | 7 (every 6th layer) |
66
+ | KV-shared layers | 18 |
67
+ | Text quantization | W4A16 GPTQ (AutoRound), group size 128 |
68
+ | Post stage | INT8 (s8) weights |
69
+ | Vision / audio encoder quantization | U16 activations, FP32 conv bias |
70
+ | Hidden-state interface | BF16 |
71
+ | Validated server concurrency | 1 request |
72
+
73
+ ## Text Performance
74
+
75
+ Measured on AX650 with the packaged runtime, one request at a time, greedy decoding
76
+ (`temperature=0`). TTFT means time to first token.
77
+
78
+ | Prompt tokens | Prefill chunks | TTFT (s) | Decode (tok/s) |
79
+ | ---: | ---: | ---: | ---: |
80
+ | 497 | 2 | 4.2 | 3.3 |
81
+ | 1009 | 4 | 8.6 | 3.3 |
82
+ | 2033 | 8 | 14.9 | 3.3 |
83
+ | 4081 | 16 | 37.1 | 3.0 |
84
+ | 5105 | 20 | 53.6 | 2.9 |
85
+ | 6129 | 24 | 70.7 | 3.1 |
86
+
87
+ Decode holds at roughly 2.9 to 3.4 tok/s and does not degrade as the KV cache fills.
88
+
89
+ TTFT also depends on the prompt's content, not only its length: repeated wording is cheaper than
90
+ highly varied text, and follow-up requests that reuse earlier wording are cheaper again. The table
91
+ above is the slower end of that range. Image, video and audio tokens always pay full price, so a
92
+ 30 s audio clip adds 750 tokens at full cost.
93
+
94
+ ## Runtime Footprint
95
+
96
+ CMM and Linux OS memory are separate pools on AX650. The values below were measured with the
97
+ packaged server fully loaded on an otherwise idle board.
98
+
99
+ | Item | Measured value |
100
+ | --- | ---: |
101
+ | CMM used, text runtime only | 6955 MiB |
102
+ | CMM used, text + `t70` vision encoder | 7126 MiB |
103
+ | CMM used, text + `t70` vision + both audio encoders (packaged default) | 7778 MiB |
104
+ | CMM remaining at the packaged default | 2461 MiB |
105
+ | OS RSS after init | 946 MiB |
106
+ | OS RSS at peak (during 6k-token request) | 1132 MiB |
107
+
108
+ CMM does not grow during inference. The KV cache is pre-allocated at initialization for the full
109
+ 8191-token context. Weights are memory-mapped (`mmap`) into page cache rather than anonymous
110
+ memory, so the OS resident cost is small.
111
+
112
+ Only one vision encoder is loaded at a time, selected by `filename_image_encoder_axmodel` in
113
+ `config.json`; both audio encoders are loaded when both files are present. Switching the vision
114
+ profile to `t140` or `t280` adds roughly 19 MiB or 126 MiB over the `t70` default. This package
115
+ cannot be loaded alongside another multi-GB model on a 10 GiB CMM device.
116
+
117
+ ## Vision Encoder
118
+
119
+ Three fixed-resolution vision encoders are packaged. Each is a fixed shape: the resolution and the
120
+ soft-token count are compiled in and are not user-configurable at runtime. Soft tokens are the
121
+ number of image embeddings inserted into the text sequence, equal to
122
+ `(height / patch_size) * (width / patch_size) / 9` with `patch_size = 16` and 3x3 pooling.
123
+
124
+ | Model | Resolution | Soft tokens | Encoder latency | Encoder CMM |
125
+ | --- | --- | ---: | ---: | ---: |
126
+ | `gemma4_vision_h336_w480_t70.axmodel` | 336x480 | 70 | 87.4 ms | 180.9 MiB |
127
+ | `gemma4_vision_h480_w672_t140.axmodel` | 480x672 | 140 | 256.6 ms | 199.4 MiB |
128
+ | `gemma4_vision_h672_w960_t280.axmodel` | 672x960 | 280 | 744.3 ms | 306.4 MiB |
129
+
130
+ Latency is a single-model average from `ax_run_model -w 1 -r 5` on AX650, excluding text prefill
131
+ and decode. The package default is the `t70` profile. To switch profiles, edit `config.json`:
132
+
133
+ ```json
134
+ {
135
+ "filename_image_encoder_axmodel": "gemma4_vision_h480_w672_t140.axmodel",
136
+ "vision_width": 672,
137
+ "vision_height": 480
138
+ }
139
+ ```
140
+
141
+ Change the resolution pair together with the encoder file. A mismatch makes the runtime preprocess
142
+ images to a shape the encoder was not compiled for.
143
+
144
+ The runtime caches image embeddings under `vision_cache/` keyed by the media path. Delete that
145
+ directory after switching profiles, otherwise an entry produced by the previous encoder is reused.
146
+
147
+ Both the vision and the audio encoders are converted from the unquantized upstream weights, because
148
+ the source INT4 checkpoint leaves both encoder towers in full precision.
149
+
150
+ Higher profiles resolve finer detail at a higher latency cost. Use `t70` for the fastest response
151
+ and `t140` or `t280` when small features such as text in the image matter.
152
+
153
+ ## Audio Encoder
154
+
155
+ Two fixed-duration audio encoders are packaged. The duration is compiled in, and `axllm` selects
156
+ the profile from the clip length. Audio longer than 30 s is truncated to the 30 s window.
157
+
158
+ | Model | Audio duration | Mel frames | Audio tokens | Encoder latency | Encoder CMM |
159
+ | --- | --- | ---: | ---: | ---: | ---: |
160
+ | `gemma4_audio_5s.axmodel` | 5 s | 499 | 125 | 29.5 ms | 335.7 MiB |
161
+ | `gemma4_audio_30s.axmodel` | 30 s | 2999 | 750 | 173.1 ms | 360.5 MiB |
162
+
163
+ Latency is a single-model average from `ax_run_model -w 1 -r 5` on AX650, excluding text prefill
164
+ and decode. Both encoders are loaded at startup when both files are present.
165
+
166
+ ### Audio Input Format
167
+
168
+ Gemma 4's audio front end is defined at **16 kHz mono** (`sampling_rate: 16000` in
169
+ `gemma_4_e4b_it_tokenizer/processor_config.json`). Supply audio at that rate and the runtime feeds it straight to the mel
170
+ front end. Any other rate is resampled on the CPU first, and that resampling — not the NPU encoder —
171
+ dominates the time before the first token. Measured on AX650 for a 30 s clip:
172
+
173
+ | Input | Feature extraction (read + resample + mel) | NPU encode |
174
+ | --- | ---: | ---: |
175
+ | 16 kHz mono (native) | 0.94 s | 0.18 s |
176
+ | 48 kHz stereo | 2.6 s | 0.18 s |
177
+ | 44.1 kHz stereo | 3.0 s | 0.18 s |
178
+
179
+ Convert once before sending, for example:
180
+
181
+ ```bash
182
+ ffmpeg -i input.wav -ar 16000 -ac 1 -c:a pcm_s16le input_16k.wav
183
+ ```
184
+
185
+ The packaged sample clips are already 16 kHz mono.
186
+
187
+ **WAV only.** The audio path accepts uncompressed `RIFF/WAVE` PCM. Compressed containers are
188
+ rejected with `unsupported wav container (expect RIFF/WAVE)`, even when `ffmpeg` is installed on the
189
+ board, so decode `mp3 / flac / m4a / ogg` to 16 kHz mono WAV first with the command above.
190
+
191
+ A 30 s clip's 750 audio tokens span several prefill chunks, so attention within the audio block is
192
+ not fully bidirectional across chunk boundaries.
193
+
194
+ ## Video
195
+
196
+ Video is handled by the same vision encoder, one frame at a time, using the frame count in
197
+ `gemma_4_e4b_it_tokenizer/processor_config.json` (`num_frames: 32`). At the default `t70` profile that is
198
+ 32 x 70 = 2240 soft tokens per clip, so a video request costs about 2360 input tokens including the
199
+ text part and uses 10 prefill chunks.
200
+
201
+ Only the picture is used. A video's audio track is ignored; audio is a separate input, so send it as
202
+ its own `audio_url` part if you need both.
203
+
204
+ ## Package Layout
205
+
206
+ ```text
207
+ .
208
+ ├── README.md
209
+ ├── bin/axllm
210
+ ├── serve.sh
211
+ ├── config.json
212
+ ├── post_config.json
213
+ ├── gemma4_tokenizer.txt
214
+ ├── assets/
215
+ │ ├── gemma4_axera_banner.jpg
216
+ │ ├── sample.png
217
+ │ ├── red-panda-openai.mp4
218
+ │ ├── gemma4_audio_test_5s.wav
219
+ │ ├── gemma4_audio_test_chunk0_30s.wav
220
+ │ └── gemma4_audio_test_chunk1_30s.wav
221
+ ├── gemma4_text_p256_l0_together.axmodel ... gemma4_text_p256_l41_together.axmodel
222
+ ├── gemma4_text_post.axmodel
223
+ ├── gemma4_vision_h336_w480_t70.axmodel
224
+ ├── gemma4_vision_h480_w672_t140.axmodel
225
+ ├── gemma4_vision_h672_w960_t280.axmodel
226
+ ├── gemma4_audio_5s.axmodel
227
+ ├── gemma4_audio_30s.axmodel
228
+ ├── model.embed_tokens.weight.bfloat16.bin
229
+ ├── model.embed_tokens_per_layer.weight.npy
230
+ ├── model.per_layer_model_projection.weight.npy
231
+ ├── model.per_layer_projection_norm.weight.npy
232
+ └── gemma_4_e4b_it_tokenizer/
233
+ ├── config.json
234
+ ├── tokenizer.json
235
+ ├── tokenizer_config.json
236
+ ├── generation_config.json
237
+ ├── processor_config.json
238
+ └── chat_template.jinja
239
+ ```
240
+
241
+ The root directory is the direct `axllm` runtime layout: all axmodel files, the embedding weights,
242
+ and the tokenizer text file live at the root. The tokenizer subdirectory holds the Hugging Face
243
+ tokenizer and model metadata without source weight shards.
244
+
245
+ ## Sample Assets
246
+
247
+ The package ships the media used in the examples below.
248
+
249
+ `assets/sample.png`
250
+
251
+ ![sample](assets/sample.png)
252
+
253
+ Three WAV clips of English speech at 16 kHz mono, one per audio profile length:
254
+
255
+ - `assets/gemma4_audio_test_5s.wav` (5.00 s)
256
+ - `assets/gemma4_audio_test_chunk0_30s.wav` (30.00 s)
257
+ - `assets/gemma4_audio_test_chunk1_30s.wav` (30.00 s)
258
+
259
+ One video clip for the video example:
260
+
261
+ - `assets/red-panda-openai.mp4` (30.1 s, 360x640)
262
+
263
+ ## Download
264
+
265
+ ```bash
266
+ mkdir -p AXERA-TECH/gemma-4-E4B-it-GPTQ-INT4-P6K-C8K
267
+ cd AXERA-TECH/gemma-4-E4B-it-GPTQ-INT4-P6K-C8K
268
+ hf download AXERA-TECH/gemma-4-E4B-it-GPTQ-INT4-P6K-C8K --local-dir .
269
+ ```
270
+
271
+ ## Packaged Runtime
272
+
273
+ The package ships a prebuilt AArch64 `bin/axllm`, so no separate install step is needed, and the
274
+ figures in this README refer to that binary. Replacing it with a different build of
275
+ [`AXERA-TECH/ax-llm`](https://github.com/AXERA-TECH/ax-llm) may change the TTFT figures.
276
+
277
+ ## Run on the Board
278
+
279
+ From the package root:
280
+
281
+ ```bash
282
+ chmod +x ./bin/axllm ./serve.sh
283
+ ./serve.sh --port 8000
284
+ ```
285
+
286
+ Or equivalently:
287
+
288
+ ```bash
289
+ chmod +x ./bin/axllm
290
+ ./bin/axllm serve . --port 8000
291
+ ```
292
+
293
+ Check service health and the loaded model:
294
+
295
+ ```bash
296
+ curl http://127.0.0.1:8000/health
297
+ curl http://127.0.0.1:8000/v1/models
298
+ ```
299
+
300
+ The health endpoint returns `"status": "healthy"`, and the model list contains
301
+ `AXERA-TECH/gemma-4-E4B-it-GPTQ-INT4-P6K-C8K`.
302
+
303
+ **Server timeout:** the default `--server_timeout_ms` is 300 seconds, which covers a 6000-token
304
+ prompt (about 71 s of TTFT) plus a few hundred output tokens. A long prompt combined with a long
305
+ generation can still exceed it, since decode runs at roughly 3 tok/s. Raise it when you need both,
306
+ and raise the client-side HTTP timeout to match:
307
+
308
+ ```bash
309
+ ./serve.sh --port 8000 --server_timeout_ms 600000
310
+ ```
311
+
312
+ ## Text Request
313
+
314
+ ```bash
315
+ curl http://127.0.0.1:8000/v1/chat/completions \
316
+ -H 'Content-Type: application/json' \
317
+ -d '{
318
+ "model": "AXERA-TECH/gemma-4-E4B-it-GPTQ-INT4-P6K-C8K",
319
+ "messages": [
320
+ {"role": "user", "content": "What is the capital of France?"}
321
+ ],
322
+ "max_tokens": 64,
323
+ "temperature": 0,
324
+ "stream": false
325
+ }'
326
+ ```
327
+
328
+ Measured response:
329
+
330
+ ```text
331
+ The capital of France is **Paris**.
332
+ ```
333
+
334
+ ## Image Request
335
+
336
+ Pass the image as a board-side file path or as a base64 `data:` URI.
337
+
338
+ ```bash
339
+ curl http://127.0.0.1:8000/v1/chat/completions \
340
+ -H 'Content-Type: application/json' \
341
+ -d '{
342
+ "model": "AXERA-TECH/gemma-4-E4B-it-GPTQ-INT4-P6K-C8K",
343
+ "messages": [
344
+ {"role": "user", "content": [
345
+ {"type": "image_url", "image_url": {"url": "./assets/sample.png"}},
346
+ {"type": "text", "text": "What animal is in this image and what colour is it? Answer in one sentence."}
347
+ ]}
348
+ ],
349
+ "max_tokens": 96,
350
+ "temperature": 0,
351
+ "stream": false
352
+ }'
353
+ ```
354
+
355
+ Measured response with the default `t70` profile:
356
+
357
+ ```text
358
+ The animal in the image is a red lobster.
359
+ ```
360
+
361
+ One image per message is supported. Mixing image and audio in the same message is not supported.
362
+
363
+ ## Audio Request
364
+
365
+ Pass the audio as a board-side file path or as a base64 `data:` URI. The clip length selects the
366
+ encoder profile.
367
+
368
+ ```bash
369
+ curl http://127.0.0.1:8000/v1/chat/completions \
370
+ -H 'Content-Type: application/json' \
371
+ -d '{
372
+ "model": "AXERA-TECH/gemma-4-E4B-it-GPTQ-INT4-P6K-C8K",
373
+ "messages": [
374
+ {"role": "user", "content": [
375
+ {"type": "audio_url", "audio_url": {"url": "./assets/gemma4_audio_test_5s.wav"}},
376
+ {"type": "text", "text": "Transcribe the speech in this audio in its original language. Output only the transcription."}
377
+ ]}
378
+ ],
379
+ "max_tokens": 128,
380
+ "temperature": 0,
381
+ "stream": false
382
+ }'
383
+ ```
384
+
385
+ Measured response for `assets/gemma4_audio_test_5s.wav` (5 s profile, 125 audio tokens):
386
+
387
+ ```text
388
+ When I was seventeen, I read a quote that went something like, if you
389
+ ```
390
+
391
+ Measured response for `assets/gemma4_audio_test_chunk0_30s.wav` (30 s profile, 750 audio tokens):
392
+
393
+ ```text
394
+ No one wants to die. Even people who want to go to heaven don't want to die to get there. And yet,
395
+ death is the destination we all share. No one has ever escaped it, and that is as it should be
396
+ because death is very likely the single best invention of life. It's life's change agent. It clears
397
+ out the old to make way for the new. Right now, the new is you. But someday, not too long from now,
398
+ you will gradually become
399
+ ```
400
+
401
+ End to end on AX650 with the packaged clips this takes about 9 s for the 5 s clip and 34 to 44 s for
402
+ a 30 s clip, almost all of it text decode rather than audio processing. Both transcriptions above
403
+ stop at the `max_tokens` limit, not at a sentence boundary.
404
+
405
+ One audio file per message is supported. Mixing audio and image in the same message is not
406
+ supported.
407
+
408
+ ## Video Request
409
+
410
+ ```bash
411
+ curl http://127.0.0.1:8000/v1/chat/completions \
412
+ -H 'Content-Type: application/json' \
413
+ -d '{
414
+ "model": "AXERA-TECH/gemma-4-E4B-it-GPTQ-INT4-P6K-C8K",
415
+ "messages": [
416
+ {"role": "user", "content": [
417
+ {"type": "video_url", "video_url": {"url": "./assets/red-panda-openai.mp4"}},
418
+ {"type": "text", "text": "What animal is in this video? Answer with the animal name only."}
419
+ ]}
420
+ ],
421
+ "max_tokens": 48,
422
+ "temperature": 0,
423
+ "stream": false
424
+ }'
425
+ ```
426
+
427
+ Measured response for the packaged 30 s clip at the default `t70` profile:
428
+
429
+ ```text
430
+ Red Panda
431
+ ```
432
+
433
+ A video request of this length costs about 2360 input tokens and takes roughly 40 s end to end.
434
+
435
+ ## Multi-turn Conversation
436
+
437
+ Send the whole message list each turn, as an OpenAI client normally does. The runtime keeps the KV
438
+ cache from the previous turns and only processes the new tokens, so follow-up turns are far cheaper
439
+ than the first. With a 3223-token document in the opening message, the first turn takes about 22 s to
440
+ the first token and each short follow-up about 3 s, with the earlier turns still available to the
441
+ model.
442
+
443
+ ## Context Limits
444
+
445
+ | Limit | Value | Behaviour |
446
+ | --- | ---: | --- |
447
+ | Input tokens per request | 6400 | Above it the server returns HTTP 400 with `input_num_token(N) > prefill_max_token_num(6400)` |
448
+ | Total context (prompt + generation + history) | 8191 | KV cache is pre-allocated for this at startup |
449
+
450
+ A request over the 6400-token cap is rejected outright rather than silently truncated, so keep
451
+ prompts within the cap.
452
+
453
+ ## Transcription Endpoint
454
+
455
+ The OpenAI-compatible `/v1/audio/transcriptions` and `/v1/audio/translations` endpoints are also
456
+ available. They take a multipart upload, so the audio file does not have to exist on the board, and
457
+ they work with any OpenAI-compatible client or web UI without extra parameters.
458
+
459
+ ```bash
460
+ curl http://127.0.0.1:8000/v1/audio/transcriptions \
461
+ -F model=AXERA-TECH/gemma-4-E4B-it-GPTQ-INT4-P6K-C8K \
462
+ -F file=@./assets/gemma4_audio_test_5s.wav
463
+ ```
464
+ Measured response:
465
+
466
+ ```json
467
+ {
468
+ "text": "When I was seventeen, I read a quote that went something like, if you"
469
+ }
470
+ ```
471
+
472
+ The 30 s clips select the 750-token encoder through the same endpoint. Measured response for
473
+ `assets/gemma4_audio_test_chunk0_30s.wav`:
474
+
475
+ ```json
476
+ {
477
+ "text": "No one wants to die. Even people who want to go to heaven don't want to die to get there. And yet, death is the destination we all share. No one has ever escaped it, and that is as it should be because death is very likely the single best invention of life. It's life's change agent. It clears out the old to make way for the new. Right now, the new is you. But someday, not too long from now, you will gradually become"
478
+ }
479
+ ```
480
+
481
+ `response_format` accepts `json` (default), `verbose_json`, `text`, `srt` and `vtt`. The response is
482
+ always wrapped as `{"text": ...}`; `srt` and `vtt` put the same text in a single subtitle cue
483
+ spanning the whole clip, so there is no word-level or segment-level timing.
484
+
485
+ `/v1/audio/translations` follows the OpenAI definition and translates into English. With the packaged
486
+ English clips its output is the same as the transcription.
487
+
488
+ ## Conversion References
489
+
490
+ If you need the original model files or want to rebuild the deployment artifacts, start with:
491
+
492
+ - Original Hugging Face model: [`google/gemma-4-E4B-it`](https://huggingface.co/google/gemma-4-E4B-it)
493
+ - Source INT4 checkpoint for the text weights: [`Vishva007/gemma-4-E4B-it-W4A16-AutoRound-GPTQ`](https://huggingface.co/Vishva007/gemma-4-E4B-it-W4A16-AutoRound-GPTQ)
494
+ - AXERA conversion and deployment workflow: [`AXERA-TECH/gemma-4-E2B-it.axera`](https://github.com/AXERA-TECH/gemma-4-E2B-it.axera)
495
+
496
+ ## Discussion
497
+
498
+ - [GitHub Issues](https://github.com/AXERA-TECH/ax-llm/issues)
499
+ - QQ group: `139953715`
assets/gemma4_audio_test_5s.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9452e13af6d8a754f7e6fae143f232cff88b0e4467a21f3c48f6e624fee9f191
3
+ size 160294
assets/gemma4_audio_test_chunk0_30s.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:75c6f4594fb977e8c762f79ea6d2b10cc1fc95037a5a1d26f7fe11351efa9e66
3
+ size 960294
assets/gemma4_audio_test_chunk1_30s.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:61aeb20520ef395a83b3ac06f21d128c5572c90cae3f211287cb1b302bbb56b5
3
+ size 960294
assets/gemma4_axera_banner.jpg ADDED

Git LFS Details

  • SHA256: 317b751842963374eae394fc6d109911a5b895b72bd47ce5e4dc2ff75cb6615b
  • Pointer size: 131 Bytes
  • Size of remote file: 505 kB
assets/red-panda-openai.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d921c07bb97224d65a37801541d246067f0d506f08723ffa1ad85c217907ccb8
3
+ size 1867237
assets/sample.png ADDED

Git LFS Details

  • SHA256: e10040a55718d1e1157d919fd44051728bc9329e0e28008f940c6a316712e0cf
  • Pointer size: 131 Bytes
  • Size of remote file: 838 kB
bin/axllm ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:01c1948e316d96372fecab0968e21c8cff608ef80222a1cc6720161153bff913
3
+ size 2507312
config.json ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "mem_guard_on_unsafe": "warn",
3
+ "system_prompt": "You are a helpful assistant.",
4
+ "model_name": "AXERA-TECH/gemma-4-E4B-it-GPTQ-INT4-P6K-C8K",
5
+ "url_tokenizer_model": "gemma4_tokenizer.txt",
6
+ "tokenizer_type": "Gemma4VL",
7
+ "post_config_path": "post_config.json",
8
+ "template_filename_axmodel": "gemma4_text_p256_l%d_together.axmodel",
9
+ "axmodel_num": 42,
10
+ "filename_post_axmodel": "gemma4_text_post.axmodel",
11
+ "filename_tokens_embed": "model.embed_tokens.weight.bfloat16.bin",
12
+ "tokens_embed_num": 262144,
13
+ "tokens_embed_size": 2560,
14
+ "text_config": {
15
+ "hidden_size": 2560,
16
+ "num_hidden_layers": 42,
17
+ "num_key_value_heads": 2,
18
+ "head_dim": 256,
19
+ "global_head_dim": 512,
20
+ "num_kv_shared_layers": 18,
21
+ "layer_types": [
22
+ "sliding_attention",
23
+ "sliding_attention",
24
+ "sliding_attention",
25
+ "sliding_attention",
26
+ "sliding_attention",
27
+ "full_attention",
28
+ "sliding_attention",
29
+ "sliding_attention",
30
+ "sliding_attention",
31
+ "sliding_attention",
32
+ "sliding_attention",
33
+ "full_attention",
34
+ "sliding_attention",
35
+ "sliding_attention",
36
+ "sliding_attention",
37
+ "sliding_attention",
38
+ "sliding_attention",
39
+ "full_attention",
40
+ "sliding_attention",
41
+ "sliding_attention",
42
+ "sliding_attention",
43
+ "sliding_attention",
44
+ "sliding_attention",
45
+ "full_attention",
46
+ "sliding_attention",
47
+ "sliding_attention",
48
+ "sliding_attention",
49
+ "sliding_attention",
50
+ "sliding_attention",
51
+ "full_attention",
52
+ "sliding_attention",
53
+ "sliding_attention",
54
+ "sliding_attention",
55
+ "sliding_attention",
56
+ "sliding_attention",
57
+ "full_attention",
58
+ "sliding_attention",
59
+ "sliding_attention",
60
+ "sliding_attention",
61
+ "sliding_attention",
62
+ "sliding_attention",
63
+ "full_attention"
64
+ ],
65
+ "sliding_window": 512
66
+ },
67
+ "pad_token_id": 0,
68
+ "hidden_size_per_layer_input": 256,
69
+ "rms_norm_eps": 1e-06,
70
+ "filename_tokens_embed_per_layer": "model.embed_tokens_per_layer.weight.npy",
71
+ "filename_per_layer_model_projection": "model.per_layer_model_projection.weight.npy",
72
+ "filename_per_layer_projection_norm": "model.per_layer_projection_norm.weight.npy",
73
+ "use_mmap_load_embed": true,
74
+ "use_mmap_load_layer": true,
75
+ "vlm_type": "Gemma4VL",
76
+ "filename_image_encoder_axmodel": "gemma4_vision_h336_w480_t70.axmodel",
77
+ "vision_width": 480,
78
+ "vision_height": 336,
79
+ "vision_patch_size": 16,
80
+ "vision_cache_dir": "vision_cache",
81
+ "filename_audio_encoder_axmodel_5s": "gemma4_audio_5s.axmodel",
82
+ "filename_audio_encoder_axmodel_30s": "gemma4_audio_30s.axmodel",
83
+ "devices": [
84
+ 0
85
+ ],
86
+ "global_head_dim": 512,
87
+ "head_dim": 256,
88
+ "num_key_value_heads": 2,
89
+ "layer_types": [
90
+ "sliding_attention",
91
+ "sliding_attention",
92
+ "sliding_attention",
93
+ "sliding_attention",
94
+ "sliding_attention",
95
+ "full_attention",
96
+ "sliding_attention",
97
+ "sliding_attention",
98
+ "sliding_attention",
99
+ "sliding_attention",
100
+ "sliding_attention",
101
+ "full_attention",
102
+ "sliding_attention",
103
+ "sliding_attention",
104
+ "sliding_attention",
105
+ "sliding_attention",
106
+ "sliding_attention",
107
+ "full_attention",
108
+ "sliding_attention",
109
+ "sliding_attention",
110
+ "sliding_attention",
111
+ "sliding_attention",
112
+ "sliding_attention",
113
+ "full_attention",
114
+ "sliding_attention",
115
+ "sliding_attention",
116
+ "sliding_attention",
117
+ "sliding_attention",
118
+ "sliding_attention",
119
+ "full_attention",
120
+ "sliding_attention",
121
+ "sliding_attention",
122
+ "sliding_attention",
123
+ "sliding_attention",
124
+ "sliding_attention",
125
+ "full_attention",
126
+ "sliding_attention",
127
+ "sliding_attention",
128
+ "sliding_attention",
129
+ "sliding_attention",
130
+ "sliding_attention",
131
+ "full_attention"
132
+ ],
133
+ "sliding_window": 512,
134
+ "num_kv_shared_layers": 18
135
+ }
gemma4_audio_30s.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:faa73b53f768934a22e99cb4eca78f6d7d4aa25153b7cd74349421802ccf0cdb
3
+ size 328904141
gemma4_audio_5s.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:76cb423cde2a1a9561e02b2e717e1922e3257bdfa55c59f71a34edb12d460f64
3
+ size 323406137
gemma4_text_p256_l0_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e0f044da22c401c7626dc46b08080fbabd707cdfb11e5b5cf94438725c4ed42f
3
+ size 109942098
gemma4_text_p256_l10_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7a0fb3cdb8ead3b1067f9e744196ce27c764e7404e92f04478f78445acb97970
3
+ size 109942162
gemma4_text_p256_l11_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:464bc239946c9269586f4170adf7d22241266eded39b43e245e430533952fb3c
3
+ size 145877586
gemma4_text_p256_l12_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2ae9f4df65792f811f038277457c8c208bc96bae497aae5249d025bf5072ce66
3
+ size 109942162
gemma4_text_p256_l13_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7427d88e958793c580875a04e0a7ac2e39f9f6664dba78b4c5c8be027a40d10b
3
+ size 109942162
gemma4_text_p256_l14_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:99ed8082d5488c332932d5fa49de38e56a9ede99ea329fa89331c7f406d16431
3
+ size 109942162
gemma4_text_p256_l15_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:51f3fb4a0010977ab7a3dd2b3ec0a4e68a3d6af25c549a08dcfe78473b4d75b7
3
+ size 109942162
gemma4_text_p256_l16_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:63f46551e537112e341383c2992bf4100efaeb3cd81084bbd0a05a6dce3a8759
3
+ size 109942226
gemma4_text_p256_l17_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:532f31f1c1d2b284dc8f07056d70c595c3046420bcc4b2573ee4ed158de720eb
3
+ size 145877586
gemma4_text_p256_l18_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6bd269afeb7cac90956fb0fe3d647dd6bed7771a5359aed97e8a91de453e119d
3
+ size 109942162
gemma4_text_p256_l19_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8a6503ce847bce6f9759cab57357758410f48a87981edda561f2d9ae5e0ae0a2
3
+ size 109942162
gemma4_text_p256_l1_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:100c0d172c3cc36a2333f72521482d59fa415144ab5ee35bd5ac5ce58863e498
3
+ size 109942098
gemma4_text_p256_l20_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2e6a7d3b4177072109dc0bd50b5fb22c50067d3a9a64d198a62de480c4c4232e
3
+ size 109835090
gemma4_text_p256_l21_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bbe4ade8e7c1fc925cffbe0d04b9ceb3e476af4712a11bf5d71bb7164eba049c
3
+ size 109942226
gemma4_text_p256_l22_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c6e40c808b4f2b5e61f7a50d616d052714916288f95f4f0268302dc3d562ef67
3
+ size 109942226
gemma4_text_p256_l23_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fa47ad388ab02d7943c9590a4af56fe1b1bcc1b75284967c23041bb616538b13
3
+ size 145877586
gemma4_text_p256_l24_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:011d77636eacd258ce15550a51b531aa0f994fbd0b912428ad3a6aed5d812800
3
+ size 106277970
gemma4_text_p256_l25_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6a8cc30b1dfe9c71479ce1ebc264d769b1e9f2a04db34b9feead84d6e7181217
3
+ size 106277874
gemma4_text_p256_l26_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2b51f68af83144f90d69cfc2a7009f157a7ab21696f812e6f34a3aedd1c6a066
3
+ size 106277906
gemma4_text_p256_l27_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9a38e83f4ff7463514e607686d7689406dee842216818982fc796eb55d927805
3
+ size 106277842
gemma4_text_p256_l28_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:310d49ff1aeb6d867b047228bcf574dc6fb70d6b94ce67e8ab66fe03fcd8c6d7
3
+ size 106277874
gemma4_text_p256_l29_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f0a8c75957fcde4d65ee02a121e4b8b957c229a38c3f0a67681a271e00284472
3
+ size 139733374
gemma4_text_p256_l2_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ad21515b7bd7c1a7bf8f309d645216c1c7c4a4c87a54e2719cde0141ec44f9bf
3
+ size 109942034
gemma4_text_p256_l30_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3b6085303f3aa848c268e059b6ae872f2ecce0fe65a4a762a67439277dc49acf
3
+ size 106278098
gemma4_text_p256_l31_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:420c775da629a1d37001e58f1ee6db63a91166e6959b89418c0ff8b78c0b4332
3
+ size 106278098
gemma4_text_p256_l32_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:70756514579c6de17a29292ed99df5d4d464003a9ea555c158af5fa8a37e3a59
3
+ size 106278066
gemma4_text_p256_l33_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:49f26b532014582336b14f962bce84f0c506047af695bba9a61417a7ee44704c
3
+ size 106278066
gemma4_text_p256_l34_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e86efe91e1dc0a31ecb65dc35ce124f17658f13b467431f78346dff332e044c1
3
+ size 106278066
gemma4_text_p256_l35_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4adbb0bef290ffd954bc37b97ce8c4f86fe1b921b80f791f2d3b558b55e0e356
3
+ size 139733918
gemma4_text_p256_l36_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9ac7f6335bc3d38d5360fe2a5451fc08e6152aff07a09201378ede79807800d5
3
+ size 106278066
gemma4_text_p256_l37_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:da17bae13c5a3c9f662ff4dd8bcafb663ab30de468ee7387dd05b06316c17a19
3
+ size 106278066
gemma4_text_p256_l38_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a96d871d8cb2b0ade211b552b268a7b795d484db33390b60bfb0878efd685d9d
3
+ size 106278066
gemma4_text_p256_l39_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:303914b63b2be4f7fd65410518905b4996863e73502aa963f43b27dded54a88e
3
+ size 106278066
gemma4_text_p256_l3_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cad8098eb26b4a06e00f1b7c81a46d637e5ccab1c34f31bacb25b8f5d8d148d2
3
+ size 109942034
gemma4_text_p256_l40_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d31bbb42fd9a9e2fe10628509516243ac284ccc093fbbee692d9bf90e7df614f
3
+ size 106278066
gemma4_text_p256_l41_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7bd5234f9af81382993a139370ca431d8652005ec5ef8392e243d347dfdf374e
3
+ size 139733374
gemma4_text_p256_l4_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:307c26b63eb8edbfc8b7a323e08d7be1154ac790d0b15769761c89f22adfee59
3
+ size 109942034
gemma4_text_p256_l5_together.axmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c1b91b097b3b4ae5b1f3b0d7b1cdd5cf828b7cbf207bcbd15ea86958990006df
3
+ size 145877466