aorabdel commited on
Commit
e919adb
·
verified ·
1 Parent(s): fbdfa78

Sync model repo (text/metadata)

Browse files
README.md CHANGED
@@ -33,7 +33,7 @@ The model is reasoning-distilled: the embedded chat template opens the assistant
33
  | Model format | GGUF `.gguf` (llama.cpp) |
34
  | Target device class | Mobile CPU |
35
  | Reference device | vivo X300 (C1-Ultra, C1-Premium, C1-Pro; Android 16 / OriginOS 6) |
36
- | Primary performance result | 41.21 tokens/sec decode, 2655.50 ms prefill |
37
  | Accuracy result | MATH-500 80.0% |
38
  | Size / memory result | 1065.56 MB model size, 3.19x smaller than the f16 baseline |
39
  | Precision | Mixed: 4-bit weights (Q4_K default tensor type and token embeddings), 6-bit output weight (Q6_K); activations dynamically quantized to 8-bit at runtime |
@@ -68,25 +68,27 @@ Performance was measured on the reference configuration below. Results are inten
68
  | Field | Value |
69
  |---|---|
70
  | Device / platform | vivo X300 |
71
- | CPU / accelerator | C1-Ultra, C1-Premium, C1-Pro (8 cores), cpu |
72
  | OS | android — Android 16 / OriginOS 6 |
73
  | Runtime | llama.cpp |
74
  | Backend / delegate | cpu, ggml-cpu-repack |
75
  | Batch size | 1 |
76
  | Precision | Mixed: 4-bit weights (Q4_K default tensor type and token embeddings), 6-bit output weight (Q6_K); activations dynamically quantized to 8-bit at runtime; imatrix-weighted k-quant, per-group, asymmetric |
77
- | Runs | 5 measured |
 
 
78
 
79
  **Performance results**
80
 
81
  | Metric | Original / baseline | Arm-optimized | Improvement |
82
- |---|---:|---:|---:|
83
- | Decode throughput | 10.01 tokens/sec | 41.21 tokens/sec | 4.12x |
84
- | Prefill time | 19284.20 ms | 2655.50 ms | 7.26x faster |
85
- | p50 latency | 32073.58 ms | 5761.18 ms | 5.57x faster |
86
  | Model size | 3395.48 MB | 1065.56 MB | 3.19x smaller |
87
- | Peak memory | 3529.36 MB | 2012.06 MB | 1.75x less |
88
 
89
- Latency here is the arithmetic consequence of the two measured llama-bench throughputs at the benched shape (512-token prompt, 128 generated tokens), not a directly timed wall-clock figure. Peak memory is Android USS (private clean plus private dirty), not peak RSS.
90
 
91
  ## Accuracy
92
 
 
33
  | Model format | GGUF `.gguf` (llama.cpp) |
34
  | Target device class | Mobile CPU |
35
  | Reference device | vivo X300 (C1-Ultra, C1-Premium, C1-Pro; Android 16 / OriginOS 6) |
36
+ | Primary performance result | 34.67 tokens/sec decode, 761.30 ms prefill |
37
  | Accuracy result | MATH-500 80.0% |
38
  | Size / memory result | 1065.56 MB model size, 3.19x smaller than the f16 baseline |
39
  | Precision | Mixed: 4-bit weights (Q4_K default tensor type and token embeddings), 6-bit output weight (Q6_K); activations dynamically quantized to 8-bit at runtime |
 
68
  | Field | Value |
69
  |---|---|
70
  | Device / platform | vivo X300 |
71
+ | CPU / accelerator | C1-Ultra, C1-Premium, C1-Pro, cpu |
72
  | OS | android — Android 16 / OriginOS 6 |
73
  | Runtime | llama.cpp |
74
  | Backend / delegate | cpu, ggml-cpu-repack |
75
  | Batch size | 1 |
76
  | Precision | Mixed: 4-bit weights (Q4_K default tensor type and token embeddings), 6-bit output weight (Q6_K); activations dynamically quantized to 8-bit at runtime; imatrix-weighted k-quant, per-group, asymmetric |
77
+ | Runs | 5 warm-up + 20 measured |
78
+
79
+ **Measurement conditions.** Each measured run consumes a 128-token prompt and generates 128 tokens, using 4 CPU threads, 5 warm-up runs and 20 measured runs. Each run starts only once Android reports thermal status 0 (NONE), after a 30 s settle. The device is set to fixed performance mode, which is the official recommendation.
80
 
81
  **Performance results**
82
 
83
  | Metric | Original / baseline | Arm-optimized | Improvement |
84
+ | --- | ---: | ---: | ---: |
85
+ | Decode throughput | 9.84 tokens/sec | 34.67 tokens/sec | 3.52x |
86
+ | Prefill time | 5515.52 ms | 761.30 ms | 7.24x faster |
87
+ | p50 latency | 18531.18 ms | 4458.02 ms | 4.16x faster |
88
  | Model size | 3395.48 MB | 1065.56 MB | 3.19x smaller |
