ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

InternVideo2_CLIP_S微调完全指南:config.json逐项解读与多任务损失权重调优

InternVideo2_CLIP_S微调完全指南:config.json逐项解读与多任务损失权重调优 InternVideo2_CLIP_S微调完全指南config.json逐项解读与多任务损失权重调优【免费下载链接】InternVideo2_CLIP_S项目地址: https://ai.gitcode.com/hf_mirrors/OpenGVLab/InternVideo2_CLIP_SInternVideo2_CLIP_S 是一款面向视频-文本检索的多模态 CLIP 模型本文带你逐项解读它的config.json并掌握多任务损失权重的微调调优方法帮助你快速上手训练与自定义。一句话理解InternVideo2_CLIP_S 把「视频/图像」和「文字」编码到同一空间从而实现以文搜视频、以视频搜文等能力。本文聚焦微调时你最需要动的那几个配置。项目概览InternVideo2_CLIP_S 是什么InternVideo2_CLIP_S 由一个轻量视觉编码器InternVideo2 文本编码器MobileCLIP Text Transformer 对比温度参数组成权重存放在model.safetensors中。模块文件作用模型主类modeling_internvideo2encoder.pyInternVideo2_CLIP_small封装视觉/文本编码配置类config.pyInternVideo2Config解析config.json全部字段视觉编码器internvideo2_clip_vision.pyInternVideo2 视觉主干文本编码器mobile_clip.pyTextTransformerClipTokenizer演示脚本demo.py以文搜视频的完整调用示例配置文件config.json微调调优的核心config.json 逐项解读config.json是微调时唯一需要你重点修改的文件下面按「模型 → 数据 → 损失 → 优化器」四块拆解。模型结构相关model 段这一段决定「训练时哪些参数可学」是微调的第一道开关。embed_dim: 1024多模态融合后的对齐维度。freeze_vision: true/freeze_text: true分别冻结视觉与文本编码器。open_vision_clip_projector: true在冻结视觉主干的同时解冻视觉端的 CLIP 投影层clip_projector让它继续学习——这是轻量微调的关键。open_text_projection: false文本投影层保持冻结。temp: 0.01/temp_min: 0.01对比学习的温度参数控制相似度分布的「锐利」程度值越小分布越尖锐。 想做得更轻保持freeze_vision/freeze_text为true只开open_vision_clip_projector显存与时间开销最小。数据与输入配置inputs 段image_res: 224图像/视频帧分辨率。num_frames: 8每个视频采样的帧数直接影响显存与序列长度。max_txt_l: 32文本最大长度分词后。sample_type: middle帧采样策略middle取每段中点更稳定rand更随机。batch_sizeinputs.batch_size图像/视频各自的批大小默认各 64。损失函数与多任务权重criterion 段⭐ 核心这是微调调优的重中之重。InternVideo2 训练时同时优化多个任务每个任务对应一个权重criterion: { loss_weight: { vtc: 1.0, vtm: 1.0, mlm: 1.0, mvm: 0.0, uta: 0.0 }, vtm_hard_neg: true, mlm_masking_prob: 0.5, distill_final_features: true, clip_loss_ratio: [1.0, 1.0] }优化器与学习率调度optimizer / scheduler 段opt: adamWlr: 5e-05微调常用的小学习率。opt_betas: [0.9, 0.98]、weight_decay: 0.05、max_grad_norm: 3.0梯度裁剪稳定训练。different_lr.enable开启后可为module_names指定的模块单独设置学习率投影层常用更大 lr。schedulercosine余弦退火epochs: 10warmup_epochs: 1min_lr_multi: 0.01最低降到初始 lr 的 1%。多任务损失权重调优实战五大损失项含义速查缩写全称含义默认权重作用vtcVideo-Text Contrast1.0视频-文本对比学习对齐两塔vtmVideo-Text Matching1.0视频-文本匹配判别mlmMasked Language Modeling1.0文本掩码重建强化语义mvmMasked Video Modeling0.0视频掩码重建默认关闭utaUnmasked Teacher Alignment0.0无掩码教师对齐蒸馏默认关闭其他关键项vtm_hard_neg: true为匹配任务引入难负样本提升判别力。mlm_masking_prob: 0.5文本掩码比例。clip_loss_ratio: [1.0, 1.0]双向对比损失的比例视频→文本 / 文本→视频。微调时如何调整 loss_weight只调对比能力最稳保持vtc1.0、vtm1.0其余为 0专注对齐。提升检索精度适当上调vtm如 1.0→1.5并开启vtm_hard_neg。增强语义理解上调mlm如 1.0→2.0或提高mlm_masking_prob。数据规模大、想学视觉表征可开启mvm如 0.5但显存开销上升。经验法则每次只改 1~2 个权重配合best_keymsrvtt_1k_test_match、t2v_r1观察验证指标。常见微调场景配置清单场景建议改动理由轻量适配私有数据freeze_*: true 开open_vision_clip_projectorlr: 5e-05只学投影层防过拟合提升以文搜视频上调vtc/vtmclip_loss_ratio保持 1:1强化双向对比长文本检索增大max_txt_l如 32→64容纳更长描述显存吃紧降低num_frames、batch_size保持gradient_checkpointing: true降显存多卡大 batch开启deepspeed.enable: truestage: 1use_bf16: true提速省显存 验证指标由test_types指定msrvtt_1k_test、didemo_ret_test最佳权重依据best_key自动挑选调参后记得对照evaluation.k_test: 128的 Top-128 检索表现。相关文件清单模型主类modeling_internvideo2encoder.py配置解析config.pyInternVideo2Config视觉编码器internvideo2_clip_vision.py文本编码器mobile_clip.py完整调用示例demo.pyencode_vision/encode_text以文搜视频预训练权重model.safetensors交互式示例test.ipynb小结微调 InternVideo2_CLIP_S 的核心就是三步——① 用freeze_*open_vision_clip_projector控制可训练范围② 用criterion.loss_weight平衡多任务③ 用小学习率 余弦调度稳定收敛。掌握config.json这四个段你就能灵活定制属于自己的视频-文本检索模型。【免费下载链接】InternVideo2_CLIP_S项目地址: https://ai.gitcode.com/hf_mirrors/OpenGVLab/InternVideo2_CLIP_S创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进