恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

InstructGLM 源码解析:lora_utils 中两种 LoRA 插入方案,你该选哪种?

  • 首页
  • 资讯中心
  • /
  • InstructGLM 源码解析:lora_utils 中两种 LoRA 插入方案,你该选哪种?

相关资讯

告别手动配图:baoyu-skills 开源 AI 技能集如何一键跑通内容创作全流程 2026/8/17 22:32:40
制造业审批提效实践:用JVS流程引擎3分钟配置可热发布的审批流(附界面操作步骤) 2026/8/17 22:32:40
开源情感机器人Reachy Mini快速上手:从零组装到AI对话的桌面机器人开发全攻略 2026/8/17 22:32:40

最新资讯

iperf3 Windows版终极指南:5分钟测出网络真实上限,4个版本这样选
猫抓插件资源嗅探实战:三步搞定网页视频批量下载与M3U8合并
League Akari 实用上手指南:本地化英雄联盟效率工具,自动选人、战绩分析与日常自动化三合一
前端性能自动诊断与性能预算管理:适用边界先讲清
Vite 构建链路优化与大型项目工程治理:这些反模式最好早点避开
Flowable 定时器与边界事件:超时提醒与自动处理的终极实现技巧

今日推荐

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题
LabVIEW异步调用实战:解决界面卡顿与并行处理难题
飞书局域网文件传输实战:3种方案实现高速点对点传输

本周热门

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码
【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码
隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

InstructGLM 源码解析:lora_utils 中两种 LoRA 插入方案,你该选哪种?

