The study in depth

For raters who want the full picture and the reasoning, and who can tell us where it is weak. Every example here is invented; none comes from the 172 pictures, and nothing here reveals anyone's labels. Back to the short version.

1 Goal2 Why broaden3 Measures4 The model5 Two raters6 Exam & verdict7 Other approaches8 Where we may be wrong9 What next

1. The goal

A news feed app shows every story with a small thumbnail. Some pictures deserve a big, full-width frame. The app currently decides with size, shape and repeat-count rules. We tested those on a labelled sample: of 96 pictures they gave a large frame, 70 (73%) were ones the owner would not show large. So roughly 3 in 10 large frames were right.

The owner's target: of ten pictures shown large, six or seven should be right, a couple can be less ideal, and a logo or stock picture should be rare. The research question is whether a small pretrained image-and-text model, running on an ordinary PC and later on a phone, can reach that. Nothing the app's readers see depends on the answer yet.

2. Why we widened the definition

Our first rule was strict: large only if the picture conveys the headline's story. We changed it to: does this picture deserve prominent space for this story? A picture can earn that by showing the story or by being related and visually valuable.

Why

Invented examples

HeadlinePictureStrictWidened
Council approves transit budgetCrowd at the vote, speaker mid-sentenceLargeLarge
Energy bills expected to rise this winterWind turbines in a striking dawn lightSmallLarge (related, strong visual)
Central bank holds ratesOfficial's ordinary file portraitSmallSmall
Five tips to save moneySmiling stock photo with a laptopNoneNone
Podcast: this week's episodeShow title card with a logoNoneNone
The cost: the widened rule is more a matter of taste, so people will disagree more. That is why we measure two people's agreement before trusting any score (chapter 5).

3. The three numbers that decide it

Version 1 is a two-way call: FEATURE (Large) against not FEATURE (Small or None). Let "shown large" be what the model picks.

MeasureMeaningTarget
Precisionshown large and labelled Large ÷ shown large≥ 60%
None-among-largeshown large but labelled None ÷ shown large≤ 10%
Coverageshown large and labelled Large ÷ all labelled Large≥ 50%

Toy example: the model shows 30 pictures large; 20 are labelled Large, 2 None. Of 40 labelled Large in total, 20 are caught. Precision = 20/30 = 67%, None-among-large = 2/30 = 7%, coverage = 20/40 = 50%. Precision and coverage pull against each other: showing fewer pictures large raises precision and lowers coverage. Needing both is the point.

4. How a model would decide

We use TinyCLIP (MIT licence; about a 40M-parameter image part and a 19M text part). Like CLIP, it maps an image and a piece of text into the same vector space, so closeness can be measured by cosine similarity: cos(a, b) = a·b / (|a||b|).

Step A: zero-shot, no training

Compare the image with text such as the headline and a few fixed prompts ("a striking news photograph", "a company logo", "a generic stock photo"). Score = similarity to the positive prompts minus similarity to the negative ones. One threshold on that score gives Large or not.

Step B: frozen model plus a small classifier

Keep TinyCLIP unchanged. Take a handful of similarities as inputs x and fit logistic regression: P(Large) = 1 / (1 + e^−(w·x + b)). With only about 190 labels, w is penalised (λ|w|²) so it cannot memorise. The threshold is chosen with cross-validation: split the labels into k parts, train on k−1, test on the held-out part, rotate, and pool the results. Pixel width, height and repeat count may be tried as small extra inputs.

If this works, we try a smaller TinyCLIP (cheaper) and SigLIP 2 Base (as an accuracy ceiling, not for shipping).

What these models are

CLIP-style models have two networks: an image encoder (a vision transformer) and a text encoder. Each turns its input into a vector of numbers. They are trained on huge numbers of image–caption pairs with one goal: a picture and its true caption should end up close together, and mismatched pairs far apart. After that, "how well does this text describe this picture?" is just a similarity score. They do not write anything.

ModelWho / licenceWhat is differentOur role
TinyCLIPMicrosoft, MITA CLIP shrunk by distillation: a small model is trained to copy the similarity patterns of a big one. "ViT-40M/32 Text-19M" means about 40M parameters in the image part (32-pixel patches) and 19M in the text part.Main candidate; small enough for a phone
SigLIP 2Google, Apache 2.0Same idea, but trained with a simpler per-pair yes/no (sigmoid) loss instead of comparing against the whole batch, with extra training objectives. The Base size is larger and usually more accurate.Accuracy ceiling only
MobileCLIPApple, research-only licenceBuilt for speed on phones.Excluded by licence
GeminiGoogle, a cloud LLMA general multimodal assistant that reads an image and writes text.PC-only error analysis on 60 development pictures; never labels, never exam pictures

How they differ from an LLM

5. Why two raters, and what we compute

If two sensible people disagree widely, no model score means much. Agreement is reported as raw percentage and as Cohen's kappa, which discounts agreement expected by luck: κ = (p_o − p_e) / (1 − p_e).

Toy example, 100 pictures: both say Large on 30, both say not-Large on 50, they split on 20 (10 each way). Observed agreement p_o = 0.80. Each person says Large 40% of the time, so chance agreement p_e = 0.4·0.4 + 0.6·0.6 = 0.52. κ = (0.80 − 0.52) / 0.48 ≈ 0.58. Kappa is descriptive here, not a pass mark.

Your Pass 1 answers (Large, Small, None, Unsure) are kept raw. Later we ask "why" only for disagreements plus 10–15 random agreements; asking earlier could prime the judgement we are measuring. An optional experiment gives pictures both call Large a target of 1, both not-Large 0, and a split 0.5. It is only a development ablation, not a claim about true probability.

6. The final exam and the verdict

The 192 existing pictures are development material. After the rubric is settled, about 200 fresh pictures are drawn at random from the real feed (only filtered for size, duplicates and one-publisher dominance), labelled by the owner, and locked away. The model, prompts, threshold and verdict rule are written down and committed first; then the exam is scored once. Model uncertainty is never used to pick exam pictures. A deliberately hard "stress" batch is allowed for development only.

Because the exam is small, we use 95% Wilson intervals: for k successes of n, centre (p̂ + z²/2n) / (1 + z²/n) with half-width z·√(p̂(1−p̂)/n + z²/4n²) / (1 + z²/n), z = 1.96. Example: 21 of 35 shown-large correct is 60%, but the interval is about 44% to 74%.

VerdictRule
PASSAll three point estimates meet the targets and their intervals stay clear of the fail lines: precision lower bound ≥ 50%, None upper bound ≤ 15%, coverage lower bound ≥ 40%.
FAILAny estimate beyond a fail line (precision < 50%, None > 15%, coverage < 40%).
INCONCLUSIVEEverything else, including a nominal pass whose interval crosses a fail line. The example above would land here.

7. Other approaches

Tried or ruled out in the project records

Possible, not pursued (our reasoning, not a project decision)

8. Where we may be wrong: please tell us

If you see a flaw, a better baseline or a cheaper test, please say so, after you finish your Pass 1 labels so it does not influence them.

9. What happens next

  1. You do Pass 1 on 172 pictures; the owner re-reviews their own labels in parallel. Neither sees the other's answers.
  2. The owner's rubric is settled, then the fresh ~200-picture exam is drawn and locked.
  3. Agreement is computed; you and the owner give short "why" answers on disagreements.
  4. Zero-shot, then logistic-regression runs on the development set; then the plan is frozen.
  5. The exam is scored once. Outcome: MODEL_ROUTE_SUPPORTED, MODEL_ROUTE_FAILED or INCONCLUSIVE_NEEDS_MORE_LABELS. Only a supported result leads to on-device engineering.