LoRA adapter for
Qwen/Qwen3-VL-4B-Instruct, fine-tuned as the
reader in a retrieval-augmented Wikipedia-screenshot QA pipeline.
Train loss in epoch 2 was 0.04-0.06 (vs epoch 1's 0.10-0.20) — the model continued to fit the training distribution well, but the gains stopped transferring to held-out test around step 16000. Pull a mid-epoch-2 checkpoint at peak eval em.
Total per-epoch samples: 312k (1.5× v3's 208k). Train wallclock scales accordingly.
Gold-retrieval rate at top-6 across splits: ~75%. When gold is missing from retrieval, gold is still always included by construction in both splits.
1from transformers import AutoProcessor, Qwen3VLForConditionalGeneration
2from peft import PeftModel
3import torch
4
5base = "Qwen/Qwen3-VL-4B-Instruct"
6adapter = "Chrisyichuan/qwen3vl-4b-wiki-screenshot-multik-3x-v5-lora" # or "Chrisyichuan/qwen3vl-4b-wiki-screenshot-multik-3x-lora" for the same weights via main repo
7
8model = Qwen3VLForConditionalGeneration.from_pretrained(base, torch_dtype=torch.bfloat16).cuda()
9model = PeftModel.from_pretrained(model, adapter).merge_and_unload()
10processor = AutoProcessor.from_pretrained(base)
11
12# k can be any integer in 1..6. Images must already be 3x-compressed (each dim × 1/sqrt(3)).
13messages = [{"role": "user", "content": [
14 {"type": "image", "image": img_1},
15 # ... up to img_6 ...
16 {"type": "text", "text": your_question},
17]}]
18# ... standard Qwen3-VL inference