Small Vision-Language Model / 小型视觉语言模型通常由视觉编码器 多模态 projector / adapter 小型 LLM组成。LLaVA 类模型证明了“视觉编码器接入 LLM 视觉指令数据”可以形成通用多模态助手MobileVLM 则进一步面向移动端用 CLIP 风格视觉模型、轻量 projector 和 1.4B / 2.7B 级语言模型实现端侧 VLM。([arXiv][1])1. 知识蒸馏在 sVLM 中的核心作用1.1 把大 VLM 的多模态能力压缩到小模型大 VLM 具备较强的图像理解、视觉问答、OCR、关系推理、空间理解和复杂指令跟随能力但参数量和推理成本高不适合 Jetson、移动端、RK3588、低功耗边缘盒子等场景。知识蒸馏的核心目标是用大模型 Teacher 的输出、特征、推理偏好和跨模态表示训练小模型 Student使 sVLM 在更小参数量、更低显存和更低延迟下保留尽可能多的多模态能力。MobileVLM 的目标就是面向移动设备部署并报告了在 Snapdragon 888 CPU 和 Jetson Orin GPU 上的推理速度结果MobileVLM V2 进一步说明通过结构设计、训练策略和高质量数据小模型可以达到或接近更大 VLM 的效果。([arXiv][2])1.2 提升视觉-语言对齐能力sVLM 的短板通常不是“会不会生成文字”而是图像 token 是否能正确映射到语言空间小 LLM 是否真正理解视觉特征projector 是否把视觉语义压缩得足够好小模型是否容易忽略局部目标、空间关系和细粒度属性。LLaVA-KD 这类方法专门指出单纯做文本响应蒸馏不够视觉模态同样关键它提出Multimodal Distillation, MDist同时蒸馏视觉和语言模态表示并用Relation Distillation, RDist迁移视觉 token 之间的空间/语义关系。([CVF Open Access][3])1.3 降低幻觉提高“看图说话”的可信度sVLM 容易出现图像里没有的物体却回答存在SKU / 文字 / 数量识别错误空间关系判断错误多目标场景下漏看、错看对细粒度包装、Logo、颜色、位置判断不稳定。知识蒸馏可以让 Student 学习 Teacher 对“正确答案 / 错误答案”的偏好。LLaVA-MoD 采用 progressive knowledge transfer先做 mimic distillation用 KL 散度让学生模仿教师输出分布再做 preference distillation / DPO让小模型学会区分优劣答案并报告其在幻觉相关 benchmark 上有优势。([arXiv][4])2. sVLM 中常见的蒸馏对象sVLM 的知识蒸馏不只是“拿大模型回答做标签”而是可以蒸馏多个层次。蒸馏对象作用适合场景输出文本蒸馏学 Teacher 的最终回答VQA、图像描述、OCR 问答、指令跟随Logits 蒸馏学 Teacher 对每个 token 的概率分布小 LLM 训练、减少错误回答视觉特征蒸馏学 Teacher 的 visual token / patch 表示细粒度目标识别、OCR、检测辅助Projector 蒸馏学视觉特征到语言空间的映射sVLM 预训练阶段非常关键Attention / Relation 蒸馏学视觉 token 之间的关系矩阵空间关系、多目标、遮挡、货架场景Chain-of-thought / rationale 蒸馏学 Teacher 的推理过程摘要复杂 VQA、工业质检、库存判断Preference 蒸馏学会偏好正确答案拒绝幻觉答案减少 hallucination提高鲁棒性数据蒸馏用 Teacher 自动生成图文指令数据低成本构造训练集3. 推荐的 sVLM 蒸馏训练流程一个比较实用的工程流程可以分成三阶段类似 LLaVA-KD 提出的DPT → SFT → DFT框架DPT 用蒸馏预训练强化视觉-语言对齐SFT 用监督微调获得基础指令能力DFT 再用蒸馏微调进一步迁移大模型知识。([CVF Open Access][3])大 VLM Teacher │ ├── 生成图像描述 / VQA / OCR / 推理答案 ├── 生成 hard label / soft logits / preference pair ├── 提取 visual token / hidden state / attention relation │ ▼ 训练数据构建 │ ├── image-caption pair ├── image-question-answer ├── positive / negative answer pair ├── visual token relation matrix │ ▼ sVLM Student 训练 │ ├── Stage 1: Distilled Pre-Training, 对齐视觉-语言空间 ├── Stage 2: Supervised Fine-Tuning, 学会基础指令跟随 ├── Stage 3: Distilled Fine-Tuning, 强化 Teacher 能力迁移 │ ▼ 部署优化 ├── LoRA / QLoRA ├── INT8 / INT4 量化 ├── projector 合并 ├── KV cache └── ONNX / TensorRT / llama.cpp / MNN / QNN4. 关键损失函数设计4.1 文本响应蒸馏最基础方式是让 Student 学 Teacher 的回答L_ce - Σ log P_student(y_teacher | image, question)适合低成本数据蒸馏Teacher 根据图像生成 caption、VQA、OCR 问答、检测解释然后 Student 用这些问答做 SFT。4.2 Logits 蒸馏如果能拿到 Teacher 的 logits可以使用 KL 散度L_kd T² * KL( softmax(z_teacher / T) || softmax(z_student / T) )其中T是 temperaturez_teacher是教师模型 logitsz_student是学生模型 logits。最终语言损失可以写成L_text α * L_ce β * L_kd这种方式比只学最终答案更细因为 Student 不仅知道正确 token也知道 Teacher 对其他 token 的相对偏好。LLaVA-MoD 的 mimic distillation 就使用了 KL 散度来让学生模拟教师的输出分布。([arXiv][4])4.3 视觉特征蒸馏对于 sVLM视觉特征蒸馏非常关键。可以让 Student 的 visual token 接近 Teacher 的 visual tokenL_visual MSE( Proj_s(V_s), Proj_t(V_t) )或者使用 cosine lossL_visual 1 - cosine( Proj_s(V_s), Proj_t(V_t) )适合以下场景商品 SKU 识别OCR / 文本区域理解货架 / 自动售货柜图像理解遮挡、多目标、局部细粒度识别小模型视觉编码器能力不足时。4.4 Relation 蒸馏Relation 蒸馏不是直接对齐单个 token而是对齐视觉 token 之间的关系R_t cosine_matrix(V_t) R_s cosine_matrix(V_s) L_relation MSE(R_s, R_t)它的意义是让 Student 学到 Teacher 对空间布局、目标关系、局部依赖的理解。LLaVA-KD 明确提出 RDist用于迁移 Teacher 捕获视觉 token 关系的能力尤其适合复杂视觉场景。([CVF Open Access][3])对你的自动售货柜 / 商品识别场景这一项很有价值因为货柜图像里常见同类商品重复排列局部遮挡包装相似上下左右货架关系明显单个商品判断依赖周边结构。4.5 Preference / DPO 蒸馏构造正负样本{image:cabinet_001.jpg,question:图中第三层左侧有几瓶可乐,chosen:第三层左侧有 4 瓶可乐。,rejected:第三层左侧有 6 瓶可乐。}然后用 DPO / preference loss 训练 Student 学会偏好正确答案。LLaVA-MoD 在 mimic distillation 后加入 preference distillation并将大模型作为 reference model以提升学生模型辨别优劣回答的能力。([arXiv][4])适合减少数量幻觉目标不存在却回答存在OCR 乱读细粒度 SKU 混淆复杂视觉推理错误。5. 工程实现方式5.1 数据蒸馏最容易落地这是最推荐优先做的方式因为不需要改模型内部结构也不需要 Teacher logits。输入图像 任务模板 Teacher生成高质量问答 / caption / OCR / 检测解释 过滤规则校验 人工抽检 小模型一致性检查 Student用生成数据做 SFT示例数据格式{image:images/cabinet_0001.jpg,conversations:[{from:human,value:image\n请识别货柜中第二层有哪些商品并统计数量。},{from:gpt,value:第二层包含可乐 3 瓶、矿泉水 2 瓶、绿茶 4 瓶。}]}优点实现简单可直接复用 LLaVA / TinyLLaVA / MobileVLM 训练格式适合领域数据快速扩充对边缘端 sVLM 很实用。缺点Teacher 错误会被 Student 学进去需要数据清洗对空间关系、视觉 token 细节迁移有限。5.2 Logits 蒸馏效果好但成本高训练时同时跑 Teacher 和 Student或提前离线保存 Teacher logits。withtorch.no_grad():teacher_outputsteacher(imageimage,input_idsinput_ids,output_logitsTrue)student_outputsstudent(imageimage,input_idsinput_ids,output_logitsTrue)loss_cecross_entropy(student_outputs.logits,labels)loss_kdkl_divergence(softmax(teacher_outputs.logits/T),softmax(student_outputs.logits/T))lossalpha*loss_cebeta*loss_kd缺点是 vocab logits 很大保存成本高。工程上可以只保存top-k logitsanswer token logitshidden statespreference pairTeacher 生成的 rationale。5.3 Projector 蒸馏sVLM 最值得做很多 sVLM 的瓶颈在 projector。视觉编码器输出的 patch token 必须映射到小 LLM 的 embedding 空间如果 projector 学不好小模型就会“看不懂图”。推荐训练目标输入图像 I Teacher: V_t projector_t(vision_encoder_t(I)) Student: V_s projector_s(vision_encoder_s(I)) L_projector MSE(V_s, stop_grad(V_t))可以先冻结小 LLM只训练vision projectorvisual adapterLoRA adapter。这样显存成本低训练稳定。5.4 Visual token Relation 蒸馏适合工业视觉对于商品识别、货架结构、OCR、检测辅助推荐加入L_total λ1 * L_ce λ2 * L_kd λ3 * L_visual λ4 * L_relation其中L_visual : 对齐 Teacher / Student 的视觉 token L_relation : 对齐视觉 token 之间的相似度矩阵 L_ce : 学标准答案 L_kd : 学 Teacher token 分布这种方式比单纯 SFT 更适合多目标场景。LLaVA-KD 的思路就是同时迁移视觉和语言模态表示并显式迁移视觉 token 关系。([CVF Open Access][3])6. 面向边缘端 sVLM 的推荐方案Jetson Orin / RK3588 / Qualcomm QNN / MNN / llama.cpp 端侧部署建议不要一上来做完整 logits 蒸馏而是分层推进。第一阶段Teacher 数据蒸馏使用大 VLM 生成领域数据图像 → Teacher → caption / VQA / OCR / 数量统计 / 结构描述比如自动售货柜场景问题模板 1. 图中有哪些商品 2. 每一层分别有哪些商品 3. 某个 SKU 是否存在 4. 某个区域有几个商品 5. 商品是否被遮挡 6. 是否需要补货 7. 检测框中商品是什么 8. mask 区域对应什么 SKU第二阶段Projector LoRA 蒸馏冻结大部分模型只训练vision projector LoRA on small LLM optional visual adapter目标是让小模型学会“看懂领域图像”。第三阶段Relation 蒸馏对货架、柜体、商品排列这种空间结构强的场景加入 relation loss视觉 token 相似度矩阵 局部 patch 关系 货架层级关系 目标-目标关系 目标-货架关系这比只训练 caption 更能提升复杂场景理解。第四阶段部署压缩训练完成后再做INT8 / INT4 量化 KV cache 图像分辨率裁剪 ROI crop 输入 视觉 encoder 替换为轻量模型 projector 合并 ONNX / TensorRT / MNN / QNN 推理优化MobileVLM / MobileVLM V2 这类工作也说明小型 VLM 的性能不是只靠缩小 LLM而是依赖移动端导向的结构、训练策略和高质量数据。([arXiv][2])7. 推荐落地架构┌────────────────────────────┐ │ Large VLM Teacher │ │ GPT-4V / Qwen-VL / LLaVA等 │ └──────────────┬─────────────┘ │ ┌─────────────────────┼─────────────────────┐ │ │ │ ▼ ▼ ▼ 生成图文问答数据 提取视觉/语言特征 生成偏好样本 caption / VQA visual token chosen / rejected OCR / count hidden state hallucination pair │ │ │ └─────────────────────┼─────────────────────┘ ▼ ┌─────────────────────────┐ │ sVLM Student │ │ small vision encoder │ │ projector / adapter │ │ small LLM │ └─────────────┬───────────┘ │ ┌───────────────┼────────────────┐ ▼ ▼ ▼ CE/SFT Loss KD Loss Relation Loss 学标准答案 学Teacher分布 学视觉关系 └───────────────┼────────────────┘ ▼ 端侧部署 sVLM Jetson / RK3588 / Snapdragon / QNN9. 小结知识蒸馏在 sVLM 中的本质作用是把大 VLM 的视觉理解、语言推理、跨模态对齐、空间关系建模和答案偏好迁移到小模型中使其可以在边缘设备上以较低成本完成多模态理解。工程上推荐优先级1. 数据蒸馏最简单最容易落地 2. Projector 蒸馏提升视觉-语言对齐 3. Visual token 蒸馏提升图像细节理解 4. Relation 蒸馏提升多目标/空间关系理解 5. Preference / DPO 蒸馏减少幻觉和错误答案 6. Logits 蒸馏效果好但存储和训练成本较高对于边缘端 sVLM最佳实践不是单纯压小模型而是轻量结构 高质量蒸馏数据 projector 对齐 LoRA 微调 量化部署参考链接:[1]: https://arxiv.org/abs/2304.08485 “[2304.08485] Visual Instruction Tuning”[2]: https://arxiv.org/abs/2312.16886 “[2312.16886] MobileVLM : A Fast, Strong and Open Vision Language Assistant for Mobile Devices”[3]: https://openaccess.thecvf.com/content/ICCV2025/papers/Cai_LLaVA-KD_A_Framework_of_Distilling_Multimodal_Large_Language_Models_ICCV_2025_paper.pdf “LLaVA-KD: A Framework of Distilling Multimodal Large Language Models”[4]: https://arxiv.org/abs/2408.15881 “[2408.15881] LLaVA-MoD: Making LLaVA Tiny via MoE Knowledge Distillation”