LinkRur's picture
detele:file structure
78e3474 verified
---
language:
- zh
tags:
- qwen2.5
- vision-language-model
- dinov2
- nsd
- multimodal
library_name: transformers
license: mit
---
# Qwen_2.5_1.5B_Instruct_Vision
基于 DINOv2 与 NSD (Normalized State Decomposition) 的视觉语言模型,通过超球面归一化实现视觉-语言特征对齐。
## 方法
### NSD 定义
给定向量 v ∈ R^D,NSD 将其投影到单位超球面 S^{D-1}:
$$
\text{NSD}(\mathbf{v}) = \frac{\mathbf{v}}{\|\mathbf{v}\|_2}
$$
归一化后,内积等价于余弦相似度:
$$
\langle \text{NSD}(\mathbf{v}_1), \text{NSD}(\mathbf{v}_2) \rangle = \cos(\theta)
$$
### 视觉-语言对齐
DINOv2 输出 h ∈ R^{384},经投影层映射到 Qwen 的 1536 维嵌入空间,再通过 NSD 归一化到 S^{1535}:
$$
\mathbf{z} = \text{NSD}\left(W_2 \cdot \text{ReLU}(W_1 \mathbf{h} + \mathbf{b}_1) + \mathbf{b}_2\right)
$$
其中 W_1 ∈ R^{768×384}, W_2 ∈ R^{1536×768} 为投影层参数。
Qwen 词表嵌入 E ∈ R^{V×1536} 同样归一化:
$$
\hat{\mathbf{E}} = \text{NSD}(\mathbf{E})
$$
每个视觉 token 在词表中检索最近邻:
$$
t^* = \arg\max_{t \in \mathcal{V}} \ \mathbf{z}^\top \hat{\mathbf{e}}_t
$$
### 训练
投影层与 DINOv2 后 4 层使用 InfoNCE 对比损失微调:
$$
\mathcal{L} = -\log \frac{\exp(\mathbf{z}_i^\top \mathbf{y}_i / \tau)}{\sum_{j=1}^{B} \exp(\mathbf{z}_i^\top \mathbf{y}_j / \tau)}
$$
其中 y_i 为类别 i 的 Qwen 嵌入,τ = 0.07 为温度系数。
## 架构
| 组件 | 说明 | 参数量 |
|------|------|--------|
| DINOv2 ViT-S/14 | 视觉编码器 (微调后 4 层) | 22M |
| MLP Projection | 384 → 768 → 1536 | 1.18M |
| Qwen2.5-1.5B-Instruct | 语言模型 (冻结) | 1543.7M |
## 性能
在 tiny-imagenet-200 验证集 (10000 张) 上的视觉 token 准确率:
| Top-K | 命中率 |
|-------|--------|
| Top-1 | 72.43% |
| Top-3 | 80.02% |
| Top-5 | 81.18% |
| Top-10 | 81.67% |
## 使用
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
from PIL import Image
# 加载模型
model = AutoModelForCausalLM.from_pretrained(
"LinkRur/Qwen_2.5_1.5B_Instruct_Vision", # 替换为你的模型名
trust_remote_code=True,
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(
"LinkRur/Qwen_2.5_1.5B_Instruct_Vision", # 替换为你的模型名
trust_remote_code=True
)
# 推理
image = Image.open("photo.jpg").convert("RGB")
vis_desc, response = model.generate_with_image(image, "描述这张图片", tokenizer)
print(response)
```
## License
MIT