图像与设计
图像+文本 SFT 微调 VLM:用冻结视觉塔+LLM…
已有图像+文本示范和已选好的 VLM 基座,需要适配视觉任务/领域时,用此配方配置冻结组件、LoRA/QLoRA、视觉解冻与像素预算。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
图像+文本 SFT 微调 VLM:用冻结通用
解决思路
- 默认冻结 `vision_tower` 和 `projector`,只对 LLM 加 LoRA;LoRA 使用 all-linear,target_modules 为 `q_proj`, `k_proj`, `v_proj`, `o_proj`, `gate_proj`, `up_proj`, `down_proj`,并设 `r=8–16`、`alpha=16–32`。
- 用参数遍历冻结:遍历 `model.named_parameters()`,若参数名包含 `"vision_tower"` 或 `"projector"`,设置 `param.requires_grad = False`。
- 将 LoRA rank 设得低于纯文本 SFT 的通用默认值:这里用 `r=8–16`,而纯文本 SFT 常用 `r=16–32`,因为该 LoRA 只适配 LLM 行为,不注入新视觉知识。
- 默认不重训 vision tower 和 projector:它们已编码通用视觉表示,重训通常无必要且增加风险。
- QLoRA 仅允许搭配冻结的 vision tower;若 vision tower 需要解冻,则放弃 QLoRA,改用 bf16 LoRA。
- 仅在视觉域偏移时解冻视觉层:若任务是在模型已理解的图像(图表、日常照片)上教新行为,保持冻结;若视觉域本身陌生(卫星图、医学扫描、密集技术图)且冻结配方停滞,再解冻。
- 解冻时只解冻最后 6 层 ViT,不要解冻整个 tower;实测相比冻结基线在 DocVQA 上 +1.7pt,训练成本约 1.75x,超过 6 层不划算。
- 解冻视觉层时,将 vision LR 设为 LLM LR 的 5–10x 更低。
- 若 patch embedding 在解冻集合中,保持其 LoRA rank 低,并密切观察早期 step loss,防止 NaN。
- 训练前逐例验证 image placeholder token 与实际传给 collator 的 media item 为 1:1 映射;不匹配通常不报错,会静默错位图文,导致模型训练但不学习;按 `references/collators-and-pitfalls.md` 的完整校验清单执行,不只抽样。
- 按数据集显式设置 `min_pixels`/`max_pixels` 分辨率预算,不要保留框架默认值;过低会静默下采样到低于任务需要,过高会爆 activation memory 或迫使 batch 过小而不稳定。
- 使用 Unsloth 做 VLM SFT 时,用 `UnslothVisionDataCollator` 处理 image-tag 对齐和按架构的 processor 契约;不要用纯文本 collator 替代 VLM 数据 collator。
- 使用 Unsloth 时,若 `fast_inference=True`,必须设置 `finetune_vision_layers=False`;因为 vLLM 无法在 vision layers 上服务 LoRA adapter,解冻视觉层会在 serve 时失败。
- 当配方要求解冻最后 6 层 ViT 时,关闭 fast inference;在解冻视觉层与 fast inference 之间二选一,不要同时开。
- 基础 VLM 选择不在本技能范围内;按 `finetuning-method-selection` 的 `references/model-catalog.md` 选择,本技能只按架构族描述配方,不推荐具体模型。
- VLM RL(VLM-GRPO)只作参考;不要在 SFT 流程中处理,若要做 VLM-RL 去看 `grpo-rlvr-training` 的工具碎片化和 reward-hacking 失败模式。
- 不要用 loss 曲线正常作为训练健康的证据;若 eval 分数平坦而 loss 正常,先重跑 `references/collators-and-pitfalls.md` 的检查清单,再调任何超参数。
- 参考 `references/collators-and-pitfalls.md`:按架构 collator 表、带 image placeholder 的数据集格式示例、训练前校验清单,以及作为高级模式的两阶段 projector-alignment recipe。
- 输出一个 validated adapter config,供 `llm-finetuning-training-engineer` 直接消费;其中包含冻结哪些组件、LoRA target modules、`min_pixels`/`max_pixels` 预算。
适用边界 · 注意事项
- 数据是 preference pairs 或可验证 reward signal,而不是图像+文本示范时,不要用此 SFT 配方。
- 只做纯文本 LLM 微调,或需要 RL(VLM-GRPO)时,不适用。
- 若运行必须同时启用 `fast_inference=True` 并解冻视觉层,不适用此组合;二者只能选一。