60 秒回答模板

我会按多模态微调的通用流程回答,而不是背某个版本的参数。第一步是明确微调目标,是提升图文问答、OCR 理解、视觉定位、图像描述还是特定业务指令遵循;第二步准备多模态指令数据,保证图片、文本问题、答案、必要标注和拒答样本对齐,清洗掉图片不可见、答案无依据和标注冲突的数据;第三步控制视觉 token 和上下文长度,因为图像分辨率、图片数量、裁剪策略和文本长度都会影响显存、速度和可训练 batch;第四步选择训练方式,通常先考虑 LoRA、QLoRA 或冻结部分模块的参数高效微调,再根据数据量和目标决定是否更大范围更新;第五步做好 loss masking,只对期望模型生成的答案部分计算损失,不让模型学习用户提示、图片占位或系统指令;第六步评估时要用任务相关验证集,看准确率、事实一致、OCR、空间关系、拒答、幻觉、延迟和成本,并和基线模型、纯 prompt 方案或小样本微调做对比。

考点 微调流水线
难度 真实面经题
回答目标 讲清多模态微调闭环

深入解析

01

先明确微调目标和数据边界

Qwen2-VL 微调不能只说把图片和文本喂进去训练。要先明确目标任务,包括视觉问答、图像描述、OCR 相关理解、视觉定位或多模态指令遵循。不同目标需要不同标注形式和评估集,不能用一个泛化数据集替代所有业务问题。

02

多模态数据质量比数量更关键

数据要保证图片、问题、答案和标注一致。常见清洗点包括图片内容不可见、答案无法从图片或上下文推出、问题过于模板化、同一图片多答案冲突、敏感内容缺兜底、训练集和评测集泄漏。对多图或长文本样本,还要保证顺序和引用关系清楚。

03

视觉 token 预算影响显存和效果

多模态模型的训练成本很大一部分来自视觉 token 和上下文长度。图像分辨率、裁剪方式、图片数量、文本长度和 batch size 都会影响显存、吞吐和是否截断关键信息。工程上要在保留必要视觉细节和可训练成本之间取舍,并记录不同设置下的效果。

04

参数策略要从轻量微调开始验证

稳妥流程通常是先用参数高效微调验证收益,例如只更新部分适配层或语言侧相关参数,再根据数据规模、过拟合情况和视觉能力迁移需求决定是否解冻更多模块。学习率、warmup、batch、梯度累积、混合精度、权重衰减和 checkpoint 选择都要通过验证集监控。

05

loss masking 和评估闭环不能省

指令微调时要明确哪些 token 需要计算损失,通常只让模型学习 assistant 答案,避免把用户问题、系统指令或图片占位当成目标输出。评估要包含任务准确、幻觉、OCR、空间关系、拒答、安全、延迟和成本,并用 badcase 决定是补数据、调 token 预算还是换训练策略。

易错点

  • 把 Qwen2-VL 微调答成普通文本 SFT,忽略图片、视觉 token 和多模态样本对齐。
  • 直接堆具体版本参数,无法解释为什么这些设置适合当前任务。
  • 没有 loss masking,训练目标把提示词或图片占位也算进去。
  • 只看训练 loss 下降,不做多模态任务验证、幻觉检查和成本评估。

面试官追问

什么时候选择 LoRA 而不是全量微调?

数据量不大、目标是适配指令风格或局部能力、显存和成本有限时先用 LoRA 更稳;如果需要深度改变视觉或跨模态能力,再评估更大范围更新。

视觉 token 太多导致训练不稳定怎么办?

可以控制分辨率、裁剪策略、图片数量和文本长度,配合梯度累积、混合精度和更小 batch,并用验证集确认细节损失是否可接受。

为什么要做 loss masking?

因为训练目标应是模型生成的答案,而不是用户提示、系统指令或图片占位。mask 错会让模型学习无意义 token,影响收敛和输出格式。

多模态微调如何判断真的有效?

要和基线模型、prompt-only 方案或旧模型对比,并在任务验证集、人工复核和线上 badcase 中同时看准确、幻觉、视觉理解、延迟和成本。