083、LoRA与QLoRA低秩微调实战
083、LoRA与QLoRA低秩微调实战上个月给一个内部工具做指令微调,用的是Qwen-7B-Chat。一开始图省事,直接全参微调,batch size开到2,模型加载进去,optimizer state一分配,好家伙,显存直接爆了,OOM报错红闪闪。后来改成qlora,同样的数据,batch size还能开到4,训练速度反而快了,效果也没差多少。今天就把这次折腾期间踩过的坑和觉得值得记录的东西写下来。LoRA是什么,一句话说就是冻结原模型权重,在每一层注入一个低秩旁路,训练的时候只更新这些旁路矩阵。原模型还是那个原模型,但推理的时候可以把旁路矩阵合并回去,或者单独保存旁路权重做增量部署。低秩分解的本质就是假设权重更新量ΔW在低秩空间里,用A和B两个小矩阵相乘去近似,秩r设得越小,parameter越少。比如一个2048×2048的权重矩阵,全量更新是4M参数,但用r=8的LoRA,A是2048×8,B是8×2048,总共3.2万参数,差了俩数量级。QLoRA是在LoRA基础上把原模型的权重量化到4-bit,再用低秩适配器去微调。具体用了NormalFloat4量化,这是针对权重分布是零中心正态分布设计的一种分位数量化,比普通的int4能保留更多有效精度。还有双重量化,对量化常数再做一次量化,又省一点显存。分页优化器用CPU内存换GPU显存,把optimizer state的一些随机访问块挪到CPU,跑大模型的时候不容易被尖峰内存撞爆。当时我用的是HuggingFace的peft库加bitsandbytes,看起来很简单,但细节上的坑不少。先看加载模型的代码。

相关新闻

CANN 社区 SIG(特别兴趣小组)体系全解读:组织架构、运作机制与参与指南

CANN 社区 SIG(特别兴趣小组)体系全解读:组织架构、运作机制与参与指南

CANN 社区 SIG(特别兴趣小组)体系全解读:组织架构、运作机制与参与指南 【免费下载链接】community 本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息 项目地址: https://g…

2026/9/18 13:39:58 阅读更多 →
GPS驯服恒温晶振:基于TDC的时差测量与递推滤波设计

GPS驯服恒温晶振:基于TDC的时差测量与递推滤波设计

简介:面向测控系统与时间频率同步领域的工程技术人员,这篇PDF文献提出一种基于时间数字转换器(TDC)的GPS驯服恒温晶振系统设计方案,旨在用较低成本解决传统高精度时间频率设备价格昂贵、恒温晶振频率准确度难以达标等实…

2026/9/18 13:39:58 阅读更多 →
从数据到实盘:构建个人量化交易系统的完整指南

从数据到实盘:构建个人量化交易系统的完整指南

简介:一份面向股票交易者、尤其是短线交易者的系统化交易方法论PDF,旨在帮助缺乏成体系的交易者摆脱随意预测、随意操作的状态。仅含1个PDF文件,压缩包仅16KB,体量轻巧却覆盖完整。内容从交易目标、风险承受能力、交易策略、交易心…

2026/9/19 17:12:03 阅读更多 →

最新新闻

Kimi APIKey申请与CLI配置:智能体开发实战指南

Kimi APIKey申请与CLI配置:智能体开发实战指南

自打大模型API陆续开放以来,我一直在把各种各样的工作流往智能体上搬。Kimi这套APIKey申请与使用流程,我前前后后踩了不少坑,也总结出一套比较顺手的玩法。这篇文章就围绕Kimi大模型的APIKey申请、Kimi CLI命令行工具、智能体开发以及模型调用…

2026/9/19 17:11:43 阅读更多 →
Windows下npm报错EPERM:无法写入.npmrc的完整排查指南

Windows下npm报错EPERM:无法写入.npmrc的完整排查指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 17:11:43 阅读更多 →
磁盘红了又不知道谁在占地方?Krokiet 免费帮你离线揪出重复文件和相似照片

磁盘红了又不知道谁在占地方?Krokiet 免费帮你离线揪出重复文件和相似照片

磁盘红了又不知道谁在占地方?Krokiet 免费帮你离线揪出重复文件和相似照片 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka 打开"此…

2026/9/19 17:11:43 阅读更多 →
发动机缸体缸盖平面度检测:简博斯位移传感器选型与实操指南

发动机缸体缸盖平面度检测:简博斯位移传感器选型与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 17:11:43 阅读更多 →
Leaflet VideoOverlay 视频叠加层实战指南:从地图内嵌视频到自定义播放控制

Leaflet VideoOverlay 视频叠加层实战指南:从地图内嵌视频到自定义播放控制

Leaflet VideoOverlay 视频叠加层实战指南:从地图内嵌视频到自定义播放控制 【免费下载链接】Leaflet 🍃 JavaScript library for mobile-friendly interactive maps 🇺🇦 项目地址: https://gitcode.com/gh_mirrors/le/Leaflet…

2026/9/19 17:11:43 阅读更多 →
AI论文写作工具对比:千笔AI与灵感风暴的核心功能解析

AI论文写作工具对比:千笔AI与灵感风暴的核心功能解析

1. 工具定位与核心价值解析这两款AI论文辅助工具主要面向高等教育阶段的学术写作需求,特别适合专业基础相对薄弱但需要快速产出规范学术论文的用户群体。从实际教学场景观察,专科层次学生在文献综述、论文框架搭建、学术语言表达等方面普遍存在痛点&…

2026/9/19 17:10:42 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/19 3:59:36 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/19 3:53:08 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/19 4:02:43 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →