Instructions to use yuta24/ui-test-vision-2b-alpha with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use yuta24/ui-test-vision-2b-alpha with PEFT:
Task type is invalid.
- MLX
How to use yuta24/ui-test-vision-2b-alpha with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("yuta24/ui-test-vision-2b-alpha") config = load_config("yuta24/ui-test-vision-2b-alpha") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Atomic Chat
|
Download code/RESULTS.md from yuta24/ui-test-vision-2b-alpha: direct link, hf CLI and curl.
- Browser
- Download file 4.84 kB
-
https://huggingface.co/yuta24/ui-test-vision-2b-alpha/resolve/main/code/RESULTS.md
- Command line
-
hf download hf://yuta24/ui-test-vision-2b-alpha/code/RESULTS.md
-
curl -L -o RESULTS.md https://huggingface.co/yuta24/ui-test-vision-2b-alpha/resolve/main/code/RESULTS.md
4.84 kB
| # RESULTS (Windows + ROCm PC, measured 2026-10-22 JST) | |
| Hardware/software: Ryzen AI 9 HX 370 / Radeon 890M (gfx1150), Windows 11, torch 2.14.0+rocm10.1.0, | |
| transformers 5.20.2, peft 0.21.2. Model Qwen/Qwen3.5-2B, bf16, batch 1, LoRA r=32 (LM only) + head (22.1M). | |
| Trainable params 53.3M. flash-linear-attention / causal_conv1d NOT installed (reference PyTorch path). | |
| Synthetic data only (DUMMY teacher) -> accuracy numbers are not meaningful. | |
| ## Training run (`runs/train-syn-2b-390.log`) | |
| 200 optimizer steps, max_pixels=430080 (390 image tokens, ~860 total tokens), AOTriton OFF. | |
| | step | loss | kd | ce | | |
| | ---: | ---: | ---: | ---: | | |
| | 10 | 0.997 | 0.816 | 1.207 | | |
| | 50 | 0.353 | 0.325 | 0.379 | | |
| | 100 | 0.310 | 0.290 | 0.329 | | |
| | 150 | 0.311 | 0.302 | 0.310 | | |
| | 200 | 0.224 | 0.187 | 0.292 | | |
| 4.5-4.6 s/step, peak allocated 10.49 GB. Checkpoint: adapter 125 MB + head 44 MB. | |
| Eval on 20 synthetic records (60 questions, `runs/eval-syn-2b-390.json`): accuracy 1.0, NLL 0.202, | |
| Brier 0.052, ECE(15) 0.182 (under-confident: it imitates the dummy teacher's soft targets), teacher agreement 0.917. | |
| ## bench.py (`runs/bench-default.json`, `runs/bench-aotriton.json`) | |
| iPhone portrait 1179x2556 synthetic screenshots, 3 questions / 15 options. Train = fwd+bwd+AdamW step, median of 8. | |
| Inference = preprocess + forward, LoRA NOT merged, median of 8. | |
| | setting | image tokens | seq tokens | train s/step | train peak GB | infer ms | infer peak GB | | |
| | --- | ---: | ---: | ---: | ---: | ---: | ---: | | |
| | default, 430080 px | 390 | 861 | 4.64 | 10.48 | 2359 | 5.07 | | |
| | default, 1048576 px | 987 | 1458 | 16.37 | 14.65 | 8731 | 6.95 | | |
| | AOTriton=1, 430080 px | 390 | 861 | 4.02 | 10.28 | 1653 | 4.79 | | |
| | AOTriton=1, 1048576 px | 987 | 1458 | 8.45 | 14.16 | 3199 | 4.90 | | |
| infer.py with LoRA merged (AOTriton OFF, 390 tokens): forward 1856-1866 ms, total ~1885 ms. | |
| => `TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1` is now set by default (os.environ.setdefault) in | |
| train.py / infer.py / bench.py / scripts/evaluate.py. Set it to 0 to disable. | |
| ## Local Clef-Flash teacher (measured 2026-10-23 JST) | |
| Teacher: `Cloudflare/clef-flash` (Apache-2.0; Qwen3.5-9B backbone + JointSchemaHead width 1024 / 4 layers), | |
| revision `f0b7d3cd65296abfe459e6c228b618f5d8b26d2f`, 19.08 GB safetensors (4 shards + 0.24 GB head), downloaded in 246 s. | |
| Loaded in bf16 entirely on the 890M (`load_release_model`, ~23 s, 17.75 GB allocated). No offload needed. | |
| `scripts/label_local_clef.py`, AOTriton=1, batch 1, 3 questions / 15 options, reference (slow) Gated-DeltaNet path. | |
| | max_pixels | image tokens | seq tokens | first item s | median s/image | peak alloc GB | peak reserved GB | | |
| | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | |
| | 430080 (= student) | 390 | ~860 | 27-29 (warm-up) | 3.10 | 18.02 | 18.14 | | |
| | 1048576 | 987 | ~1455 | 68 (warm-up) | 5.53 | 18.20 | 18.51 | | |
| Release default is `longest_edge=16777216` (native res, ~2.9k tokens for 1179x2556); not benchmarked. | |
| Logs/stats: `runs/clef-label-{train,eval}-390.{log,json}`, `runs/clef-label-eval-987.{log,json}`. | |
| Teacher vs synthetic gold (`scripts/teacher_report.py`, `runs/teacher-report-clef-390.json`): | |
| | setting | records | questions | accuracy | record exact | NLL | mean conf | ECE(15) | | |
| | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | |
| | 390 tok, train+eval | 80 | 240 | 1.000 | 1.000 | 0.035 | 0.966 | 0.034 | | |
| | 987 tok, eval | 20 | 60 | 1.000 | 1.000 | 0.036 | 0.965 | 0.035 | | |
| Example (syn-train-0000, gold error_dialog / true / retry): screen error_dialog 0.976, has_error true 0.967, | |
| primary_button retry 0.846 (none 0.060, ok 0.036, delete 0.029, login 0.029). `primary_button` is the least confident field. | |
| ## Student distilled from Clef-Flash labels (`runs/train-clef-2b-390.log`) | |
| Qwen3.5-2B + LoRA r=32 + head, `train.py --data data/synthetic/train.clef.jsonl --steps 200 --max-pixels 430080` | |
| (alpha 0.7, T 2.0, beta 0.1, AOTriton=1). 727 s total, ~3.5 s/step, peak 10.29 GB. Checkpoint `checkpoints/clef-2b-390`. | |
| Loss 2.05 (step 10) -> 0.42 (50) -> 0.27 (100) -> 0.082 (200); KD 0.031 at step 200. | |
| Eval on `data/synthetic/eval.clef.jsonl` (20 records / 60 questions, `scripts/evaluate.py`; teacher agreement = argmax vs Clef-Flash): | |
| | student | accuracy | NLL | Brier | ECE(15) | teacher agreement | | |
| | --- | ---: | ---: | ---: | ---: | ---: | | |
| | clef-2b-390 (Clef labels) | 1.000 | 0.032 | 0.0025 | 0.031 | 1.000 | | |
| | syn-2b-390 (dummy labels) | 1.000 | 0.202 | 0.052 | 0.182 | 1.000 | | |
| | Clef-Flash teacher itself | 1.000 | 0.036 | - | 0.034 | - | | |
| => The real teacher's sharper, well-calibrated targets fix the under-confidence of the dummy-label student | |
| (ECE 0.18 -> 0.03). Student inference is ~1.65 s/image vs teacher 3.10 s/image at 390 tokens (~1.9x faster, 18 GB -> ~5 GB). | |
| Caveat: 60 train / 20 eval synthetic images, easy task -> saturated accuracy; needs real iOS screenshots. | |