etzion commited on
Commit
601aa62
·
verified ·
1 Parent(s): a6c01a9

org card: per-experiment hyperparameters and VQA/caption results

Browse files
Files changed (2) hide show
  1. README.md +44 -27
  2. index.html +46 -25
README.md CHANGED
@@ -9,7 +9,7 @@ pinned: false
9
 
10
  # Aspaklarya — Qwen3-VL-8B for remote-sensing VQA + captioning
11
 
12
- LoRA finetunes of **Qwen3-VL-8B-Instruct**, trained jointly on **visual question answering** and **image captioning** over overhead imagery. 13 experiments. All model repos are private.
13
 
14
  ## Setup
15
 
@@ -50,37 +50,54 @@ Constant everywhere: effective batch 32 (except 014/015), warmup 0.03, grad clip
50
 
51
  ## Results
52
 
53
- Best checkpoint per run, scored on 1000 images (2000 graded items). **Overall** = mean of caption and VQA. Right block = in-domain subset, closest to the target distribution.
54
-
55
- | Model | Caption | VQA | Overall | In-dom. caption | In-dom. VQA | In-dom. overall |
56
- |---|---|---|---|---|---|---|
57
- | Qwen3-VL-8B (base) | 65.68 | 56.01 | **60.84** | 68.37 | 58.94 | **63.66** |
58
- | in-house reference | 65.18 | 73.34 | **69.26** | 71.88 | 83.62 | **77.75** |
59
- | **Aspaklarya-001** | 79.97 | 75.94 | **77.95** | 81.84 | 83.23 | **82.54** |
60
- | Aspaklarya-011 | 79.92 | 75.78 | **77.85** | 81.85 | 83.51 | **82.68** |
61
- | Aspaklarya-006 | 79.81 | 75.79 | **77.80** | 81.40 | 82.95 | **82.18** |
62
- | Aspaklarya-005 | 79.55 | 75.74 | **77.64** | 81.37 | 82.37 | **81.87** |
63
- | Aspaklarya-008 | 79.82 | 75.40 | **77.61** | 80.62 | 81.42 | **81.02** |
64
- | Aspaklarya-003 | 79.55 | 75.52 | **77.53** | 81.23 | 82.18 | **81.71** |
65
- | Aspaklarya-015 | 80.07 | 74.73 | **77.40** | 82.14 | 82.76 | **82.45** |
66
- | Aspaklarya-012 | 79.73 | 75.02 | **77.37** | 81.68 | 82.05 | **81.86** |
67
- | Aspaklarya-014 | 79.95 | 74.77 | **77.36** | 81.51 | 81.93 | **81.72** |
68
- | Aspaklarya-007 | 79.33 | 75.33 | **77.33** | 81.13 | 80.82 | **80.97** |
69
- | Aspaklarya-013 | 79.11 | 75.35 | **77.23** | 80.58 | 82.20 | **81.39** |
70
- | Aspaklarya-009 | 78.53 | 75.85 | **77.19** | 80.01 | 82.34 | **81.18** |
71
- | Aspaklarya-004 | 78.76 | 75.33 | **77.04** | 80.31 | 81.47 | **80.89** |
72
- | Aspaklarya-002 | 79.36 | 74.33 | **76.85** | 80.70 | 80.63 | **80.67** |
73
- | Aspaklarya-010 | 78.88 | 74.28 | **76.58** | 80.50 | 80.66 | **80.58** |
74
-
75
- Every finetune beats both references: **+17.1 overall** over the base model, **+8.7** over the in-house reference. Captioning gains most (66 to 80); VQA gains 20 points over base.
 
 
 
 
 
 
 
 
 
 
 
 
 
76
 
77
  ## Caveat
78
 
79
- Paired bootstrap over images puts the between-run standard error at **~0.45 overall**, so the top eight runs are statistically tied — every confidence interval against the leader straddles zero. Doubling the eval set from 500 to 1000 images did not separate them, and it reshuffled the order: one run climbed six places purely on noise. Only the gaps to the two reference models are real.
80
 