89
+ | Peak memory | 3469.12 MB | 1979.49 MB | 1.75x less |
90
 
91
+ Latency here is derived from the measured llama-bench figures at the benched shape (128-token prompt, 128 generated tokens), not a directly timed wall-clock figure. Peak memory is Android USS (private clean plus private dirty), not peak RSS.
92
 
93
  ## Accuracy
94
 
benchmarks/deepseek-r1-distill-qwen-1-5b-llamacpp-vivo-x300-fp32.yaml CHANGED
@@ -1,7 +1,7 @@
1
  version: 1.2.0
2
  report_type: llm-generative
3
  profile: Baseline
4
- created_at: '2026-08-11T03:16:44Z'
5
  context:
6
  target_ref: vivo-x300
7
  runtime:
@@ -16,20 +16,21 @@ context:
16
  - GGML_CPU_KLEIDIAI=ON
17
  dataset:
18
  name: llama-bench synthetic tokens
19
- sample_count: 5
20
- slice: -p 512 -n 128 -r 5 -t 4
21
  benchmark:
22
  batch_size: 1
23
- prompt_length_tokens: 512
24
  generation_length_tokens: 128
25
  deployment_mode: chat
26
- num_runs: 5
 
27
  performance:
28
  end_to_end_latency_ms:
29
- p50: 32073.58
30
- prefill_encode_time_ms: 19284.2
31
- tokens_per_second: 10.008307
32
- peak_memory_mb: 3529.35546875
33
  accuracy:
34
  benchmark_name: MATH-500
35
  accuracy_pct: 82.8
 
1
  version: 1.2.0
2
  report_type: llm-generative
3
  profile: Baseline
4
+ created_at: '2026-09-04T20:59:14Z'
5
  context:
6
  target_ref: vivo-x300
7
  runtime:
 
16
  - GGML_CPU_KLEIDIAI=ON
17
  dataset:
18
  name: llama-bench synthetic tokens
19
+ sample_count: 20
20
+ slice: -p 128 -n 128 -r 20 -t 4
21
  benchmark:
22
  batch_size: 1
23
+ prompt_length_tokens: 128
24
  generation_length_tokens: 128
25
  deployment_mode: chat
26
+ num_runs: 20
27
+ warmup_runs: 5
28
  performance:
29
  end_to_end_latency_ms:
30
+ p50: 18531.182
31
+ prefill_encode_time_ms: 5515.516
32
+ tokens_per_second: 9.836
33
+ peak_memory_mb: 3469.125
34
  accuracy:
35
  benchmark_name: MATH-500
36
  accuracy_pct: 82.8
benchmarks/deepseek-r1-distill-qwen-1-5b-llamacpp-vivo-x300-int4.yaml CHANGED
@@ -1,7 +1,7 @@
1
  version: 1.2.0
2
  report_type: llm-generative
3
  profile: Arm-Optimized
4
- created_at: '2026-08-11T03:16:44Z'
5
  context:
6
  target_ref: vivo-x300
7
  runtime:
@@ -16,20 +16,21 @@ context:
16
  - GGML_CPU_KLEIDIAI=ON
17
  dataset:
18
  name: llama-bench synthetic tokens
19
- sample_count: 5
20
- slice: -p 512 -n 128 -r 5 -t 4
21
  benchmark:
22
  batch_size: 1
23
- prompt_length_tokens: 512
24
  generation_length_tokens: 128
25
  deployment_mode: chat
26
- num_runs: 5
 
27
  performance:
28
  end_to_end_latency_ms:
29
- p50: 5761.18
30
- prefill_encode_time_ms: 2655.5
31
- tokens_per_second: 41.214719
32
- peak_memory_mb: 2012.0625
33
  accuracy:
34
  benchmark_name: MATH-500
35
  accuracy_pct: 80.0
 
1
  version: 1.2.0
2
  report_type: llm-generative
3
  profile: Arm-Optimized
4
+ created_at: '2026-09-04T20:59:14Z'
5
  context:
6
  target_ref: vivo-x300
7
  runtime:
 
16
  - GGML_CPU_KLEIDIAI=ON
17
  dataset:
18
  name: llama-bench synthetic tokens
19
+ sample_count: 20
20
+ slice: -p 128 -n 128 -r 20 -t 4
21
  benchmark:
22
  batch_size: 1
23
+ prompt_length_tokens: 128
24
  generation_length_tokens: 128
25
  deployment_mode: chat
26
+ num_runs: 20
27
+ warmup_runs: 5
28
  performance:
29
  end_to_end_latency_ms:
30
+ p50: 4458.016
31
+ prefill_encode_time_ms: 761.304
32
+ tokens_per_second: 34.671
33
+ peak_memory_mb: 1979.492
34
  accuracy:
35
  benchmark_name: MATH-500
36
  accuracy_pct: 80.0