一、为什么需要压缩Llama 3.1 405B FP16 ≈ 810 GB 显存。单张 H100 仅 80 GB。 压缩目标减少参数量 / 降低精度 / 迁移知识在精度损失可控的前提下降低部署门槛。三种核心方法方法原理适用阶段剪枝移除贡献小的权重或神经元训练后 / 训练中量化降低数值精度FP32→INT8/INT4推理部署蒸馏大模型teacher指导小模型student训练训练阶段二、剪枝Pruning2.1 原理训练后的网络中存在大量接近零的权重对输出贡献可忽略。剪枝即移除这些冗余连接。两种粒度非结构化剪枝逐权重置零(小于某个阈值)矩阵变稀疏。精度损失小但稀疏矩阵在 GPU 上的加速有限。 结构化剪枝按神经元 / attention head / 通道整块移除。矩阵仍为稠密但尺寸减小GPU 加速明显但精度下降更大。2.2 代码import torch import torch.nn.utils.prune as prune fc torch.nn.Linear(512, 256) print(f原始非零参数: {(fc.weight ! 0).sum().item()}) # 非结构化L1 范数最小的 30% 权重置零 prune.l1_unstructured(fc, nameweight, amount0.3) print(f剪枝后: {(fc.weight ! 0).sum().item()}) prune.remove(fc, weight) # 固化 mask # 结构化按 L2 范数剪掉 20% 的输出神经元 fc2 torch.nn.Linear(512, 256) prune.ln_structured(fc2, nameweight, amount0.2, n2, dim1) # 迭代剪枝多次剪枝 微调 def iterative_prune(model, rate0.2, rounds3): for r in range(rounds): for m in model.modules(): if isinstance(m, torch.nn.Linear): prune.l1_unstructured(m, nameweight, amountrate) # trainer.train(epochs2) ← 每次剪枝后微调 for m in model.modules(): if isinstance(m, torch.nn.Linear): try: prune.remove(m, weight) except: pass三、量化Quantization3.1 原理将 FP32 参数映射到低比特整数核心计算q round(w / scale) zero_point scale (max - min) / (qmax - qmin)两种策略PTQ训练后量化模型训完后直接转换无需重训。GPTQ、AWQ、bitsandbytes 均属此类。QAT量化感知训练训练时模拟量化误差模型自适应。精度更高但需重训。3.2 代码import torch # ═══ PyTorch 原生动态量化INT8═══ class SimpleModel(torch.nn.Module): def __init__(self): super().__init__() self.fc1 torch.nn.Linear(512, 256) self.fc2 torch.nn.Linear(256, 128) def forward(self, x): return self.fc2(torch.relu(self.fc1(x))) model SimpleModel() quantized torch.quantization.quantize_dynamic( model, {torch.nn.Linear}, dtypetorch.qint8 ) # 权重大小约降至 1/4FP32→INT8 量化参数开销 # ═══ bitsandbytes 4-bit 量化LLM 推理用═══ from transformers import AutoModelForCausalLM, BitsAndBytesConfig bnb_config BitsAndBytesConfig( load_in_4bitTrue, bnb_4bit_quant_typenf4, # NormalFloat4 bnb_4bit_compute_dtypetorch.bfloat16, # 反量化后计算精度 bnb_4bit_use_double_quantTrue, # 量化因子也量化 ) model AutoModelForCausalLM.from_pretrained( Qwen/Qwen2.5-1.5B-Instruct, quantization_configbnb_config, device_mapauto, )四、知识蒸馏Knowledge Distillation4.1 原理用大模型teacher的 soft label 指导小模型student训练。核心在于温度参数 Tsoft_label softmax(logits / T)T 越高输出分布越平缓类别间的相对关系暗知识越明显。T1 退化为标准 softmax。蒸馏 loss 由两部分加权loss α · CrossEntropy(student, hard_label) (1-α) · KL(student/T, teacher/T) · T²4.2 代码import torch import torch.nn.functional as F from torch import nn # Teacher冻结 teacher nn.Sequential( nn.Linear(128, 256), nn.ReLU(), nn.Linear(256, 256), nn.ReLU(), nn.Linear(256, 10) ) teacher.eval() for p in teacher.parameters(): p.requires_grad False # Student目标小模型 student nn.Sequential( nn.Linear(128, 64), nn.ReLU(), nn.Linear(64, 10) ) def distillation_loss(s_logits, t_logits, labels, T4.0, alpha0.7): soft_s F.log_softmax(s_logits / T, dim1) soft_t F.softmax(t_logits / T, dim1) kd F.kl_div(soft_s, soft_t, reductionbatchmean) * (T * T) ce F.cross_entropy(s_logits, labels) return alpha * ce (1 - alpha) * kd # 训练循环 optimizer torch.optim.Adam(student.parameters(), lr1e-3) x, y torch.randn(32, 128), torch.randint(0, 10, (32,)) for epoch in range(10): optimizer.zero_grad() with torch.no_grad(): t_logits teacher(x) s_logits student(x) loss distillation_loss(s_logits, t_logits, y) loss.backward() optimizer.step() tp sum(p.numel() for p in teacher.parameters()) sp sum(p.numel() for p in student.parameters()) print(fTeacher: {tp:,} Student: {sp:,} 压缩比: {tp/sp:.1f}x)五、低秩分解Low-Rank Factorization将大矩阵分解为两个小矩阵的乘积W ∈ ℝ^(d×k) → W ≈ A B, A ∈ ℝ^(d×r), B ∈ ℝ^(r×k), r ≪ min(d,k) 参数量d×k → r×(dk)LoRA 即基于此原理——不更新原权重矩阵 W而是训练两个低秩矩阵 A 和 Bh W₀x (α/r) · BAx # W₀ 冻结只训 A 和 B六、方法对比方法压缩率精度损失推理加速是否需重训非结构化剪枝30~90%低不明显否可迭代微调结构化剪枝20~50%中明显建议微调INT8 量化~4×极低明显否INT4 量化~8×中明显否知识蒸馏由 student 规模决定中明显是低秩分解LoRA可训参数 ↓99%低推理时合并无损是七、工程建议推理部署4-bit 量化GPTQ / AWQ / bitsandbytes是成本最低的加速方案几分钟完成通常精度损失 1%。 端侧部署蒸馏得到小模型 → INT8 量化 → 移动端推理。蒸馏决定能力上限量化决定部署下限。 微调LoRA低秩分解可训参数仅占 0.1%~1%配合 4-bit 量化QLoRA可在单卡微调 70B 模型。
企业数字化 ERP 产品动态
相关推荐
万能提示词模板:AI交互与内容创作的高效指南 1. 什么是万能提示词模板?在内容创作和AI交互领域,提示词(Prompt)就像一把打开知识宝库的钥匙。我从业十年来发现,90%的创作者在使用AI工具时都卡在了"不知道该怎么问"这个环节。万能提示词模板就是经过实战… · 2026/11/12 18:36:06
RAG-MCP:检索增强生成与模块化控制平面的LLM工具调用优化方案 1. 项目概述:RAG-MCP的定位与价值RAG-MCP这个命名本身就揭示了它的技术基因——Retrieval-Augmented Generation(检索增强生成)与Modular Control Plane(模块化控制平面)的结合体。我在实际部署大语言模型(… · 2026/9/12 9:42:38
AI协同开发:Claude、Gemini与Codex的团队协作实践 1. 项目概述:AI协同开发团队的构建思路最近半年,我在三个不同规模的技术团队中尝试了AI辅助开发的新模式。这种模式的核心在于让不同AI模型各司其职,形成类似人类开发团队的协作链条。具体来说,Claude负责需求分析和澄清ÿ… · 2026/10/5 10:59:39
假电工证骗公司怎么查?官方回应来了,别再上当了 假电工证骗公司怎么查?官方回应来了,别再上当了 现在找工作, 急需特种作业证才能上岗找工作 ,尤其是电工证,几乎成了电气行业必备门槛。可偏偏有人动了歪脑筋,打着“快速拿证”的旗号, 假电工证骗公司… · 2026/11/12 18:36:02
电工证中级实操怎么考?怕考不过白交培训费?网上查询有门道 电工证中级实操怎么考?怕考不过白交培训费?网上查询有门道 怕考不过白交培训费?网上查询又怕被误导?现在考电工证中级实操的人越来越多,尤其是洛阳的工程类应届毕业生,想进工地、进厂、拿高薪,第一步就是考证。但很多人不知道,… · 2026/11/12 18:36:02
广东进网低压电工证千万别踩坑,证书过期了不知道怎么复审延期 广东进网低压电工证千万别踩坑,证书过期了不知道怎么复审延期 证书过期了不知道怎么复审延期?很多人在工作过程中都会遇到这个问题,尤其是那些已经持有【广东进网低压电工证】的电工朋友。如果你的证已经到期或者快到期了,不知道该怎么处理,那可就… · 2026/11/12 18:36:02
通辽电工证报价多久拿证?外省证书如何转过来 通辽电工证报价多久拿证?外省证书如何转过来 之前考的证在外省能不能转过来?这个问题几乎成了每个电工在考虑换证或续证时的第一反应,特别是像你在通辽这类地方,很多电工的证书可能是在外地考试拿到的。现在你最关心的不仅是通辽电工证报价,还有多久拿证… · 2026/11/12 18:36:02
眉山电工证培训电话千万别踩坑,急需特种作业证才能上岗找工作 眉山电工证培训电话千万别踩坑,急需特种作业证才能上岗找工作 你是不是也和我一样,刚毕业或者想转行找一份稳定的工作,但发现很多岗位都写着“必须持有特种作业操作证”?电工证就是其中之一,而你可能正为“眉山电工证培训电话”四处打听,生怕走错一步,… · 2026/11/12 18:36:02
安康电工证办理地点最新政策解读:外省证能转吗?考前押题怎么用? 安康电工证办理地点最新政策解读:外省证能转吗?考前押题怎么用? 之前考的证在外省能不能转过来?这个问题,相信很多正在准备考电工证或者已经持证但准备换城市发展的朋友都问过。特别是在安康地区,由于本地政策和考试流程相对严格,不少外地人会考虑是否… · 2026/11/12 18:35:02
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/12 14:09:01
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/11 19:07:25
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/11 17:14:54
电工证设年审有效期多久官方回应来了,工地太忙根本没时间复习考试 电工证设年审有效期多久官方回应来了,工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,这是很多一线电工、焊工、高处作业人员的真实写照。尤其是像你这样刚毕业的鹤壁工程类毕业生,一边要找工作,一边要考证,时间紧张,复习效率低。但你可能不知… · 2026/11/12 0:00:56
新乡电工证实操怕挂科?电工作业动漫图+报考避坑全解析 新乡电工证实操怕挂科?电工作业动漫图+报考避坑全解析 实操考试心里没底怕挂科?你不是一个人。新乡的水利工程从业者,很多在报考电工证的时候都担心自己操作不熟练、考试不通过, 千万别踩坑 ,选对资料和方法真的能提高通过率。… · 2026/11/12 0:00:56
网电工证千万别踩坑:实操考试心里没底怕挂科怎么破? 网电工证千万别踩坑:实操考试心里没底怕挂科怎么破? 实操考试心里没底怕挂科,这是很多准备报考【网电工证】的学员最真实的感受。尤其是在高压电工、低压电工等工种上,操作环节的容错率极低,一旦失误就可能直接被判定不合格。很多人因为担心挂科而放弃考… · 2026/11/12 0:00:56
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/12 4:35:34
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/12 4:36:01
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/11 17:15:20