File size: 2,676 Bytes
9d38bec
 
41fc0d8
 
 
 
 
9d38bec
41fc0d8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1991117
41fc0d8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1991117
41fc0d8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
---
license: apache-2.0
language:
- en
base_model:
- Qwen/Qwen3-VL-4B-Instruct
pipeline_tag: image-text-to-text
---


# ADOPD

<p align="center">
  📄 <a href="https://arxiv.org/abs/2608.09789">Paper</a> &nbsp;|&nbsp;
  💻 <a href="https://github.com/withTai/ADOPD">Code</a> &nbsp;|&nbsp;
  🤗 <a href="https://huggingface.co/datasets/withstaticTai/ADOPD-Dataset-6K">Training Data</a> &nbsp;|&nbsp;
</p>

## Model Summary

**ADOPD** is the released model in paper [ADOPD: Reference-Privileged On-Policy Distillation for MLLM-Based Industrial Anomaly Detection](https://arxiv.org/abs/2608.09789).

Industrial anomaly detection (IAD) requires identifying fine-grained deviations from normal visual patterns. Multimodal large language models (MLLMs) can improve recognition accuracy by comparing query images with references at inference time, but these benefits rely on additional retrieval and processing. 
ADOPD is a reference-privileged on-policy distillation framework that internalizes reference comparison into query-only MLLMs for industrial anomaly detection. The central insight is that references need not remain deployment-time inputs: when used as privileged training information, they can provide both a candidate distillation direction and a reliability signal for that direction. ADOPD operationalizes this idea by evaluating student-generated rollouts with a matched reference and a mismatched control, thereby separating what the student should learn from how strongly each rollout should shape the update.


## Quickstart

```python
from transformers import AutoProcessor, AutoModelForMultimodalLM

model_id = "withstaticTai/ADOPD"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")
messages = [{
    "role": "user",
    "content": [
        {"type": "image", "url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"},
        {"type": "text", "text": "What is the color of the label on the bottle in the background?"},
    ],
}]
inputs = processor.apply_chat_template(
	messages,
	add_generation_prompt=True,
	tokenize=True,
	return_dict=True,
	return_tensors="pt",
).to(model.device)

outputs = model.generate(**inputs, max_new_tokens=40)
print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:]))
```



## Citation

```bibtex
@article{he2026adopd,
  title={ADOPD: Reference-Privileged On-Policy Distillation for MLLM-Based Industrial Anomaly Detection},
  author={He, Jingtai and Meng, Shiyuan and Meng, Wenchao and Yang, Qinmin},
  journal={arXiv preprint arXiv:2608.09789},
  year={2026}
}
```

## License

Released under Apache-2.0.