发布时间:2026/8/17 22:37:41
InstructGLM 源码解析:lora_utils 中两种 LoRA 插入方案,你该选哪种? InstructGLM 源码解析lora_utils 中两种 LoRA 插入方案你该选哪种【免费下载链接】InstructGLMChatGLM-6B 指令学习|指令数据|Instruct项目地址: https://gitcode.com/gh_mirrors/ins/InstructGLM很多刚接触大模型微调的开发者都会遇到同一个困惑InstructGLM 源码解析时发现同一个项目里居然提供了两套不同的LoRA 插入方案它们都位于lora_utils/insert_lora.py中。一套基于 loralib 库一套基于 peft 库。到底哪套更适合自己这篇文章用最通俗的方式帮你一次看懂并给出可直接照抄的选择建议。InstructGLM 是什么ChatGLM-6B 指令微调项目速览InstructGLM 是一个基于ChatGLM-6B LoRA的开源指令微调项目核心目标就是用低成本的方式让 ChatGLM-6B 学会听指令。项目配套了完整的训练管线数据准备支持 Alpaca 52k 英文指令数据、BELLE 百万级中文指令数据训练方式支持单卡 LoRA 微调train_lora.py和多卡 DeepSpeed 微调train_deepspeed.py推理演示提供了多个 gradio 网页 demoweb_demo.py、web_demo_alpaca_lora.py、web_demo_belle_lora.py而所有 LoRA 注入逻辑都集中在lora_utils/insert_lora.py这一个文件里这正好是我们源码解析的主角。LoRA 插入方案一get_lora_model_loralibloralib 合并版第一种方案是get_lora_model_loralib(model, lora_config)它的核心思路是把注意力层中原本融合的 QKV 线性层整体替换为 loralib 的 MergedLinear。ChatGLM-6B 原版模型见old_files/modeling_chatglm.py里query_key_value是一个把 Q、K、V 合并在一起的大线性层输入维度为hidden_size输出维度为3 * hidden_size。这套方案不拆分它而是直接在外面套上 loralib 的低秩矩阵因此优点改动最小替换后即插即用优点参数结构保持原样权重加载/保存更直观特点通过lora.mark_only_lora_as_trainable(model)冻结全部原始参数只训练新增的低秩分支它支持配置r秩、lora_alpha缩放系数、lora_dropout丢弃率三个关键超参并会打印可训练参数量方便你直观看到只微调了百分之几。LoRA 插入方案二get_lora_modelpeft 拆分版第二种方案是get_lora_model(model, lora_config)思路截然相反先把融合的 QKV 大线性层拆成 q、k、v 三个独立线性层再对每个层单独挂 LoRA。具体流程是用文件里的QKV_layer类把权重按out_features // 3切成三段分别初始化linear_q、linear_k、linear_v通过peft.tuners.lora.LoraModel对每个拆分后的层注入 LoRA用enable_lora配置如[True, True, True]灵活决定哪些头参与微调同样调用mark_only_lora_as_trainable冻结原参数这套方案的灵活性更高你可以只对 Q、K、V 中的任意组合做微调同时它走的是 HuggingFace peft 标准生态后续能更方便地与 transformers 全家桶集成。两种 LoRA 插入方案核心对比对比维度方案一loralib 合并版方案二peft 拆分版实现函数get_lora_model_loralibget_lora_model依赖库loralibpeftQKV 处理保持融合整体替换为 MergedLinear拆分为 q/k/v 三个独立层灵活度中等整体注入高可用enable_lora选择性注入生态兼容轻量、独立贴近 HuggingFace 标准生态典型使用位置适合快速原型验证train_deepspeed.py、web_demo_belle_lora.py均采用值得一提的是项目中的多卡 DeepSpeed 训练脚本train_deepspeed.py和基于 BELLE 数据的 demo 都选择了方案二这也侧面说明 peft 拆分版在项目实战中的主流地位。我该选哪种 LoRA 插入方案三步决策指南选型不用纠结按下面三步走即可追求省心、快速跑通选方案一loralib 合并版。它只改一层、代码量最少适合第一次接触 LoRA、想尽快看到微调效果的初学者需要精细控制、做消融实验选方案二peft 拆分版。enable_lora参数让你能单独对比只微调 V 头和QKV 全微调的差异要上多卡、用 DeepSpeed 加速直接用方案二。参考train_deepspeed.py中r32、lora_alpha32、enable_lora[True, True, True]的标准配置配合config/default_config.yaml即可另外提醒一句如果你想完全跳过手写注入逻辑也可以像web_demo_alpaca_lora.py那样直接用get_peft_modelLoraConfigr8、alpha32那是项目里更官方的第三条路径。微调效果实测数据与 LoRA 权重的可视化展示选择哪套方案最终都要看效果。项目在output/目录下提供了基于不同数据微调好的 LoRA 权重如output/alpaca/chatglm-lora.pt下面两张图分别是 Alpaca 52k 和 BELLE 100 万数据的微调效果此外项目还对比过是否修改 modeling_chatglm对指令生成效果的影响。同样的生成 20 个仙侠风、武侠风四字词语任务修改前与修改后的表现差异非常直观常见问题 FAQQ1两套方案保存的权重能互相加载吗不能直接通用。因为两者注入后的参数名和结构不同建议训练、推理全程保持同一方案。项目里演示 demo 加载权重时使用的就是与训练一致的注入逻辑。Q2enable_lora是什么意思它控制 q/k/v 三个头是否参与 LoRA 注入[True, True, True]表示全部参与这是方案二最灵活的卖点。Q3LoRA 真的能省多少显存项目训练脚本打印的可训练参数占比通常在个位数百分比以内这也是 LoRA 能在消费级显卡上微调 6B 级模型的核心原因。总结InstructGLM 源码解析到这里结论已经很清晰追求简单选 loralib 合并版追求灵活与生态选 peft 拆分版多卡训练直接用 DeepSpeed peft 组合。无论哪套核心都在lora_utils/insert_lora.py这一个文件里读懂了它你就掌握了 ChatGLM-6B LoRA 微调的关键一环。希望这篇对比能帮你少踩坑快速跑通自己的第一个指令微调项目【免费下载链接】InstructGLMChatGLM-6B 指令学习|指令数据|Instruct项目地址: https://gitcode.com/gh_mirrors/ins/InstructGLM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号