aacudad/AnomalyThink-LLaVA-OneVision-7B-KCR-corrected

Model

AnomalyThink-LLaVA-OneVision-7B-KCR-corrected

0

3 commits

1 linked in READMEs

updated Sep 18, 2026

See the code

README

AnomalyThink-LLaVA-OneVision-7B-KCR-corrected

The Keep-Correct-Revise (KCR) replication on LLaVA-OneVision-7B-SI, corrected corpus build. This is the checkpoint the thesis reports as the second-backbone replication result (Table 6.13, Appendix M): DS-MVTec 87.32 / VisA 72.65 at the DS-MVTec-selected epoch 2, and 74.29 on VisA at epoch 4.

Why a corrected build

The first LLaVA KCR corpus, behind AnomalyThink-LLaVA-OneVision-7B-KCR (88.45 / 74.25), was drawn from the whole 10,236-image rollout pool rather than from the 6,000-image SFT split (3,516 of its images lie inside that split) and was balanced on the folder name rather than on the trace verdict, which left it at 45.0 % anomalous. The corrected corpus, llava_kcr/sft_llava_C_corrected_train.json in the dataset repo, keeps the same keep, correct and rewrite routing, the same record schema, prompt, caps and seed, and changes only those two things: all 6,000 images inside the SFT split and exactly 3,000 / 3,000 by verdict. That makes the comparison with the Qwen2.5-VL KCR model a one-factor comparison, which is why the thesis reports this build.

Results (MMAD subsets, balanced accuracy, strict scoring)

ModelDS-MVTecVisA
LLaVA-OneVision-7B-SI base75.6653.80
AnomalyThink LLaVA SFT (6K Gemini traces)85.9168.26
AnomalyThink LLaVA SFT then GRPO87.6672.38
AnomalyThink LLaVA KCR, first build88.4574.25
This model, corrected build, epoch 287.3272.65
IAD-R1 released checkpoint (Qwen2.5-VL-7B)81.9271.34

Per epoch: 84.35 / 71.36, 87.32 / 72.65, 86.96 / 73.57, 86.60 / 74.29. On the held-out Real-IAD split (4,236 unseen images of seen products) this checkpoint scores 84.03, the highest row there.

Contamination note. The public LLaVA-OneVision instruction mixture contains entries naming MVTec-AD, so every DS-MVTec number on this backbone carries a possible pretraining-exposure caveat. VisA has no such entries. Claims that depend on this backbone are made on VisA.

Evaluation protocol. One harness for every row: the DS-MVTec (1,670 images) and VisA (2,141 images) subsets of MMAD, one image per prompt, the training prompt with the one-line system message "Please answer by yes or no", greedy decoding, at most 1,024 new tokens, images capped at 262,144 pixels, vLLM generation; 13 of the 2,141 VisA generations of this checkpoint carry no parsable verdict and are counted as wrong. Balanced accuracy is the mean of sensitivity and specificity. Strict scoring: a generation with no parsable <answer> counts as wrong. Per-sample evaluation files are next to the weights (eval_*.json).

Training

  • Base: llava-hf/llava-onevision-qwen2-7b-si-hf.
  • Corpus: llava_kcr/sft_llava_C_corrected_train.json, 6,000 traces, 3,000 / 3,000 by verdict, all inside the SFT split, built from this backbone's own SFT then GRPO rollouts (k = 8 at temperature 0.7), judged and repaired by Gemini-3-Flash.
  • Recipe: supervised fine-tuning from base, SigLIP vision tower frozen, projector and language model trained, learning rate 1e-5, cosine, effective batch 32, DeepSpeed ZeRO-3 with optimizer offload, 4 epochs. This is epoch 2 (step 376).

Usage

Loads with transformers 4.51 to 4.57 as a LlavaOnevisionForConditionalGeneration. This backbone does not attend to the system turn, so put the instruction in the user turn: prepend "Please answer by yes or no." to the question. Same prompt and tags as the other AnomalyThink models.

Citation

