当前位置: 首页 > news >正文

如何冻结llava的参数,在训练时不动

思路很简单:把 LLaVA 的所有参数 requires_grad=False,只训练你自己的模块(比如 mask 头)。下面给出几种常见写法,任选其一。

  1. 冻结整个 LLaVA(vision + projector + language model)
def freeze_llava(llava):for p in llava.parameters():p.requires_grad = False# 你的封装里(以 XVQAModel 为例)
model = XVQAModel(llava_model=llava, ...)
freeze_llava(model.llava)# 只把需要训练的模块交给优化器(例如 mask 头)
optimizer = torch.optim.AdamW(params=[p for p in model.mask_head_deocder.parameters() if p.requires_grad],lr=1e-4
)

记得优化器只传入可训练参数,否则会把被冻结的也塞进去(虽然不会更新,但浪费时间/显存)。

  1. 选择性冻结(只留 projector 或某些层可训)

只训练 mm_projector(常见微调方式):

def freeze_all_but_projector(llava):for p in llava.parameters():p.requires_grad = Falsefor p in llava.mm_projector.parameters():p.requires_grad = Truefreeze_all_but_projector(model.llava)
optimizer = torch.optim.AdamW(list(model.mask_head_deocder.parameters()) + list(model.llava.mm_projector.parameters()),lr=1e-4
)

只训练语言模型最后 N 层(举例 N=2):

def freeze_all_but_last_n_transformer_blocks(llava, n=2):for p in llava.parameters():p.requires_grad = False# LLaVA 的 LLM 一般在 llava.model.layersfor blk in llava.model.layers[-n:]:for p in blk.parameters():p.requires_grad = Truefreeze_all_but_last_n_transformer_blocks(model.llava, n=2)

只训练视觉塔(不常见):

def freeze_all_but_vision(llava):for p in llava.parameters():p.requires_grad = Falsefor p in llava.vision_tower.parameters():p.requires_grad = True
  1. 冻结后的小检查
def count_trainable_params(m):return sum(p.numel() for p in m.parameters() if p.requires_grad)print("trainable in XVQAModel:", count_trainable_params(model))
print("trainable in LLaVA:", count_trainable_params(model.llava))
print("trainable in mask head:", count_trainable_params(model.mask_head_deocder))
http://www.gsyq.cn/news/42337.html

相关文章:

  • 解决CentOS 7中NAT模式无法连接网络
  • Linux 音频管道测试
  • 2025 年 11 月冷库板/聚氨酯冷库板/机制板, 冷库门, 冷库工程/冷库集成厂家推荐排行榜:专业制造与高效保温系统解决方案
  • Codeforces Global Round 30 (Div. 1 + Div. 2)
  • 【esp32 学习笔记】采用 millis() 函数的非阻塞循环的写法
  • 【ESP32 进阶】非阻塞循环的写法
  • 2025年11月北京房产纠纷律师排名分析:客观评价与实务参考
  • 2025年11月学生平板品牌评测榜:从双师1对1到全科AI精准学横向对比
  • 2025年11月智能学习机品牌对比榜:新课标同步与护眼大屏机型排名
  • 2025年11月学习机品牌推荐榜:AI精准学机型口碑对比评测
  • 2025年11月干皮精华产品精选榜:五款干敏肌适用精华对比
  • 2025年11月学习机品牌推荐:新课标同步榜评测盘点
  • 2025年11月黄褐斑改善产品评价榜:五款临床级单品数据解析
  • 2025年11月适合小学生的学习机推荐榜:五强参数与体验全解析
  • 2025年11月婚礼前美白产品推荐榜:准新娘淡斑评价合集
  • 2025年11月色斑淡化产品推荐榜:五款精华临床数据对比与评价
  • 2025年11月色斑淡化产品推荐榜:临床数据对比五款淡斑精华表现
  • 2025强网拟态 -- CTF方向 -- Crypto
  • 2025.11.7 月考游记 - Amy
  • 每日反思(2025_11_05)
  • CCPC济南站F题目的思考
  • 新学期每日总结(第21天)
  • [AI/LLM] 解读 Qwen 系列大模型
  • Swift 和 Tesseract OCR 解析验证码
  • 牛顿迭代法:用几何直觉理解方程求根
  • What is difference between credit memo and subsequent credit in SAP
  • 题解:AT_abc225_h [ABC225H] Social Distance 2
  • 数学分析A 定理简单整理(部分)
  • 第3章 多线程服务器的适用场合与常用编程模型 - 教程
  • 表相关操作