81
  ## Findings
82
 
83
- - **Optimization is saturated.** LR, rank, alpha, dropout, weight decay, clipping, batch geometry, batch size and schedule were all swept; none beat the noise floor.
 
 
 
84
  - **The vision tower matters.** Freezing it is the one ablation that consistently hurt.
85
  - **Extra QA per image does not help.** 4-QA and 6-QA mixtures tie with 2-QA.
86
- - **Data is the remaining lever**, not hyperparameters.
 
 
9
 
10
  # Aspaklarya — Qwen3-VL-8B for remote-sensing VQA + captioning
11
 
12
+ LoRA finetunes of **Qwen3-VL-8B-Instruct**, trained jointly on **visual question answering** and **image captioning** over overhead imagery. 15 experiments, 16 evaluated checkpoints. All model repos are private.
13
 
14
  ## Setup
15
 
 
50
 
51
  ## Results
52
 
53
+ Best checkpoint per run on a fixed 1000-image draw (2000 graded items). **Overall** = mean of caption and VQA. **In-dom.** = the target overhead-imagery subset (491 images); **General** = a public remote-sensing benchmark subset (509 images). Sorted by in-domain overall.
54
+
55
+ | Model | In-dom. cap | In-dom. vqa | **In-dom.** | All cap | All vqa | **All** | Gen. cap | Gen. vqa | **General** |
56
+ |---|---|---|---|---|---|---|---|---|---|
57
+ | Aspaklarya-011 | 81.85 | 83.51 | **82.68** | 79.92 | 75.78 | **77.85** | 78.06 | 68.33 | **73.20** |
58
+ | **Aspaklarya-001** | 81.84 | 83.23 | **82.54** | 79.97 | 75.94 | **77.95** | 78.17 | 68.89 | **73.53** |
59
+ | Aspaklarya-015 | 82.14 | 82.76 | **82.45** | 80.07 | 74.73 | **77.40** | 78.07 | 66.98 | **72.52** |
60
+ | Aspaklarya-006 | 81.40 | 82.95 | **82.18** | 79.81 | 75.79 | **77.80** | 78.26 | 68.88 | **73.57** |
61
+ | Aspaklarya-005 | 81.37 | 82.37 | **81.87** | 79.55 | 75.74 | **77.64** | 77.79 | 69.35 | **73.57** |
62
+ | Aspaklarya-012 | 81.68 | 82.05 | **81.86** | 79.73 | 75.02 | **77.37** | 77.85 | 68.23 | **73.04** |
63
+ | Aspaklarya-014 | 81.51 | 81.93 | **81.72** | 79.95 | 74.77 | **77.36** | 78.45 | 67.87 | **73.16** |
64
+ | Aspaklarya-003 | 81.23 | 82.18 | **81.71** | 79.55 | 75.52 | **77.53** | 77.92 | 69.10 | **73.51** |
65
+ | Aspaklarya-001 (ep5) | 80.60 | 82.25 | **81.42** | 79.30 | 76.17 | **77.73** | 78.05 | 70.31 | **74.18** |
66
+ | Aspaklarya-013 | 80.58 | 82.20 | **81.39** | 79.11 | 75.35 | **77.23** | 77.70 | 68.74 | **73.22** |
67
+ | Aspaklarya-009 | 80.01 | 82.34 | **81.18** | 78.53 | 75.85 | **77.19** | 77.09 | 69.59 | **73.34** |
68
+ | Aspaklarya-008 | 80.62 | 81.42 | **81.02** | 79.82 | 75.40 | **77.61** | 79.05 | 69.60 | **74.33** |
69
+ | Aspaklarya-007 | 81.13 | 80.82 | **80.97** | 79.33 | 75.33 | **77.33** | 77.60 | 70.03 | **73.81** |
70
+ | Aspaklarya-004 | 80.31 | 81.47 | **80.89** | 78.76 | 75.33 | **77.04** | 77.26 | 69.40 | **73.33** |
71
+ | Aspaklarya-002 | 80.70 | 80.63 | **80.67** | 79.36 | 74.33 | **76.85** | 78.07 | 68.25 | **73.16** |
72
+ | Aspaklarya-010 | 80.50 | 80.66 | **80.58** | 78.88 | 74.28 | **76.58** | 77.32 | 68.12 | **72.72** |
73
+ | in-house reference | 71.88 | 83.62 | *77.75* | 65.18 | 73.34 | *69.26* | 58.72 | 63.44 | *61.08* |
74
+ | Qwen3-VL-8B (base) | 68.37 | 58.94 | *63.66* | 65.68 | 56.01 | *60.84* | 63.07 | 53.18 | *58.13* |
75
+
76
+ Every finetune beats both references overall: **+17.1** over the base model and **+8.7** over the in-house reference on the full set.
77
+
78
+ ## Error bars
79
+
80
+ Bootstrap over images, 3000 resamples. Absolute standard error:
81
+
82
+ | Slice | Caption | VQA | Overall |
83
+ |---|---|---|---|
84
+ | All (1000 img) | 0.48 | 1.12 | 0.63 |
85
+ | In-domain (491) | 0.66 | 1.46 | 0.82 |
86
+ | General (509) | 0.69 | 1.64 | 0.91 |
87
+
88
+ Paired model-vs-model error is smaller because image difficulty cancels: **0.42** overall on the full set, **0.56** in-domain. Use the paired figure for any "A beats B" claim.
89
 