@mastersthesis{acudad2026reasoning,
  author  = {Acudad, A.},
  title   = {Reasoning-Enhanced Vision-Language Models for Explainable Industrial Anomaly Detection},
  school  = {Delft University of Technology},
  year    = {2026},
  type    = {Master's thesis},
  url     = {https://resolver.tudelft.nl/uuid:65c62420-79c0-447f-b095-7fb11d4474fc}
}

Thesis: https://resolver.tudelft.nl/uuid:65c62420-79c0-447f-b095-7fb11d4474fc. Code and evaluation files: https://github.com/aacudad/IAD-VLMs.

License

Apache-2.0, derived from llava-hf/llava-onevision-qwen2-7b-si-hf.

anomaly-detection
conversational
endpoints_compatible
image-text-to-text
industrial-anomaly-detection
llava-onevision
llava_onevision
reasoning
safetensors
transformers
vision-language-model

aacudad/AnomalyThink-LLaVA-OneVision-7B-KCR-corrected

Model

AnomalyThink-LLaVA-OneVision-7B-KCR-corrected

0

3 commits

1 linked in READMEs

updated Sep 18, 2026

See the code

README

AnomalyThink-LLaVA-OneVision-7B-KCR-corrected

The Keep-Correct-Revise (KCR) replication on LLaVA-OneVision-7B-SI, corrected corpus build. This is the checkpoint the thesis reports as the second-backbone replication result (Table 6.13, Appendix M): DS-MVTec 87.32 / VisA 72.65 at the DS-MVTec-selected epoch 2, and 74.29 on VisA at epoch 4.

Why a corrected build

The first LLaVA KCR corpus, behind AnomalyThink-LLaVA-OneVision-7B-KCR (88.45 / 74.25), was drawn from the whole 10,236-image rollout pool rather than from the 6,000-image SFT split (3,516 of its images lie inside that split) and was balanced on the folder name rather than on the trace verdict, which left it at 45.0 % anomalous. The corrected corpus, llava_kcr/sft_llava_C_corrected_train.json in the dataset repo, keeps the same keep, correct and rewrite routing, the same record schema, prompt, caps and seed, and changes only those two things: all 6,000 images inside the SFT split and exactly 3,000 / 3,000 by verdict. That makes the comparison with the Qwen2.5-VL KCR model a one-factor comparison, which is why the thesis reports this build.

Results (MMAD subsets, balanced accuracy, strict scoring)

ModelDS-MVTecVisA
LLaVA-OneVision-7B-SI base75.6653.80
AnomalyThink LLaVA SFT (6K Gemini traces)85.9168.26
AnomalyThink LLaVA SFT then GRPO87.6672.38
AnomalyThink LLaVA KCR, first build88.4574.25
This model, corrected build, epoch 287.3272.65
IAD-R1 released checkpoint (Qwen2.5-VL-7B)81.9271.34

Per epoch: 84.35 / 71.36, 87.32 / 72.65, 86.96 / 73.57, 86.60 / 74.29. On the held-out Real-IAD split (4,236 unseen images of seen products) this checkpoint scores 84.03, the highest row there.

Contamination note. The public LLaVA-OneVision instruction mixture contains entries naming MVTec-AD, so every DS-MVTec number on this backbone carries a possible pretraining-exposure caveat. VisA has no such entries. Claims that depend on this backbone are made on VisA.

Evaluation protocol. One harness for every row: the DS-MVTec (1,670 images) and VisA (2,141 images) subsets of MMAD, one image per prompt, the training prompt with the one-line system message "Please answer by yes or no", greedy decoding, at most 1,024 new tokens, images capped at 262,144 pixels, vLLM generation; 13 of the 2,141 VisA generations of this checkpoint carry no parsable verdict and are counted as wrong. Balanced accuracy is the mean of sensitivity and specificity. Strict scoring: a generation with no parsable <answer> counts as wrong. Per-sample evaluation files are next to the weights (eval_*.json).

Training

  • Base: llava-hf/llava-onevision-qwen2-7b-si-hf.
  • Corpus: llava_kcr/sft_llava_C_corrected_train.json, 6,000 traces, 3,000 / 3,000 by verdict, all inside the SFT split, built from this backbone's own SFT then GRPO rollouts (k = 8 at temperature 0.7), judged and repaired by Gemini-3-Flash.
  • Recipe: supervised fine-tuning from base, SigLIP vision tower frozen, projector and language model trained, learning rate 1e-5, cosine, effective batch 32, DeepSpeed ZeRO-3 with optimizer offload, 4 epochs. This is epoch 2 (step 376).

Usage

Loads with transformers 4.51 to 4.57 as a LlavaOnevisionForConditionalGeneration. This backbone does not attend to the system turn, so put the instruction in the user turn: prepend "Please answer by yes or no." to the question. Same prompt and tags as the other AnomalyThink models.

Citation

@mastersthesis{acudad2026reasoning,
  author  = {Acudad, A.},
  title   = {Reasoning-Enhanced Vision-Language Models for Explainable Industrial Anomaly Detection},
  school  = {Delft University of Technology},
  year    = {2026},
  type    = {Master's thesis},
  url     = {https://resolver.tudelft.nl/uuid:65c62420-79c0-447f-b095-7fb11d4474fc}
}

Thesis: https://resolver.tudelft.nl/uuid:65c62420-79c0-447f-b095-7fb11d4474fc. Code and evaluation files: https://github.com/aacudad/IAD-VLMs.

License

Apache-2.0, derived from llava-hf/llava-onevision-qwen2-7b-si-hf.

anomaly-detection
conversational
endpoints_compatible
image-text-to-text
industrial-anomaly-detection
llava-onevision
llava_onevision
reasoning
safetensors
transformers
vision-language-model