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

QLoRA:4-bit 量化微调的完整链路

本文基于昇腾CANN和昇腾NPU围绕 cann-recipes-train 仓库的相关技术展开。QLoRA 不是简单的 LoRA 量化。它在 LoRA 的冻结权重上做了 NF4 量化同时保留了 LoRA 适配器的 FP16 精度。CANN 上部署 QLoRA 模型时NF4 的反量化要在 NPU 上做不能让 CPU 插一手。NF4 量化怎么把权重压到 4-bit# NF4 量化——正态分布的 4-bit 量化importtorchimportnumpyasnpclassNF4Quantizer: NF4: Normal Float 4——值分布按正态分布的百分位分桶 16 个桶每个桶有相同概率正态下 所以值密集的地方桶多稀疏的地方桶少 # NF4 的 16 个量化值——从标准正态分布 CDF 的等间隔百分位算出NF4_LEVELSnp.array([-1.0,-0.6962,-0.5251,-0.3926,-0.2779,-0.1728,-0.0739,0.0000,0.0739,0.1728,0.2779,0.3926,0.5251,0.6962,1.0000,1.5000],dtypenp.float32)staticmethoddefquantize(weight_fp16): weight_fp16: [out_dim, in_dim] FP16 权重 返回: uint8 数组每个 uint8 装 2 个 4-bit 值 # 对每个 1D 行做归一化——QLoRA 是逐行量化的shapeweight_fp16.shape w_flatweight_fp16.flatten()# 算每行的 absmax——用来归一化到 [-1, 1]row_maxweight_fp16.abs().max(dim-1,keepdimTrue).values# [out_dim, 1]row_maxrow_max.clamp(min1e-12)# 归一化w_normalizedweight_fp16/row_max# 值范围 [-1, 1]# 映射到离最近的 NF4 levellevelstorch.tensor(NF4Quantizer.NF4_LEVELS,deviceweight_fp16.device)indicestorch.bucketize(w_normalized,levels)-1indicesindices.clamp(0,15).to(torch.uint8)# 压缩两个 4-bit 塞进一个 uint8packedindices[...,::2]|(indices[...,1::2]4)returnpacked.cpu().numpy(),row_max.cpu().numpy()staticmethoddefdequantize(packed,row_max,shape): packed: 量化后的 uint8 数组 row_max: 每行的 absmax shape: 原始 [out_dim, in_dim] levelstorch.tensor(NF4Quantizer.NF4_LEVELS)# 拆包lopacked0x0Fhi(packed4)0x0F# 交换使 shape 正确indicestorch.stack([lo,hi],dim-1).reshape(shape)# 反量化level[indices] * row_maxw_deqlevels[indices]*row_max.unsqueeze(-1)returnw_deq.to(torch.float16)NF4 把 16-bit 权重压到 4-bit——省 4 倍显存。LLaMA-70B 从 140GB 压到 35GB一张 Ascend 91064GB就能装下。QLoRA 的前向流程# QLoRA 的一层 Forward——冻结层反量化 LoRA 分支 FP16classQLoRALayer(torch.nn.Module):def__init__(self,base_weight_fp16,lora_A,lora_B,nf4_packed,row_max,rank8,alpha16):super().__init__()# 冻结权重——以 NF4 格式存储不参与梯度self.register_buffer(nf4_weight,nf4_packed)self.register_buffer(row_max,row_max)self.out_dim,self.in_dimbase_weight_fp16.shape# LoRA 适配器——FP16参与训练self.lora_Alora_A# [rank, in_dim]self.lora_Blora_B# [out_dim, rank]self.scalealpha/rank# 冻结的原始权重只在 Forward 时反量化# 不存反量化版本——省显存defforward(self,x):# Step 1: NF4 反量化——每次 Forward 都做# 实现里会用融合算子省掉搬来搬去w_deqNF4Quantizer.dequantize(self.nf4_weight,self.row_max,(self.out_dim,self.in_dim))# Step 2: 原始路径——用反量化后的权重base_outtorch.nn.functional.linear(x,w_deq)# Step 3: LoRA 分支——保持 FP16 精度lora_outself.lora_B(self.lora_A(x))*self.scalereturnbase_outlora_out# Forward 做了 1 次反量化 1 次 FP16 MatMul 2 次小 MatMul# 反量化的开销约 0.03ms——比读显存省的时间划算CANN 上的 NF4 融合算子// Ascend C 实现的 NF4 反量化 MatMul 融合——省掉反量化写回classNF4MatMulKernel:publicAscendC::Kernel{__aicore__inlinevoidProcess()override{// Step 1: 加载量化权重——4-bit每次 Tile 读 256 个 NF4 值// 256 个 NF4 值 128 bytes比 FP16 版本的 512 bytes 小 4 倍uint8_t*nf4_ptrgm_nf4tile_offset;// Step 2: 在 L1 上做反量化// 按 level 表查表——用 L1 的 Lookup Table 指令floatlevel_table[16]{-1.0,-0.6962,...,1.5};// 拆包两个 4-bit 取出来// 查表生成 FP16 值——直接在 Vector Unit 上做float16_t deq_values[256];for(inti0;i256;i2){uint8_tbytenf4_ptr[i/2];deq_values[i]level_table[byte0x0F];deq_values[i1]level_table[(byte4)0x0F];}// 乘 row_max——恢复实际值范围for(intj0;j256;j){deq_values[j]*row_max_val;}// Step 3: 反量化完的数据直接进 Cube——不写回 DDR// 省掉 dequantize → DDR → MatMul 的两趟搬运AscendC::MatMul(output,input_local,deq_values,AscendC::CUBE_MATRIX_TYPE::NORMAL);}};QLoRA 在显存受限场景下特别值。LLaMA-70B 用 QLoRA 微调时单卡 Ascend 910 就能跑——显存占用约 42GB35GB 量化权重 5GB LoRA 2GB 中间 Tensor。微调一个下游任务只需 6 小时跟全参微调要 4 卡跑 3 天比省了 40 倍资源。参考仓库QLoRA 微调示例TorchAir 量化微调支持pyasc 量化工具

