Image-Text-to-Text
PEFT
Safetensors
English
lora
diffusion-gemma
ui-testing
visual-regression
accessibility
custom-inference
conversational
Instructions to use Shelter/UI-testjev with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use Shelter/UI-testjev with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
Place the full technical report on the main model page
Browse files- README.md +98 -13
- TECHNICAL_REPORT.md +1 -110
- sha256.json +2 -2
README.md
CHANGED
|
@@ -23,7 +23,7 @@ tags:
|
|
| 23 |
|
| 24 |
UI-TestJev uses DiffusionGemma to compare approved and current screenshots, identify UI defects, and return structured decisions for testing pipelines: pass, unknown, or a failure category.
|
| 25 |
|
| 26 |
-
[Dataset](https://huggingface.co/datasets/Shelter/UI-testjev-data) · [Technical report](
|
| 27 |
|
| 28 |
## What it does
|
| 29 |
|
|
@@ -47,7 +47,7 @@ Fine-tuning improves local-check macro-F1 by **41.70 percentage points** and ful
|
|
| 47 |
|
| 48 |
Base DiffusionGemma is evaluated without the adapter, using the same INT8-expert/BF16-vision setup, screenshots and decision protocol. Fine-tuning increases false alarms: 1.77% → 16.31% on local checks and 0.76% → 3.05% on full-screen checks.
|
| 49 |
|
| 50 |
-
*Luna is `gpt-6-luna` with reasoning off. These are development-test results. The weighted score combines local, full-screen and keyboard macro-F1 (40/50/10%). Jev latency is a local reference time on an RTX PRO 6000 Blackwell Server Edition; Luna includes HTTPS overhead. Jev cost uses djev's announced tariff as an estimate, not a quote for hosting this adapter. [Measurement and pricing details](
|
| 51 |
|
| 52 |
## Technical report
|
| 53 |
|
|
@@ -59,27 +59,112 @@ Synthetic examples are built as defect/harmless-change pairs. Browser measuremen
|
|
| 59 |
|
| 60 |
The audit checked 6,536 images, removed 120 duplicate rows and excluded 21 ambiguous clipping pairs. No exact image or public-input hashes cross splits. The AdminLTE family informed earlier repairs, so the development test is not an untouched final holdout. [Dataset construction and coverage](https://huggingface.co/datasets/Shelter/UI-testjev-data).
|
| 61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
### Detection and false alarms
|
| 63 |
|
| 64 |
-
|
|
|
|
|
|
|
| 65 |
|
| 66 |
-
|
|
| 67 |
|---|---:|---:|---:|
|
| 68 |
-
|
|
| 69 |
-
|
|
| 70 |
-
|
|
| 71 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
|
| 73 |
-
Jev
|
| 74 |
|
| 75 |
-
|
| 76 |
|
| 77 |
-
|
| 78 |
|
| 79 |
-
|
| 80 |
|
| 81 |
-
|
| 82 |
|
|
|
|
| 83 |
|
| 84 |
## Use
|
| 85 |
|
|
|
|
| 23 |
|
| 24 |
UI-TestJev uses DiffusionGemma to compare approved and current screenshots, identify UI defects, and return structured decisions for testing pipelines: pass, unknown, or a failure category.
|
| 25 |
|
| 26 |
+
[Dataset](https://huggingface.co/datasets/Shelter/UI-testjev-data) · [Technical report](#technical-report) · [Use](#use) · [Input format](INPUT_FORMAT.md)
|
| 27 |
|
| 28 |
## What it does
|
| 29 |
|
|
|
|
| 47 |
|
| 48 |
Base DiffusionGemma is evaluated without the adapter, using the same INT8-expert/BF16-vision setup, screenshots and decision protocol. Fine-tuning increases false alarms: 1.77% → 16.31% on local checks and 0.76% → 3.05% on full-screen checks.
|
| 49 |
|
| 50 |
+
*Luna is `gpt-6-luna` with reasoning off. These are development-test results. The weighted score combines local, full-screen and keyboard macro-F1 (40/50/10%). Jev latency is a local reference time on an RTX PRO 6000 Blackwell Server Edition; Luna includes HTTPS overhead. Jev cost uses djev's announced tariff as an estimate, not a quote for hosting this adapter. [Measurement and pricing details](#latency-and-cost).*
|
| 51 |
|
| 52 |
## Technical report
|
| 53 |
|
|
|
|
| 59 |
|
| 60 |
The audit checked 6,536 images, removed 120 duplicate rows and excluded 21 ambiguous clipping pairs. No exact image or public-input hashes cross splits. The AdminLTE family informed earlier repairs, so the development test is not an untouched final holdout. [Dataset construction and coverage](https://huggingface.co/datasets/Shelter/UI-testjev-data).
|
| 61 |
|
| 62 |
+
### Evaluation setup
|
| 63 |
+
|
| 64 |
+
The main comparison uses 1,941 development-test decisions: 1,127 local checks, 787 full-screen checks and 27 keyboard checks. Base DiffusionGemma and UI-TestJev use the same pinned model, INT8 experts, BF16 vision, processor, prompts, option order and one-step decoding. The base arm has no LoRA adapter. This measures adaptation gains, not the effect of INT8 versus BF16 weights.
|
| 65 |
+
|
| 66 |
+
GPT-6 Luna uses reasoning off and the same public requirements, ordered images and answer options. It uses its own image processing and autoregressive decoding through Codex HTTPS. All 3,098 Luna cases across validation, development test and Scry returned valid answers with zero reported reasoning tokens.
|
| 67 |
+
|
| 68 |
+
Training source families are separate from validation and test. The AdminLTE test family was inspected during earlier dataset repair, however, so these are development results. Neither these test scores nor Scry selected the adapter checkpoint.
|
| 69 |
+
|
| 70 |
### Detection and false alarms
|
| 71 |
|
| 72 |
+
**Defect recall** counts a defect as detected when the model predicts any failure category. **Precision** is the fraction of failure predictions made on actual defects. **False-alarm rate** is the fraction of passing examples assigned a failure category. A wrong defect category can therefore count as detection while still being an incorrect answer.
|
| 73 |
+
|
| 74 |
+
#### Local requirement checks
|
| 75 |
|
| 76 |
+
| Metric | Base | UI-TestJev | Luna |
|
| 77 |
|---|---:|---:|---:|
|
| 78 |
+
| Defect precision | 92.31% | 83.21% | 84.90% |
|
| 79 |
+
| Defect recall | 21.31% | 80.99% | 76.91% |
|
| 80 |
+
| False-alarm rate | 1.77% | 16.31% | 13.65% |
|
| 81 |
+
| Exact-answer accuracy | 53.06% | 82.34% | 79.86% |
|
| 82 |
+
| Answers marked unknown | 17.30% | 0.00% | 2.84% |
|
| 83 |
+
|
| 84 |
+
#### Full-screen regression
|
| 85 |
+
|
| 86 |
+
| Metric | Base | UI-TestJev | Luna |
|
| 87 |
+
|---|---:|---:|---:|
|
| 88 |
+
| Defect precision | 95.08% | 92.59% | 95.90% |
|
| 89 |
+
| Defect recall | 14.76% | 38.17% | 59.54% |
|
| 90 |
+
| False-alarm rate | 0.76% | 3.05% | 2.54% |
|
| 91 |
+
| Exact-answer accuracy | 53.37% | 63.15% | 70.01% |
|
| 92 |
+
| Answers marked unknown | 0.00% | 0.00% | 0.38% |
|
| 93 |
+
|
| 94 |
+
On local checks, Jev detects **456/563 defects**, compared with **120/563** for the base. False alarms increase from **10/564** to **92/564** passing cases. On full-screen checks, detection rises from **58/393** to **150/393**, while false alarms rise from **3/394** to **12/394**.
|
| 95 |
+
|
| 96 |
+
The benchmark has roughly equal numbers of defective and passing visual examples. Precision in a production pipeline will depend on how often defects actually occur.
|
| 97 |
+
|
| 98 |
+
Macro-F1 in the model card averages F1 over the labels present in each task's gold answers. Visual tasks have no gold `unknown` labels: an unknown prediction counts as a miss for the true class, without adding an extra class to that average. The weighted score uses 40% local, 50% full-screen and 10% keyboard macro-F1. Missing or invalid predictions count as errors; none occurred in these runs.
|
| 99 |
+
|
| 100 |
+
### Which errors remain?
|
| 101 |
+
|
| 102 |
+

|
| 103 |
+
|
| 104 |
+
The chart requires the **correct defect category**, not merely any failure prediction. A dash means the category was not evaluated for that task. [Chart values](report/category-recall.csv).
|
| 105 |
+
|
| 106 |
+
- **Control size:** local recall is 142/153, but control-size warnings account for 56 of 92 local false alarms. In full-screen checks, recall falls to 61/153; another 22 cases are called missing content.
|
| 107 |
+
- **Contrast:** local recall is 88/103. Full-screen recall is 6/103, with 91 called pass. The model is much less reliable when it must find the affected region itself.
|
| 108 |
+
- **Image aspect:** local recall is 2/12 and full-screen recall is 0/12. This remains a weak category, and the sample is small.
|
| 109 |
+
- **Category confusion:** Jev flags 150 full-screen defects, but only 115 receive the right category. Reporting detection recall alone would hide 35 wrong-category answers.
|
| 110 |
+
|
| 111 |
+
Local and full-screen tasks differ in their prompts, crops and category mix. Their score gap does not isolate the causal effect of cropping.
|
| 112 |
+
|
| 113 |
+
#### Abstention and keyboard checks
|
| 114 |
+
|
| 115 |
+
Jev gives no `unknown` answers on either visual test task. The training set has no visual unknown targets, so this does not demonstrate good handling of ambiguous screenshots. Its answer scores are not calibrated probabilities.
|
| 116 |
+
|
| 117 |
+
Keyboard test accuracy is 24/27 for the base, 27/27 for Jev and 26/27 for Luna. Jev and Luna both recover all nine unknown cases; the base recovers eight. These are trace-based questions across nine scenarios, not evidence of broad keyboard-testing reliability.
|
| 118 |
+
|
| 119 |
+
### Validation and uncertainty
|
| 120 |
+
|
| 121 |
+
Epoch 3 is the exported checkpoint. Its weighted validation score is 67.26%, versus 39.88% for the base, but **no checkpoint met every acceptance rule**. In particular, local false alarms rose from 2.07% to 12.03%; the permitted maximum was 4.07%. Full-screen clipping recall also fell from 11/26 to 10/26. A 48-case noise probe changed decisions on 4 cases, versus 1 for the base.
|
| 122 |
+
|
| 123 |
+
The export is therefore not recommended over the base under the original acceptance rules. It offers higher defect recall with a false-alarm tradeoff that requires review.
|
| 124 |
+
|
| 125 |
+
For the Luna comparison, 2,000 paired bootstrap resamples keep each page or scenario together. On local checks, Luna minus Jev macro-F1 is -1.83 percentage points, with a 95% interval of [-6.17, +3.03]. On full-screen checks it is +10.27 points, [+4.46, +16.15]. Local results are close; the full-screen difference favors Luna. These intervals describe this corpus, not generalization to new repository families.
|
| 126 |
+
|
| 127 |
+
### External Scry evaluation
|
| 128 |
+
|
| 129 |
+
Scry contributes 311 reference/implementation pairs from 52 app groups. We ask 12 fixed category-presence questions per pair and score 505 annotated category instances.
|
| 130 |
+
|
| 131 |
+
| Diagnostic | Base | UI-TestJev | Luna |
|
| 132 |
+
|---|---:|---:|---:|
|
| 133 |
+
| Annotated categories recovered | 266/505 | 337/505 | 410/505 |
|
| 134 |
+
| Annotated-category recall | 52.67% | 66.73% | 81.19% |
|
| 135 |
+
| Additional unannotated predictions | 994 | 1,214 | 1,856 |
|
| 136 |
+
|
| 137 |
+
Jev recovers more annotated categories than the base, but also flags more unannotated categories. Scry does not contain exhaustive negatives, so those extra predictions cannot all be called false positives. This evaluation measures category presence, not localization or the original Scry benchmark score. Scry has been observed during development and is not a fresh blind test.
|
| 138 |
+
|
| 139 |
+
### Training method
|
| 140 |
+
|
| 141 |
+
| Setting | Completed run |
|
| 142 |
+
|---|---|
|
| 143 |
+
| Base | `google/diffusiongemma-26B-A4B-it`, revision `f7f5b7f5fa82ffc52addd066915886d497f5517b` |
|
| 144 |
+
| Adapter | LoRA rank 32, alpha 64, dropout 0.05; decoder attention and dense MLP projections |
|
| 145 |
+
| Frozen weights | Encoder, vision, experts, router, embeddings and output head |
|
| 146 |
+
| Learning rate / epochs | 5e-5 / 3; one configuration, seed 3407 |
|
| 147 |
+
| Optimizer | AdamW, betas (0.9, 0.95), weight decay 0.01, epsilon 1e-8 |
|
| 148 |
+
| Batch / schedule | Microbatch 1, accumulation 16; 5% warmup, cosine decay to 10% of peak; gradient norm clipped to 1.0 |
|
| 149 |
+
| Visual input | Original aspect-preserving processor; at most 1,120 visual tokens per image; 8,192 total input tokens; overflow rejected |
|
| 150 |
+
|
| 151 |
+
The objective is cross-entropy over each question's allowed answer tokens. Supervised answer slots are always replaced with random vocabulary tokens before the decoder sees them. Option order changes during training and stays fixed during evaluation. This is a task-specific decision objective, not ordinary next-token chat training.
|
| 152 |
+
|
| 153 |
+
All 1,590 training rows are visited once per epoch. Source families and pages are interleaved; related examples stay in sampling blocks, reshuffled each epoch. Passing visual examples receive 1.5x loss weight. No minority examples are duplicated to inflate the dataset.
|
| 154 |
+
|
| 155 |
+
### Latency and cost
|
| 156 |
|
| 157 |
+
Jev's median development-test latency is **1.36 seconds**, with p95 **1.63 seconds**, on an RTX PRO 6000 Blackwell Server Edition. This is a **local reference time**, including preprocessing and model work with a vision-feature cache. Luna's HTTPS client median is **1.97 seconds**, p95 **3.00 seconds**, including request setup and network. The hardware and timing boundaries differ; these numbers do not establish a controlled hosted speedup.
|
| 158 |
|
| 159 |
+
For the same 1,941 decisions, the estimated Jev cost is **$0.2589**: 7,396,753 local input tokens priced once at [djev's announced $0.035/M input tariff](https://djev.dev/?view=usage). Its [billing contract](https://api.djev.dev/docs#billing) counts physical reads, so repeated context or provider scaffolding can change that estimate. The provider reported free preview on October 1, 2026. This adapter has not been deployed there.
|
| 160 |
|
| 161 |
+
Luna's estimate is **$0.7667 with the recorded cache mix**, or **$1.6112 without caching**, using [Standard API rates](https://developers.openai.com/api/docs/models/gpt-6-luna) checked on October 1: $0.10/M input, $0.01/M cached input and $0.50/M output. The run used Codex authentication, not a paid API invoice. Both cost estimates exclude retries, training and infrastructure.
|
| 162 |
|
| 163 |
+
### Data and reuse
|
| 164 |
|
| 165 |
+
See the [dataset card](https://huggingface.co/datasets/Shelter/UI-testjev-data) for source families, processing, checks and the public-input schema. The released archives preserve the original screenshots, labels and grouping records. They are dominated by controlled web-template mutations; native-app interactions, natural bugs and visual ambiguity need separate evaluation.
|
| 166 |
|
| 167 |
+
[Diagnostic metrics](report/diagnostics.csv) · [Category-recall values](report/category-recall.csv). These tables contain aggregate results, not per-case predictions or development logs.
|
| 168 |
|
| 169 |
## Use
|
| 170 |
|
TECHNICAL_REPORT.md
CHANGED
|
@@ -1,112 +1,3 @@
|
|
| 1 |
# UI-TestJev technical report
|
| 2 |
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
[Model and usage](README.md) · [Dataset](https://huggingface.co/datasets/Shelter/UI-testjev-data)
|
| 6 |
-
|
| 7 |
-
## Evaluation setup
|
| 8 |
-
|
| 9 |
-
The main comparison uses 1,941 development-test decisions: 1,127 local checks, 787 full-screen checks and 27 keyboard checks. Base DiffusionGemma and UI-TestJev use the same pinned model, INT8 experts, BF16 vision, processor, prompts, option order and one-step decoding. The base arm has no LoRA adapter. This measures adaptation gains, not the effect of INT8 versus BF16 weights.
|
| 10 |
-
|
| 11 |
-
GPT-6 Luna uses reasoning off and the same public requirements, ordered images and answer options. It uses its own image processing and autoregressive decoding through Codex HTTPS. All 3,098 Luna cases across validation, development test and Scry returned valid answers with zero reported reasoning tokens.
|
| 12 |
-
|
| 13 |
-
Training source families are separate from validation and test. The AdminLTE test family was inspected during earlier dataset repair, however, so these are development results. Neither these test scores nor Scry selected the adapter checkpoint.
|
| 14 |
-
|
| 15 |
-
## Detection and false alarms
|
| 16 |
-
|
| 17 |
-
**Defect recall** counts a defect as detected when the model predicts any failure category. **Precision** is the fraction of failure predictions made on actual defects. **False-alarm rate** is the fraction of passing examples assigned a failure category. A wrong defect category can therefore count as detection while still being an incorrect answer.
|
| 18 |
-
|
| 19 |
-
### Local requirement checks
|
| 20 |
-
|
| 21 |
-
| Metric | Base | UI-TestJev | Luna |
|
| 22 |
-
|---|---:|---:|---:|
|
| 23 |
-
| Defect precision | 92.31% | 83.21% | 84.90% |
|
| 24 |
-
| Defect recall | 21.31% | 80.99% | 76.91% |
|
| 25 |
-
| False-alarm rate | 1.77% | 16.31% | 13.65% |
|
| 26 |
-
| Exact-answer accuracy | 53.06% | 82.34% | 79.86% |
|
| 27 |
-
| Answers marked unknown | 17.30% | 0.00% | 2.84% |
|
| 28 |
-
|
| 29 |
-
### Full-screen regression
|
| 30 |
-
|
| 31 |
-
| Metric | Base | UI-TestJev | Luna |
|
| 32 |
-
|---|---:|---:|---:|
|
| 33 |
-
| Defect precision | 95.08% | 92.59% | 95.90% |
|
| 34 |
-
| Defect recall | 14.76% | 38.17% | 59.54% |
|
| 35 |
-
| False-alarm rate | 0.76% | 3.05% | 2.54% |
|
| 36 |
-
| Exact-answer accuracy | 53.37% | 63.15% | 70.01% |
|
| 37 |
-
| Answers marked unknown | 0.00% | 0.00% | 0.38% |
|
| 38 |
-
|
| 39 |
-
On local checks, Jev detects **456/563 defects**, compared with **120/563** for the base. False alarms increase from **10/564** to **92/564** passing cases. On full-screen checks, detection rises from **58/393** to **150/393**, while false alarms rise from **3/394** to **12/394**.
|
| 40 |
-
|
| 41 |
-
The benchmark has roughly equal numbers of defective and passing visual examples. Precision in a production pipeline will depend on how often defects actually occur.
|
| 42 |
-
|
| 43 |
-
Macro-F1 in the model card averages F1 over the labels present in each task's gold answers. Visual tasks have no gold `unknown` labels: an unknown prediction counts as a miss for the true class, without adding an extra class to that average. The weighted score uses 40% local, 50% full-screen and 10% keyboard macro-F1. Missing or invalid predictions count as errors; none occurred in these runs.
|
| 44 |
-
|
| 45 |
-
## Which errors remain?
|
| 46 |
-
|
| 47 |
-

|
| 48 |
-
|
| 49 |
-
The chart requires the **correct defect category**, not merely any failure prediction. A dash means the category was not evaluated for that task. [Chart values](report/category-recall.csv).
|
| 50 |
-
|
| 51 |
-
- **Control size:** local recall is 142/153, but control-size warnings account for 56 of 92 local false alarms. In full-screen checks, recall falls to 61/153; another 22 cases are called missing content.
|
| 52 |
-
- **Contrast:** local recall is 88/103. Full-screen recall is 6/103, with 91 called pass. The model is much less reliable when it must find the affected region itself.
|
| 53 |
-
- **Image aspect:** local recall is 2/12 and full-screen recall is 0/12. This remains a weak category, and the sample is small.
|
| 54 |
-
- **Category confusion:** Jev flags 150 full-screen defects, but only 115 receive the right category. Reporting detection recall alone would hide 35 wrong-category answers.
|
| 55 |
-
|
| 56 |
-
Local and full-screen tasks differ in their prompts, crops and category mix. Their score gap does not isolate the causal effect of cropping.
|
| 57 |
-
|
| 58 |
-
### Abstention and keyboard checks
|
| 59 |
-
|
| 60 |
-
Jev gives no `unknown` answers on either visual test task. The training set has no visual unknown targets, so this does not demonstrate good handling of ambiguous screenshots. Its answer scores are not calibrated probabilities.
|
| 61 |
-
|
| 62 |
-
Keyboard test accuracy is 24/27 for the base, 27/27 for Jev and 26/27 for Luna. Jev and Luna both recover all nine unknown cases; the base recovers eight. These are trace-based questions across nine scenarios, not evidence of broad keyboard-testing reliability.
|
| 63 |
-
|
| 64 |
-
## Validation and uncertainty
|
| 65 |
-
|
| 66 |
-
Epoch 3 is the exported checkpoint. Its weighted validation score is 67.26%, versus 39.88% for the base, but **no checkpoint met every acceptance rule**. In particular, local false alarms rose from 2.07% to 12.03%; the permitted maximum was 4.07%. Full-screen clipping recall also fell from 11/26 to 10/26. A 48-case noise probe changed decisions on 4 cases, versus 1 for the base.
|
| 67 |
-
|
| 68 |
-
The export is therefore not recommended over the base under the original acceptance rules. It offers higher defect recall with a false-alarm tradeoff that requires review.
|
| 69 |
-
|
| 70 |
-
For the Luna comparison, 2,000 paired bootstrap resamples keep each page or scenario together. On local checks, Luna minus Jev macro-F1 is -1.83 percentage points, with a 95% interval of [-6.17, +3.03]. On full-screen checks it is +10.27 points, [+4.46, +16.15]. Local results are close; the full-screen difference favors Luna. These intervals describe this corpus, not generalization to new repository families.
|
| 71 |
-
|
| 72 |
-
## External Scry evaluation
|
| 73 |
-
|
| 74 |
-
Scry contributes 311 reference/implementation pairs from 52 app groups. We ask 12 fixed category-presence questions per pair and score 505 annotated category instances.
|
| 75 |
-
|
| 76 |
-
| Diagnostic | Base | UI-TestJev | Luna |
|
| 77 |
-
|---|---:|---:|---:|
|
| 78 |
-
| Annotated categories recovered | 266/505 | 337/505 | 410/505 |
|
| 79 |
-
| Annotated-category recall | 52.67% | 66.73% | 81.19% |
|
| 80 |
-
| Additional unannotated predictions | 994 | 1,214 | 1,856 |
|
| 81 |
-
|
| 82 |
-
Jev recovers more annotated categories than the base, but also flags more unannotated categories. Scry does not contain exhaustive negatives, so those extra predictions cannot all be called false positives. This evaluation measures category presence, not localization or the original Scry benchmark score. Scry has been observed during development and is not a fresh blind test.
|
| 83 |
-
|
| 84 |
-
## Training method
|
| 85 |
-
|
| 86 |
-
| Setting | Completed run |
|
| 87 |
-
|---|---|
|
| 88 |
-
| Base | `google/diffusiongemma-26B-A4B-it`, revision `f7f5b7f5fa82ffc52addd066915886d497f5517b` |
|
| 89 |
-
| Adapter | LoRA rank 32, alpha 64, dropout 0.05; decoder attention and dense MLP projections |
|
| 90 |
-
| Frozen weights | Encoder, vision, experts, router, embeddings and output head |
|
| 91 |
-
| Learning rate / epochs | 5e-5 / 3; one configuration, seed 3407 |
|
| 92 |
-
| Optimizer | AdamW, betas (0.9, 0.95), weight decay 0.01, epsilon 1e-8 |
|
| 93 |
-
| Batch / schedule | Microbatch 1, accumulation 16; 5% warmup, cosine decay to 10% of peak; gradient norm clipped to 1.0 |
|
| 94 |
-
| Visual input | Original aspect-preserving processor; at most 1,120 visual tokens per image; 8,192 total input tokens; overflow rejected |
|
| 95 |
-
|
| 96 |
-
The objective is cross-entropy over each question's allowed answer tokens. Supervised answer slots are always replaced with random vocabulary tokens before the decoder sees them. Option order changes during training and stays fixed during evaluation. This is a task-specific decision objective, not ordinary next-token chat training.
|
| 97 |
-
|
| 98 |
-
All 1,590 training rows are visited once per epoch. Source families and pages are interleaved; related examples stay in sampling blocks, reshuffled each epoch. Passing visual examples receive 1.5x loss weight. No minority examples are duplicated to inflate the dataset.
|
| 99 |
-
|
| 100 |
-
## Latency and cost
|
| 101 |
-
|
| 102 |
-
Jev's median development-test latency is **1.36 seconds**, with p95 **1.63 seconds**, on an RTX PRO 6000 Blackwell Server Edition. This is a **local reference time**, including preprocessing and model work with a vision-feature cache. Luna's HTTPS client median is **1.97 seconds**, p95 **3.00 seconds**, including request setup and network. The hardware and timing boundaries differ; these numbers do not establish a controlled hosted speedup.
|
| 103 |
-
|
| 104 |
-
For the same 1,941 decisions, the estimated Jev cost is **$0.2589**: 7,396,753 local input tokens priced once at [djev's announced $0.035/M input tariff](https://djev.dev/?view=usage). Its [billing contract](https://api.djev.dev/docs#billing) counts physical reads, so repeated context or provider scaffolding can change that estimate. The provider reported free preview on October 1, 2026. This adapter has not been deployed there.
|
| 105 |
-
|
| 106 |
-
Luna's estimate is **$0.7667 with the recorded cache mix**, or **$1.6112 without caching**, using [Standard API rates](https://developers.openai.com/api/docs/models/gpt-6-luna) checked on October 1: $0.10/M input, $0.01/M cached input and $0.50/M output. The run used Codex authentication, not a paid API invoice. Both cost estimates exclude retries, training and infrastructure.
|
| 107 |
-
|
| 108 |
-
## Data and reuse
|
| 109 |
-
|
| 110 |
-
See the [dataset card](https://huggingface.co/datasets/Shelter/UI-testjev-data) for source families, processing, checks and the public-input schema. The released archives preserve the original screenshots, labels and grouping records. They are dominated by controlled web-template mutations; native-app interactions, natural bugs and visual ambiguity need separate evaluation.
|
| 111 |
-
|
| 112 |
-
[Diagnostic metrics](report/diagnostics.csv) · [Category-recall values](report/category-recall.csv). These tables contain aggregate results, not per-case predictions or development logs.
|
|
|
|
| 1 |
# UI-TestJev technical report
|
| 2 |
|
| 3 |
+
The full report is now part of the [main model page](https://huggingface.co/Shelter/UI-testjev#technical-report), including diagnostic metrics, dataset design, category errors, training, and runtime measurements.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sha256.json
CHANGED
|
@@ -13,13 +13,13 @@
|
|
| 13 |
"NOTICE": "c7c1f72dae534a0513a7961c385c258d6672814c34f8ece01e0a3c9d3a898e48",
|
| 14 |
"processor_config.json": "54943f08b029187ee4d21a6c23a270c609417791e3fcad7853a029e58394b23c",
|
| 15 |
"quantized.py": "e8c0a9df02540fe05211949bdc88499e8a10b27c0137cf5254e9886bc6e15863",
|
| 16 |
-
"README.md": "
|
| 17 |
"report/category-recall.csv": "5f88b879df321a7f3e0c2aa869169689f93874e92c8316656426425bc418d63f",
|
| 18 |
"report/category-recall.png": "0fd8787424eae860104074faac66dedb4e148e0958636e4744bea6b3c4941e50",
|
| 19 |
"report/diagnostics.csv": "c391c71b48ddac700dd20ee341f7dd2267496346af061d141230ab2e2f009478",
|
| 20 |
"requirements.lock.txt": "3f9351705bf608e3abf6a0065b5f7b147a8a0b8123131029a238e484d4e4771a",
|
| 21 |
"requirements.txt": "2748c956c547e31333f537827bd8f6aa71df66ef073c566c6a9df2ef79a25538",
|
| 22 |
-
"TECHNICAL_REPORT.md": "
|
| 23 |
"tokenizer.json": "cc8d3a0ce36466ccc1278bf987df5f71db1719b9ca6b4118264f45cb627bfe0f",
|
| 24 |
"tokenizer_config.json": "a1bab8c81ed15fa6ce912ec993c66cb49392e0487fb1ea5f5f11ea3618683627"
|
| 25 |
}
|
|
|
|
| 13 |
"NOTICE": "c7c1f72dae534a0513a7961c385c258d6672814c34f8ece01e0a3c9d3a898e48",
|
| 14 |
"processor_config.json": "54943f08b029187ee4d21a6c23a270c609417791e3fcad7853a029e58394b23c",
|
| 15 |
"quantized.py": "e8c0a9df02540fe05211949bdc88499e8a10b27c0137cf5254e9886bc6e15863",
|
| 16 |
+
"README.md": "e730578947c096514c925888d28910f7daa4b2de58b23ac182434dd72feb5076",
|
| 17 |
"report/category-recall.csv": "5f88b879df321a7f3e0c2aa869169689f93874e92c8316656426425bc418d63f",
|
| 18 |
"report/category-recall.png": "0fd8787424eae860104074faac66dedb4e148e0958636e4744bea6b3c4941e50",
|
| 19 |
"report/diagnostics.csv": "c391c71b48ddac700dd20ee341f7dd2267496346af061d141230ab2e2f009478",
|
| 20 |
"requirements.lock.txt": "3f9351705bf608e3abf6a0065b5f7b147a8a0b8123131029a238e484d4e4771a",
|
| 21 |
"requirements.txt": "2748c956c547e31333f537827bd8f6aa71df66ef073c566c6a9df2ef79a25538",
|
| 22 |
+
"TECHNICAL_REPORT.md": "0a9ee53b3fc281c632201ac548ddac1671172b3934661b77512e7a4414159d65",
|
| 23 |
"tokenizer.json": "cc8d3a0ce36466ccc1278bf987df5f71db1719b9ca6b4118264f45cb627bfe0f",
|
| 24 |
"tokenizer_config.json": "a1bab8c81ed15fa6ce912ec993c66cb49392e0487fb1ea5f5f11ea3618683627"
|
| 25 |
}
|