90
  ## Caveat
91
 
92
+ The top eight runs are statistically tied: every confidence interval against the leader straddles zero. **VQA error is ~2.3x caption error**, so no finetune-vs-finetune VQA difference in any column is resolvable; only caption gaps and the gaps to the two references are real. Doubling the eval set from 500 to 1000 images did not separate the field, and it reshuffled the order.
93
 
94
  ## Findings
95
 
96
+ - **Optimization is saturated.** LR, rank, alpha, dropout, weight decay, gradient clipping, batch geometry, effective batch size (16 / 32 / 64) and schedule were all swept. None beat the noise floor.
97
+ - **The slices disagree.** Ranking by in-domain score almost inverts the general-benchmark ranking: the top three in-domain models place 11th, 2nd and 16th on the general set. The selected model wins by never being bad anywhere, not by leading any single slice.
98
+ - **Captioning is the real gain.** It improves on every slice, by +14 over the base model and +10 to +19 over the in-house reference.
99
+ - **The in-domain VQA win is not established.** The in-house reference posts the single highest in-domain VQA score in the table; it collapses outside that domain, where it falls below the untuned base model.
100
  - **The vision tower matters.** Freezing it is the one ablation that consistently hurt.
101
  - **Extra QA per image does not help.** 4-QA and 6-QA mixtures tie with 2-QA.
102
+ - **Larger batch trades generality for domain fit.** Effective batch 64 gives the best in-domain captioning in the table and the worst general-set VQA.
103
+ - **Data is the remaining lever**, not hyperparameters.
index.html CHANGED
@@ -38,7 +38,7 @@ a { color: #0969da; }
38
  <body>
39
  <main>
40
  <h1>Aspaklarya — Qwen3-VL-8B for remote-sensing VQA + captioning</h1>
41
- <p>LoRA finetunes of <strong>Qwen3-VL-8B-Instruct</strong>, trained jointly on <strong>visual question answering</strong> and <strong>image captioning</strong> over overhead imagery. 13 experiments. All model repos are private.</p>
42
  <h2>Setup</h2>
43
  <table style="border-collapse:collapse;margin:1rem 0;font-size:.85rem;border:1px solid #d0d7de"><thead><tr>
44
  <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">Item</th>
@@ -84,42 +84,63 @@ a { color: #0969da; }
84
  </tbody></table>
85
  <p>Constant everywhere: effective batch 32 (except 014/015), warmup 0.03, grad clip 0.3 (1.0 for 011/012), seed 3407.</p>
86
  <h2>Results</h2>
87
- <p>Best checkpoint per run, scored on 1000 images (2000 graded items). <strong>Overall</strong> = mean of caption and VQA. Right block = in-domain subset, closest to the target distribution.</p>
88
  <table style="border-collapse:collapse;margin:1rem 0;font-size:.85rem;border:1px solid #d0d7de"><thead><tr>
89
  <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">Model</th>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">Caption</th>
91
  <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">VQA</th>
92
  <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">Overall</th>
93
- <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">In-dom. caption</th>
94
- <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">In-dom. VQA</th>
95
- <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">In-dom. overall</th>
96
  </tr></thead><tbody>
97
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Qwen3-VL-8B (base)</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">65.68</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">56.01</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>60.84</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">68.37</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">58.94</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>63.66</strong></td></tr>
98
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">in-house reference</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">65.18</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">73.34</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>69.26</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">71.88</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">83.62</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.75</strong></td></tr>
99
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>Aspaklarya-001</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.97</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.94</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.95</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.84</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">83.23</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>82.54</strong></td></tr>
100
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-011</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.92</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.78</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.85</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.85</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">83.51</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>82.68</strong></td></tr>
101
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-006</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.81</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.79</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.80</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.40</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.95</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>82.18</strong></td></tr>
102
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-005</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.55</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.74</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.64</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.37</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.37</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>81.87</strong></td></tr>
103
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-008</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.82</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.40</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.61</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.62</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.42</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>81.02</strong></td></tr>
104
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-003</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.55</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.52</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.53</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.23</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.18</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>81.71</strong></td></tr>
105
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-015</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.07</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">74.73</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.40</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.14</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.76</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>82.45</strong></td></tr>
106
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-012</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.73</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.02</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.37</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.68</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.05</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>81.86</strong></td></tr>
107
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-014</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.95</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">74.77</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.36</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.51</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.93</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>81.72</strong></td></tr>
108
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-007</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.33</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.33</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.33</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.13</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.82</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>80.97</strong></td></tr>
109
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-013</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.11</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.35</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.23</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.58</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.20</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>81.39</strong></td></tr>
110
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-009</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">78.53</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.85</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.19</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.01</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.34</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>81.18</strong></td></tr>
111
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-004</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">78.76</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.33</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.04</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.31</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.47</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>80.89</strong></td></tr>
112
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-002</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.36</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">74.33</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>76.85</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.70</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.63</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>80.67</strong></td></tr>
113
- <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-010</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">78.88</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">74.28</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>76.58</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.50</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.66</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>80.58</strong></td></tr>
114
  </tbody></table>
115
- <p>Every finetune beats both references: <strong>+17.1 overall</strong> over the base model, <strong>+8.7</strong> over the in-house reference. Captioning gains most (66 to 80); VQA gains 20 points over base.</p>
116
  <h2>Caveat</h2>
117
- <p>Paired bootstrap over images puts the between-run standard error at <strong>~0.45 overall</strong>, so the top eight runs are statistically tied — every confidence interval against the leader straddles zero. Doubling the eval set from 500 to 1000 images did not separate them, and it reshuffled the order: one run climbed six places purely on noise. Only the gaps to the two reference models are real.</p>
118
  <h2>Findings</h2>
119
  <ul>
120
- <li><strong>Optimization is saturated.</strong> LR, rank, alpha, dropout, weight decay, clipping, batch geometry, batch size and schedule were all swept; none beat the noise floor.</li>
 
 
 
121
  <li><strong>The vision tower matters.</strong> Freezing it is the one ablation that consistently hurt.</li>
122
  <li><strong>Extra QA per image does not help.</strong> 4-QA and 6-QA mixtures tie with 2-QA.</li>
 
123
  <li><strong>Data is the remaining lever</strong>, not hyperparameters.</li>
124
  </ul>
125
  </main>
 
38
  <body>
39
  <main>
40
  <h1>Aspaklarya — Qwen3-VL-8B for remote-sensing VQA + captioning</h1>
41
+ <p>LoRA finetunes of <strong>Qwen3-VL-8B-Instruct</strong>, trained jointly on <strong>visual question answering</strong> and <strong>image captioning</strong> over overhead imagery. 15 experiments, 16 evaluated checkpoints. All model repos are private.</p>
42
  <h2>Setup</h2>
43
  <table style="border-collapse:collapse;margin:1rem 0;font-size:.85rem;border:1px solid #d0d7de"><thead><tr>
44
  <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">Item</th>
 
84
  </tbody></table>
85
  <p>Constant everywhere: effective batch 32 (except 014/015), warmup 0.03, grad clip 0.3 (1.0 for 011/012), seed 3407.</p>
86
  <h2>Results</h2>
87
+ <p>Best checkpoint per run on a fixed 1000-image draw (2000 graded items). <strong>Overall</strong> = mean of caption and VQA. <strong>In-dom.</strong> = the target overhead-imagery subset (491 images); <strong>General</strong> = a public remote-sensing benchmark subset (509 images). Sorted by in-domain overall.</p>
88
  <table style="border-collapse:collapse;margin:1rem 0;font-size:.85rem;border:1px solid #d0d7de"><thead><tr>
89
  <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">Model</th>
90
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">In-dom. cap</th>
91
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">In-dom. vqa</th>
92
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap"><strong>In-dom.</strong></th>
93
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">All cap</th>
94
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">All vqa</th>
95
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap"><strong>All</strong></th>
96
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">Gen. cap</th>
97
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">Gen. vqa</th>
98
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap"><strong>General</strong></th>
99
+ </tr></thead><tbody>
100
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-011</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.85</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">83.51</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>82.68</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.92</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.78</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.85</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">78.06</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">68.33</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>73.20</strong></td></tr>
101
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>Aspaklarya-001</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.84</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">83.23</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>82.54</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.97</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.94</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.95</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">78.17</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">68.89</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>73.53</strong></td></tr>
102
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-015</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.14</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.76</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>82.45</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.07</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">74.73</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.40</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">78.07</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">66.98</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>72.52</strong></td></tr>
103
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-006</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.40</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.95</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>82.18</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.81</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.79</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.80</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">78.26</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">68.88</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>73.57</strong></td></tr>
104
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-005</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.37</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.37</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>81.87</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.55</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.74</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.64</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">77.79</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">69.35</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>73.57</strong></td></tr>
105
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-012</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.68</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.05</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>81.86</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.73</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.02</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.37</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">77.85</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">68.23</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>73.04</strong></td></tr>
106
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-014</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.51</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.93</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>81.72</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.95</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">74.77</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.36</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">78.45</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">67.87</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>73.16</strong></td></tr>
107
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-003</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.23</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.18</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>81.71</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.55</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.52</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.53</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">77.92</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">69.10</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>73.51</strong></td></tr>
108
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-001 (ep5)</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.60</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.25</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>81.42</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.30</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">76.17</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.73</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">78.05</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">70.31</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>74.18</strong></td></tr>
109
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-013</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.58</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.20</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>81.39</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.11</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.35</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.23</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">77.70</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">68.74</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>73.22</strong></td></tr>
110
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-009</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.01</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">82.34</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>81.18</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">78.53</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.85</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.19</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">77.09</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">69.59</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>73.34</strong></td></tr>
111
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-008</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.62</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.42</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>81.02</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.82</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.40</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.61</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.05</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">69.60</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>74.33</strong></td></tr>
112
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-007</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.13</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.82</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>80.97</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.33</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.33</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.33</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">77.60</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">70.03</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>73.81</strong></td></tr>
113
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-004</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.31</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">81.47</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>80.89</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">78.76</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">75.33</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>77.04</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">77.26</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">69.40</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>73.33</strong></td></tr>
114
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-002</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.70</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.63</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>80.67</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">79.36</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">74.33</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>76.85</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">78.07</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">68.25</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>73.16</strong></td></tr>
115
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Aspaklarya-010</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.50</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">80.66</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>80.58</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">78.88</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">74.28</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>76.58</strong></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">77.32</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">68.12</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><strong>72.72</strong></td></tr>
116
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">in-house reference</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">71.88</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">83.62</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><em>77.75</em></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">65.18</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">73.34</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><em>69.26</em></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">58.72</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">63.44</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><em>61.08</em></td></tr>
117
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">Qwen3-VL-8B (base)</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">68.37</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">58.94</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><em>63.66</em></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">65.68</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">56.01</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><em>60.84</em></td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">63.07</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">53.18</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap"><em>58.13</em></td></tr>
118
+ </tbody></table>
119
+ <p>Every finetune beats both references overall: <strong>+17.1</strong> over the base model and <strong>+8.7</strong> over the in-house reference on the full set.</p>
120
+ <h2>Error bars</h2>
121
+ <p>Bootstrap over images, 3000 resamples. Absolute standard error:</p>
122
+ <table style="border-collapse:collapse;margin:1rem 0;font-size:.85rem;border:1px solid #d0d7de"><thead><tr>
123
+ <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">Slice</th>
124
  <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">Caption</th>
125
  <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">VQA</th>
126
  <th style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;background:#f6f8fa;font-weight:600;white-space:nowrap">Overall</th>
 
 
 
127
  </tr></thead><tbody>
128
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">All (1000 img)</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">0.48</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">1.12</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">0.63</td></tr>
129
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">In-domain (491)</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">0.66</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">1.46</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">0.82</td></tr>
130
+ <tr><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">General (509)</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">0.69</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">1.64</td><td style="border:1px solid #d0d7de;padding:5px 10px;text-align:left;white-space:nowrap">0.91</td></tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
  </tbody></table>
132
+ <p>Paired model-vs-model error is smaller because image difficulty cancels: <strong>0.42</strong> overall on the full set, <strong>0.56</strong> in-domain. Use the paired figure for any &quot;A beats B&quot; claim.</p>
133
  <h2>Caveat</h2>
134
+ <p>The top eight runs are statistically tied: every confidence interval against the leader straddles zero. <strong>VQA error is ~2.3x caption error</strong>, so no finetune-vs-finetune VQA difference in any column is resolvable; only caption gaps and the gaps to the two references are real. Doubling the eval set from 500 to 1000 images did not separate the field, and it reshuffled the order.</p>
135
  <h2>Findings</h2>
136
  <ul>
137
+ <li><strong>Optimization is saturated.</strong> LR, rank, alpha, dropout, weight decay, gradient clipping, batch geometry, effective batch size (16 / 32 / 64) and schedule were all swept. None beat the noise floor.</li>
138
+ <li><strong>The slices disagree.</strong> Ranking by in-domain score almost inverts the general-benchmark ranking: the top three in-domain models place 11th, 2nd and 16th on the general set. The selected model wins by never being bad anywhere, not by leading any single slice.</li>
139
+ <li><strong>Captioning is the real gain.</strong> It improves on every slice, by +14 over the base model and +10 to +19 over the in-house reference.</li>
140
+ <li><strong>The in-domain VQA win is not established.</strong> The in-house reference posts the single highest in-domain VQA score in the table; it collapses outside that domain, where it falls below the untuned base model.</li>
141
  <li><strong>The vision tower matters.</strong> Freezing it is the one ablation that consistently hurt.</li>
142
  <li><strong>Extra QA per image does not help.</strong> 4-QA and 6-QA mixtures tie with 2-QA.</li>
143
+ <li><strong>Larger batch trades generality for domain fit.</strong> Effective batch 64 gives the best in-domain captioning in the table and the worst general-set VQA.</li>
144
  <li><strong>Data is the remaining lever</strong>, not hyperparameters.</li>
145
  </ul>
146
  </main>