相关文章:

QLoRA:4-bit 量化微调的完整链路

本文基于昇腾CANN和昇腾NPU,围绕 cann-recipes-train 仓库的相关技术展开。 QLoRA 不是简单的 LoRA 量化。它在 LoRA 的冻结权重上做了 NF4 量化,同时保留了 LoRA 适配器的 FP16 精度。CANN 上部署 QLoRA 模型时,NF4 的反量化要在 NPU 上做&…...

LoRA 部署:微调后的模型怎么上线

本文基于昇腾CANN和昇腾NPU,围绕 cann-recipes-infer 仓库的相关技术展开。 LoRA 训练完出来两个东西——基础模型权重不动,外加一个小 rank 矩阵。部署时你不能直接丢原始权重,LoRA 矩阵要合并进去或者通过算子注入。CANN 上 LoRA 部署有两种…...

MQA:全部 Query 共享一套 Key-Value

本文基于昇腾CANN和昇腾NPU,围绕 ops-transformer 仓库的相关技术展开。 MQA(Multi-Query Attention)走到 GQA 的极端——所有 Query Head 共享同一组 K、V。8 个 Head 还是 32 个 Head,都只存一份。这对 KV Cache 的压力最小&…...

GQA:多查少算的 Attention 头组合

本文基于昇腾CANN和昇腾NPU,围绕 ops-transformer 仓库的相关技术展开。 MHA(Multi-Head Attention)每个 Head 一套 QKV——8 个 Head 就是 8 组。MQA 省过头了——8 个 Head 共享 K、V。GQA(Grouped Query Attention)…...

法律科技的发展脉络:从数字化管理到AI辅助办案的演进路径

摘要 执业15年,我经历了律师行业工具变迁的三个阶段:纸质时代、本地软件时代、云端时代。现在正站在第四个阶段的起点——AI辅助办案。这篇文章回顾法律科技的发展脉络,分析每个阶段的特征和局限性,以及正在发生的变化趋势。 第一…...

紧急!2024年Q2最新:Claude 3.5 Sonnet对LaTeX/Markdown混合文档的支持边界实测报告(附绕过限制的3种军工级方案)

