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

CANN-昇腾NPU-模型压缩-剪枝和蒸馏怎么用

模型压缩有三板斧量化已讲、剪枝Pruning、蒸馏Distillation。剪枝去掉不重要的权重蒸馏用小模型学大模型的输出。在昇腾NPU上剪枝和蒸馏可以联合使用把 7B 模型压到 3B 精度损失 ❤️%。剪枝Pruning去掉权重矩阵中绝对值最小的连接结构化剪枝去掉整个神经元或 attention head。fromtorch_npu.contribimportprune modelAutoModelForCausalLM.from_pretrained(meta-llama/Llama-2-7b-hf,torch_dtypetorch.bfloat16,device_mapnpu:0,)# 结构化剪枝去掉 25% 的 attention headprunerprune.StructuredPruner(model,pruning_ratio0.25,# 剪掉 25% 的 headcriterionl1_norm,# 按 L1 范数排序小的去掉blocks[self_attn],# 只剪 attention)# 剪枝pruned_modelpruner.prune()# 微调恢复精度train(pruned_model,dataloader,epochs3)# 保存剪枝后的模型结构变了需要特殊格式pruner.save(llama2-7b-pruned-25pct.pt)剪枝后的模型结构变了attention head 数减少不能直接用标准 LLM 加载。需要 ATB 支持动态 head 数——目前 CANN 8.5 还不支持需要等后续版本。蒸馏Distillation大模型Teacher指导小模型Student训练importtorchimporttorch_npufromtransformersimportAutoModelForCausalLM# Teacher: Llama2-13BteacherAutoModelForCausalLM.from_pretrained(meta-llama/Llama-2-13b-hf,torch_dtypetorch.bfloat16,device_mapnpu:0,1,# 13B 需要 2 卡)# Student: Llama2-7BstudentAutoModelForCausalLM.from_pretrained(meta-llama/Llama-2-7b-hf,torch_dtypetorch.bfloat16,device_mapnpu:0,)# 蒸馏训练optimizertorch.optim.AdamW(student.parameters(),lr1e-5)forbatchindataloader:# Teacher 前向不计算梯度withtorch.no_grad():teacher_logitsteacher(batch[input_ids]).logits# Student 前向student_logitsstudent(batch[input_ids]).logits# 蒸馏损失KL 散度T2.0# 温度losstorch.nn.functional.kl_div(torch.nn.functional.log_softmax(student_logits/T,dim-1),torch.nn.functional.softmax(teacher_logits/T,dim-1),reductionbatchmean,)*(T*T)loss.backward()optimizer.step()optimizer.zero_grad()蒸馏 剪枝联合先蒸馏训练一个较大的 Student如 7B再剪枝到更小如 4B最后微调恢复精度步骤 1蒸馏13B → 7B训练 3 轮 步骤 2结构化剪枝7B → 4B去掉 40% 的 FFN 神经元 步骤 3用蒸馏损失继续微调 1 轮恢复精度Llama2-13B → 7B → 4B 的精度损失阶段WNLI (准确率)GSM8K (准确率)模型大小Teacher (13B)78.5%56.2%26GBStudent (7B蒸馏)76.8% (-1.7%)54.1% (-2.1%)14GBPruned (4B)74.2% (-4.3%)51.3% (-4.9%)8GBPruned 微调75.9% (-2.6%)53.7% (-2.5%)8GB最终 4B 模型精度损失 2.6%大小减到原来的 30%。昇腾NPU上的加速蒸馏训练需要同时跑 Teacher 和 Student前向 反向。显存需求Teacher (13B, fp16): 26GB冻结不存梯度 Student (7B, fp16): 14GB 28GB优化器 42GB 激活: 10GB 总计: 26 42 10 78GB → 需要 2 卡128GB13B Teacher 放在 2 卡 TP7B Student 放在 1 卡剩余 1 卡做梯度累积。跟量化的配合蒸馏/剪枝后的模型再做量化进一步压缩原始 7B: 14GB (fp16) → 蒸馏到 4B: 8GB (fp16) → W4A16 量化: 2.5GB (int4)2.5GB 的模型可以放到 Jetson Orin32GB 显存上跑推理延迟 50ms/token。剪枝和蒸馏是模型压缩的高阶技巧。剪枝在 CANN 8.5 上支持有限动态 head 数待支持蒸馏已经可以完整跑通。两者联合使用7B → 4B 精度损失 ❤️%。仓库在这里https://atomgit.com/cann/torch_npu
http://www.zskr.cn/news/1357261.html

相关文章:

  • 模块化AI系统重构:RL决策+KG语义+Agent调度实战
  • 三星固件下载终极指南:Bifrost跨平台工具完整使用教程
  • AI Agent开发效率提升300%的7个核心框架选择逻辑:从LangChain到AutoGen,2024企业级选型权威对比
  • 在绍兴卖黄金怎么挑地方?认准福正美,价格透明流程规范 - 上门黄金回收
  • Lovable ML平台搭建实战路径图(从零到生产就绪的5阶段演进模型)
  • 三年级下册语文第七单元作文:国宝大熊猫
  • 2026年贵阳防雷检测与防雷工程:甲级资质机构选型指南与隐患排查标准 - 优质企业观察收录
  • FastGithub终极加速指南:告别GitHub访问卡顿的完整解决方案
  • 2026济南卫生间免砸砖防水、楼顶、外墙+地下室渗漏 权威防水公司靠谱推荐(6月深度调研TOP5排行榜) - 防水百科
  • 2026荆门卫生间免砸砖防水、楼顶、外墙+地下室渗漏 权威防水公司靠谱推荐(6月深度调研TOP5排行榜) - 防水百科
  • 社交平台紧急升级AI Agent的3个信号(第2个已被抖音内部列为S级风险预警)
  • 抖音下载技术如何突破平台限制:解密douyin-downloader的架构哲学
  • 2026莆田卫生间免砸砖防水、楼顶、外墙+地下室渗漏 权威防水公司靠谱推荐(6月深度调研TOP5排行榜) - 防水百科
  • [特殊字符]LeetCode每日一题思维训练34.找元素首尾位置|拒绝无脑AC练思维(2026-5-22)
  • “SELECT *”正在拖垮你的LLM应用!Claude强制投影裁剪机制首次公开(附AST注入检测清单)
  • 【AI Agent边缘计算落地实战指南】:20年架构师亲授5大避坑法则与3类高价值场景速赢路径
  • 终极画中画扩展使用指南:如何在Chrome中一键实现多窗口视频播放
  • 在无锡卖金子选福正美就对了,几家店比下来数它最省心 - 上门黄金回收
  • 【AI Agent自主操作软件终极指南】:20年专家亲授7大落地陷阱与5步安全上线法
  • OpCore Simplify:3步搞定黑苹果EFI配置,告别复杂OpenCore设置
  • 2026芜湖卫生间免砸砖防水、楼顶、外墙+地下室渗漏 权威防水公司靠谱推荐(6月深度调研TOP5排行榜) - 防水百科
  • 2026黄石卫生间免砸砖防水、楼顶、外墙+地下室渗漏 权威防水公司靠谱推荐(6月深度调研TOP5排行榜) - 防水百科
  • FileBrowser:你的个人云端文件管家,让服务器文件管理变得简单
  • 完美介绍linux环境变量与部分命令
  • 卖金选哪里?认准福正美就对了——2026年石家庄黄金回收深扒 - 上门黄金回收
  • 文字识别怎么用?免费和付费文字识别提取工具2026全对比 - 软件小管家
  • 2026年5月爱彼官方售后网点服务深度评测:亲测与跟踪记录 - 亨得利官方服务中心
  • 告别龟速下载!用WDS+PE脚本实现局域网秒传系统镜像(附详细配置文件)
  • 公路防护钢丝绳选型指南及合规厂家技术解析 - 奔跑123
  • 2026十堰卫生间免砸砖防水、楼顶、外墙+地下室渗漏 权威防水公司靠谱推荐(6月深度调研TOP5排行榜) - 防水百科