Instructions to use edward1503/VISTA-4B-A with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use edward1503/VISTA-4B-A with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("unsloth/Qwen3.5-4B") model = PeftModel.from_pretrained(base_model, "edward1503/VISTA-4B-A") - Notebooks
- Google Colab
- Kaggle
VISTA-4B-A
VISTA A is a language-only LoRA for the post-trained Qwen3.5-4B vision-language model. It scores the supplied candidate letters in one forward pass and returns a choice and normalized probabilities. This repository contains the canonical unmerged adapter, its processor files and the exact decision inference implementation used for the submitted evaluation.
The full public Decision Index Vision 0.3 run covers 12,210/12,210 requests across 11 benchmarks and scores 65.493670. This is a local public-suite result. Private results, official RTX PRO 6000 latency and leaderboard admission are pending maintainer evaluation; no official rank or SOTA claim is made.
Backbone and training
The loader pins unsloth/Qwen3.5-4B at 3764fa359b9082ea5a1e4a5e3ac3aaf6e9671636. Both local backbone weight shards were verified SHA-256-identical to official Qwen/Qwen3.5-4B revision 851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a; processor/config files are not claimed identical between repositories. This is Qwen's post-trained model, not the raw Qwen3.5-4B-Base checkpoint. The upstream files contain approximately 4.660B parameters including MTP tensors not instantiated by this inference path. The loaded inference backbone has 4,539,265,536 parameters; with the 32,464,896-parameter unmerged LoRA, the submitted model has 4,571,730,432 parameters (approximately 4.572B). The family is named 4B. parameter-count-audit.json records the tensor-key comparison; the only upstream tensors absent from the inference export are the 15 mtp.* tensors.
A trains 32,464,896 language LoRA parameters, rank 16, alpha 32, with hard-label candidate cross entropy. The native LM head, vision encoder and visual merger remain frozen. There is no custom decision head, RL phase or external decision-model checkpoint in A.
| Source (original train split) | Train | Dev |
|---|---|---|
| A-OKVQA | 8,000 | 400 |
| ChartQA | 6,000 | 300 |
| TextVQA | 6,000 | 300 |
The run uses one epoch, 2,500 optimizer updates, microbatch 1, accumulation 8, learning rate 5e-5, seed 3407, and a fixed final checkpoint. Training images are capped at 262,144 pixels. The 1,000-row dev set is image-group-disjoint but drawn from the same three sources; ChartQA/TextVQA choices include constructed distractors. Final dev accuracy is 90.9%, dev NLL 0.266434, and training CE averaged over updates 2401–2500 is 0.321315. These are not open-ended VQA scores. Full source revisions and settings are in training_summary.json.
Reproduce decision inference
Use Linux/CUDA and the pinned runtime in requirements.txt (the validated run used Python 3.12, PyTorch 2.9.1+cu128, Transformers 5.17.0, Unsloth 2026.10.8 and PEFT 0.21.2). runtime-requirements.lock.txt records the full original environment for reproducibility. The validated environment uses the reference PyTorch causal-convolution fallback; an optimized kernel/backend needs independent numerical validation. The code supports CUDA devices rather than hard-coding the author's RTX 5060 Ti. Other GPU families still require independent numerical/latency validation.
hf download edward1503/VISTA-4B-A --local-dir vista-a
python -m pip install -r vista-a/requirements.txt
export PYTHONPATH="$PWD/vista-a:$PYTHONPATH"
decision-index suite rebuild --vision --work work
decision-index vision verify --dir work/vision
decision-index vision pipeline --dir work/vision \
--engine vista_engine:VistaEngine \
--option model_path="$PWD/vista-a" --option weights=adapter \
--workers 1 --chunk 8 --out runs/vista-a
Winoground requires accepting its upstream terms and authenticating with an authorized Hugging Face account. Follow the official kit's font instructions for byte-identical Mind2Web image rendering. Pin this model repository to its published commit when reproducing a submission.
For direct use, import VistaEngine from vista_engine, construct it with model_path, and call it with state={}, a typed choice question, images, and optional prompt. The returned tuple contains the typed response and input audit. The engine uses all supplied images (1–4), all candidate options, a maximum sequence length of 32,768, and rejects overflow rather than truncating.
Images are capped at 1,638,400 pixels each for evaluation. Prompt rendering is fixed across benchmarks. For image-only questions, a block listing the legal candidate letters is appended uniformly; no option text is reconstructed. The official assistant continuation is honored where supplied. Final candidate-letter scores use the last hidden state and the native LM-head rows in FP32, followed by softmax. Arbitrary text generation or a different serving engine is not a substitute for this readout.
Export and merge verification
All 496 exported adapter tensors are exactly equal to the trained delta. The packaged adapter was reloaded in a fresh process and matched all 277 diagnostic choices, with maximum probability difference 0, against the original A run. Input text hashes, image grids, image tokens and candidate positions also matched.
A BF16 merge_and_unload(safe_merge=True) export was checked separately. It changed 29/277 choices, fixing 5 and breaking 12 on this deliberately low-margin-enriched diagnostic set; maximum probability difference was 0.0428198576. This subset is not a representative benchmark score or a full-suite parity proof. The submitted weights and scores use the unmerged adapter. Do not attach these results to the merged checkpoint or another inference backend.
Public evaluation
Official kit commit: 25c6ec7b6b5f44a216c63c3a700de3a9c6d6699d. All source/image/request hashes verify against its pinned suite. The existing 11,410 predictions were retained exactly and 800 Winoground predictions were added after access was granted. The portable constructor preserves the original input compiler and readout. Public result records omit benchmark payloads and raw outputs using the official compact field layout; predictions, probabilities, statuses, payload/image hashes and recorded timings are unchanged.
| Benchmark | Rows | Accuracy (%) | Skill (0–100) |
|---|---|---|---|
| CV-Bench | 2038 | 85.7213 | 76.4446 |
| BLINK | 961 | 69.5109 | 52.7990 |
| RealWorldQA | 589 | 77.4194 | 63.0983 |
| CharXiv | 532 | 77.6316 | 70.1754 |
| InfographicVQA | 244 | 94.2623 | 92.3497 |
| Mind2Web | 973 | 78.7256 | 71.6341 |
| Winoground | 800 | 88.5000 | 77.0000 |
| KIE (CORD+FUNSD) | 2465 | 93.3469 | 89.0466 |
| Moderation (Hateful Memes) | 1213 | 65.0453 | 30.0907 |
| R-Bench-M | 665 | 30.2256 | 16.2581 |
| MMMU-Pro vision | 1730 | 40.0000 | 31.1833 |
Public results and validation contain vision-scores.json, compact predictions and provenance. The official Full Vision score also needs the maintainers' private half. Latency reported here is measured on an RTX 5060 Ti 16GB and is not the official eligibility measurement.
Data overlap checks and limitations
Training/dev examples were screened against the ten accessible public benchmarks using normalized exact questions, normalized RGB pixel hashes and pHash Hamming distance at most 4. Train/dev image groups are disjoint. Winoground was inaccessible during training; after access was granted, the frozen 21,000 selected rows were checked against its 800 images: 0 image-overlap candidates and 0 exact normalized-question matches. The checkpoint and data were not altered after this check.
These checks do not rule out crops, semantic duplicates, source annotation errors or contamination inherited from Qwen pretraining/post-training. Public benchmarks were examined during development and informed the research direction, so this is not a blind held-out assessment. One seed has been run. The source datasets and benchmark images/questions are not redistributed here. See LICENSE and NOTICE for upstream attribution.
- Downloads last month
- 21