更多请点击: https://kaifayun.com 第一章:Claude 3.5 Sonnet对LaTeX/Markdown混合文档的原生支持能力全景评估 Claude 3.5 Sonnet 在处理 LaTeX 与 Markdown 混合文档时展现出显著增强的解析鲁棒性与语义理解深度,尤其在数学公式嵌入、交叉…...

不会 CSS 也能做出惊艳 PPT!Frontend Slides这个开源 Claude Code 技能让 AI 帮你生成 12 种风格演示文稿,告别千篇一律的紫渐变

不会 CSS 也能做出惊艳 PPT!Frontend Slides这个开源 Claude Code 技能让 AI 帮你生成 12 种风格演示文稿,告别千篇一律的紫渐变 💡 每次做 PPT 都在 Powerpoint 里拖来拖去,最后做出来还是那个味儿?Frontend Slides 让…...

企业AI编程效率提升:2026最新权威AI编程工具必看

企业AI编程效率提升:2026最新权威AI编程工具必看开篇“企业研发团队效率低下,核心项目交付周期长,如何通过AI编程工具缩短开发周期、提升ROI?”“企业部署AI编程工具,如何兼顾安全合规、代码质量与开发效率&#xff0c…...

工业视觉开发的基石:GenICam 简介

在工业自动化和机器视觉领域,“碎片化”曾是开发者面临的最大痛点。不同品牌的相机使用不同的通信协议、参数定义和 SDK。为了获取一张图像或调节曝光时间,开发者往往需要学习多个厂商的驱动接口。而 GenICam (Generic Interface for Cameras) 标准的出现…...

AI答案优化效果可以靠哪些第三方数据验证?

先给结论:AI答案优化效果要做三层交叉验证AI 答案优化、GEO 服务的效果,不应只听服务商自述,也不适合只靠单张 AI 回答截图判断。更稳妥的做法,是用三层数据交叉验证:AI回答层数据:看品牌是否被提及、位置是…...

AI Agent在仓储分拣中的真实效能验证(2023-2024全国12家仓配中心压测报告首次公开)

更多请点击: https://intelliparadigm.com 第一章:AI Agent物流行业应用 AI Agent正深度重构物流行业的决策、执行与协同范式。区别于传统规则引擎或单一预测模型,AI Agent具备感知环境、自主规划、多步推理与动态反馈能力,可嵌入…...

Lindy流程冷启动死亡陷阱(97%新手踩中的第3个环节):实时检测+自动回滚机制详解

更多请点击: https://kaifayun.com 第一章:Lindy流程冷启动死亡陷阱的底层认知 Lindy效应在软件工程中并非仅适用于“越老越可靠”的技术寿命预测,它更深层地揭示了一种反直觉的系统演化规律:一个尚未被时间验证的流程&#xff0…...

Lindy流程自动化效果衰减真相:3年追踪数据显示,未做持续治理的企业6个月后效率回落至基线112%

更多请点击: https://codechina.net 第一章:Lindy流程自动化效果衰减真相:3年追踪数据显示,未做持续治理的企业6个月后效率回落至基线112% Lindy效应在流程自动化领域呈现显著反向特征:系统上线初期的效率跃升并非稳态…...

【行业首发】Midjourney v6.2水动力学渲染白皮书:基于流体物理模型的prompt工程重构(附NASA水波频谱对照表)

更多请点击: https://codechina.net 第一章:【行业首发】Midjourney v6.2水动力学渲染白皮书:基于流体物理模型的prompt工程重构(附NASA水波频谱对照表) Midjourney v6.2首次引入隐式流体物理引擎(Implici…...

Taotoken 的 Token Plan 套餐如何帮助我们预测并锁定开发成本

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken 的 Token Plan 套餐如何帮助我们预测并锁定开发成本 作为项目管理者,确保研发预算的可预测性是保障项目平稳推…...

Anthropic 万亿估值启示录:战略聚焦如何击败全面扩张

【摘要】深入分析 Anthropic 从初创到估值破万亿的爆发式增长路径,揭示其在 AI 行业后来居上的核心密码。从战略聚焦与组织文化两个维度,拆解技术路线选择、人才管理、治理结构等关键决策,为 AI 时代的技术团队与企业管理者提供可借鉴的实践框…...

在微服务架构中集成Taotoken实现智能客服路由与成本控制

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在微服务架构中集成Taotoken实现智能客服路由与成本控制 1. 场景与挑战 在电商这类业务场景中,智能客服能力通常被拆分…...

论文写到一半卡壳了?师兄推荐这几个AI写作辅助软件

写论文最怕的就是卡壳,尤其是当思路混乱、资料繁杂、格式要求又高时,很容易陷入停滞。其实,论文写作的关键不在于苦熬,而在于用对工具、走对流程——不少资深教授都建议学生提前布局,借助 AI 工具提升效率。比如千笔AI…...

如何快速清理Windows右键菜单:终极管理工具完整指南

如何快速清理Windows右键菜单:终极管理工具完整指南 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是不是也遇到过这样的烦恼?安装的软…...

2026跨境实测|主流国产AI视频生成工具图生视频功能深度测评

在TikTok、Shopee、亚马逊短视频带货常态化的2026年,跨境商家的核心痛点早已不是不会拍视频,而是量产难、成本高、画面违和、适配海外场景差。传统真人拍摄、外包剪辑模式,不仅耗时耗力,还难以跟上跨境平台的流量更新节奏。而AI视…...

华实展厅出圈!大自然标识匠心打造,目视化呈现基建巨头的实力底气

当建筑的厚重与视觉的美感碰撞,当企业的成长与科技的便捷融合,华实建设集团企业展厅——由专业的长沙市大自然标识设计制作公司倾力打造,不仅是品牌形象的“窗口”,更是实力与文化的“立体名片”。长沙市大自然标识设计制作有限公…...

2025年AI数字人行业现状:全国超99万家企业涌入,真正能落地的不到一成

当生成式AI的浪潮席卷各行各业,AI数字人成为最先跑出商业化落地速度的细分赛道。然而,在全国超99万家相关企业蜂拥而入的热闹背后,一个残酷的现实正在显现:绝大多数所谓的"AI数字人"不过是披着科技外衣的"会动的照…...

FactoryBluePrints:戴森球计划终极蓝图仓库,5步打造高效自动化工厂

FactoryBluePrints:戴森球计划终极蓝图仓库,5步打造高效自动化工厂 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 你是否曾在戴森球计划中花费数小…...

3分钟搞定Windows 11系统优化:Win11Debloat开源工具完整指南

3分钟搞定Windows 11系统优化:Win11Debloat开源工具完整指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter …...

抖音小店搜索排名规则及优化方法

一、抖音商城搜索排名规则1.商品相关性:商品标题、关键词与用户搜索词的匹配程度是重要因素。精准匹配的商品会在搜索结果中更靠前展示。例如,用户搜索"夏季连衣裙”,标题中明确包含该关键词且商品属性也相符的连衣裙,会优先被展示。商品…...

观测 TaoToken 在多模型间自动路由的稳定性与响应速度

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观测 TaoToken 在多模型间自动路由的稳定性与响应速度 在构建依赖大模型能力的应用时,服务的稳定性和响应速度是开发者…...

将Taotoken作为统一网关整合到企业现有微服务架构中的设计考量

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 将Taotoken作为统一网关整合到企业现有微服务架构中的设计考量 当企业内部多个业务线或团队开始独立探索和应用大模型能力时&#…...

3步快速搭建微信小程序商城:巴爷商城开源项目实战指南

3步快速搭建微信小程序商城:巴爷商城开源项目实战指南 【免费下载链接】wechat_mall_applet A real mall wechat applet 项目地址: https://gitcode.com/gh_mirrors/we/wechat_mall_applet 还在为开发微信小程序商城而烦恼吗?🤔 今天我…...

使用OpenClaw连接Taotoken配置Agent工作流的具体步骤

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用OpenClaw连接Taotoken配置Agent工作流的具体步骤 OpenClaw是一款流行的AI Agent开发框架,它允许开发者构建和运行能…...

通过Taotoken Token Plan套餐降低长期项目成本的观察

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken Token Plan套餐降低长期项目成本的观察 对于需要长期、稳定调用大模型API的项目而言,成本的可预测性和可…...