LLM蒸馏技术

LLM蒸馏技术2026实践

为什么LLM需要蒸馏? 训练一个超大模型(如700B)然后部署它,成本极其高昂。知识蒸馏(Knowledge Distillation)提供了一条务实的路径:先用大模型(Teacher)的输出作为信号训练小模型(Student),让小模型在更小参数量下接近大模型的性能。 2026年,蒸馏已经成为大模型工程化的标准环节。DeepSeek-V3、Qwen-3等模型都大量使用了蒸馏技术,将超大模型的能力迁移到可部署的尺寸。 蒸馏的理论基础 软标签的信息优势 硬标签(one-hot)只包含"正确答案"的信息,而软标签(softmax概率分布)还包含"错误答案之间的关系"。例如,在分类"猫"时,软标签可能同时给出"狗"的概率0.1——这告诉Student模型"猫和狗在某种特征上是相似的"。 这种"暗知识"(Dark Knowledge)是蒸馏有效性的核心。Teacher模型的输出分布包含了其学到的类别间关系,这些信息在硬标签中完全丢失。 温度参数 温度T控制软标签的"软度": soft_label = softmax(logits / T) 高温使分布更平滑(暴露更多暗知识),低温使分布更尖锐(接近one-hot)。实践中T通常设置为2-10。 LLM蒸馏的主要方法 1. Logit级蒸馏 最经典的蒸馏方式——Student直接学习Teacher的输出概率分布: def logit_distillation_loss(student_logits, teacher_logits, labels, T=4.0, alpha=0.7): """ student_logits, teacher_logits: [batch, seq_len, vocab_size] labels: [batch, seq_len] T: 温度参数 alpha: 蒸馏损失权重 """ # 蒸馏损失:KL散度 student_log_probs = F.log_softmax(student_logits / T, dim=-1) teacher_probs = F.softmax(teacher_logits / T, dim=-1) distill_loss = F.kl_div( student_log_probs.reshape(-1, student_logits.size(-1)), teacher_probs.reshape(-1, teacher_logits.size(-1)), reduction='batchmean' ) * (T ** 2) # 梯度缩放补偿 # 任务损失:交叉熵 task_loss = F.cross_entropy( student_logits.reshape(-1, student_logits.size(-1)), labels.reshape(-1) ) return alpha * distill_loss + (1 - alpha) * task_loss 关键点: KL散度损失需要乘以 T² 来补偿温度对梯度的影响 alpha控制蒸馏与任务学习的平衡 需要Teacher和Student的词表对齐 2. 序列级蒸馏(Sequence-Level KD) 不让Student逐token模仿Teacher,而是让Student学习Teacher生成的完整序列。具体做法是先用Teacher生成大量数据,然后用这些数据训练Student: ...

2026-07-02 · 3 min · 438 words · 硅基 AGI 探索者
边缘部署模型

边缘部署模型选型:让AI在终端跑起来

引言 随着AI应用场景的不断扩展,越来越多的需求要求模型在终端设备上运行——手机、平板、车载系统、IoT设备甚至可穿戴设备。边缘部署不仅能解决延迟和隐私问题,还能大幅降低云端成本。2026年,端侧AI模型已经从"能跑"进化到"好用"的阶段。本文将为你提供全面的边缘部署选型指南。 边缘部署的价值与挑战 核心价值 低延迟:无需网络往返,毫秒级响应 隐私保护:数据不离开设备 离线可用:无网络环境下正常运行 成本低:无API调用费用 个性化:模型可以根据用户数据本地微调 主要挑战 算力受限:移动设备的计算能力有限 内存限制:手机通常只有8-16GB内存 功耗约束:持续推理会消耗电池 存储空间:模型需要适配设备存储 散热问题:长时间运行会导致过热 边缘设备分类 手机端 平台 AI算力(TOPS) 可用内存 推荐模型规模 iPhone 16 Pro 35 8-12GB ≤4B (INT4) 骁龙8 Gen4 45 12-16GB ≤7B (INT4) 天玑9500 40 12-16GB ≤7B (INT4) 边缘计算设备 设备 AI算力(TOPS) 内存 推荐模型规模 Jetson Orin Nano 40 8GB ≤7B (INT4) Jetson Orin NX 100 16GB ≤13B (INT4) 树莓派5 ~5 8GB ≤3B (INT4) RK3588 6 16GB ≤3B (INT4) 车载平台 平台 AI算力(TOPS) 内存 推荐模型规模 NVIDIA Drive Thor 1000 64GB ≤34B (INT4) 高通SA8650 48 32GB ≤13B (INT4) 地平线J6 128 32GB ≤13B (INT4) 端侧模型选型 1-3B级别:超轻量 适用场景:简单对话、文本分类、基础问答 ...

2026-07-02 · 3 min · 436 words · 硅基 AGI 探索者
模型量化影响

量化对性能影响2026实测:精度与效率的平衡术

引言 模型量化是LLM部署中最重要的优化手段之一。通过降低模型参数的精度,可以大幅减少显存占用和提升推理速度。但量化也带来了精度损失的代价。2026年,量化技术已经从简单的INT8发展到了INT4、INT2甚至更低位宽,新的量化方法如GPTQ、AWQ、GGUF等层出不穷。本文将通过实测数据揭示量化对性能的真实影响。 量化方法概述 主流量化方案 方法 位宽 特点 适用场景 FP16 16bit 基准精度 GPU推理基准 BF16 16bit 动态范围大 训练+推理 INT8 8bit 精度损失小 生产环境 INT4 (GPTQ) 4bit 精度损失中等 消费级GPU INT4 (AWQ) 4bit 激活感知 生产环境 INT4 (GGUF) 4bit CPU友好 CPU推理 INT3 3bit 精度损失大 极致压缩 INT2 2bit 实验性 研究用途 量化方法对比 GPTQ: 基于二阶信息的量化,逐层校准,适合GPU推理 AWQ: 激活感知量化,保护重要权重,精度损失更小 GGUF: llama.cpp格式,支持CPU/GPU混合推理 SmoothQuant: 平滑激活值分布,适合INT8量化 QLoRA: 量化+LoRA微调,训练时量化 实测模型 本次测试使用以下模型: Llama 4 70B — Meta开源 Qwen 3 72B — 阿里开源 GLM-5 32B — 智谱开源 DeepSeek-V4 671B (MoE) — 深度求索开源 Mistral 7B v0.4 — Mistral AI 精度损失实测 MMLU-Pro 模型 FP16 INT8 INT4(GPTQ) INT4(AWQ) INT3 Llama 4 70B 82.1% 81.3%(-0.8) 78.5%(-3.6) 79.8%(-2.3) 72.3%(-9.8) Qwen 3 72B 84.5% 83.7%(-0.8) 81.2%(-3.3) 82.1%(-2.4) 75.6%(-8.9) GLM-5 32B 86.2% 85.3%(-0.9) 82.5%(-3.7) 83.8%(-2.4) 76.8%(-9.4) DeepSeek-V4 85.8% 85.1%(-0.7) 82.3%(-3.5) 83.5%(-2.3) 76.2%(-9.6) Mistral 7B 65.2% 64.3%(-0.9) 61.5%(-3.7) 62.8%(-2.4) 55.3%(-9.9) 关键发现: ...

2026-07-02 · 2 min · 371 words · 硅基 AGI 探索者
量化技术对比

量化技术对比:INT4/INT8/FP8

量化:用更少的比特做更多的事 LLM的参数量从7B到671B不断增长,但GPU显存的增长速度远跟不上。量化是缓解这一矛盾最直接的技术——用更少的比特表示模型参数和激活值,在不修改模型架构的前提下减少显存占用和加速推理。 2026年,量化技术已经形成了从INT4到FP8的完整谱系,每种精度都有其适用场景和工程权衡。 量化的基本原理 对称量化 将浮点数映射到整数的固定范围。以INT8为例: x_int8 = round(x_fp / scale) scale = max(|x_fp|) / 127 反量化:x_fp ≈ x_int8 × scale 非对称量化 引入零点偏移,处理分布不对称的情况: x_int8 = round((x_fp - zero_point) / scale) scale = (max(x) - min(x)) / 255 zero_point = min(x) 量化粒度 逐张量(per-tensor):整个张量共用一个scale,最简单但精度损失大 逐通道(per-channel):每个输出通道一个scale,精度好但额外参数多 逐组(per-group):将通道分组,组内共用scale,是精度和效率的折中 def per_group_quantize(x, group_size=128): """分组量化""" original_shape = x.shape # 重排为 [out_features // group_size, group_size, in_features] x_reshaped = x.view(-1, group_size, original_shape[-1]) # 每组计算独立的scale scales = x_reshaped.abs().max(dim=1, keepdim=True).values / 127 # 量化 x_int8 = (x_reshaped / scales).round().clamp(-128, 127).to(torch.int8) return x_int8, scales def per_group_dequantize(x_int8, scales, original_shape): """分组反量化""" x_fp = x_int8.float() * scales return x_reshaped.view(original_shape) INT8量化 适用场景 INT8是最成熟的量化方案,几乎所有推理框架都原生支持。适用于: ...

2026-07-02 · 3 min · 477 words · 硅基 AGI 探索者

大模型量化技术 2026:INT4 推理的精度-效率平衡

引言 大模型的量化(Quantization)是将高精度浮点模型转换为低精度表示的技术。2026年,INT4量化已经从"实验性技术"成为"生产级方案",让70B参数模型在消费级GPU上运行成为可能。 量化技术分类 按训练方式分类 量化方法 ├── 训练后量化(PTQ) │ ├── PTQ-W(权重量化) │ └── PTQ-A(激活量化) ├── 校准量化(Calibration-based) │ ├── LLM.int8() │ └── SmoothQuant ├── 感知量化(Aware Quantization) │ ├── AWQ(Activation-Aware) │ ├── GPTQ(Greedy Post-Training) │ └── QoQ(Quantization-out-of-Context) └── 量化感知训练(QAT) ├── QAT-F(全量化训练) └── LoRA-QAT(低秩量化) 按量化粒度分类 粒度 说明 精度损失 加速效果 逐层 每层一个缩放因子 低 中 逐通道 每个通道一个缩放因子 低 高 逐组 每组(如128个)一个缩放因子 中 最高 逐元素 每个权重一个缩放因子 高 有限 主流量化方案深度对比 AWQ(Activation-Aware Weight Quantization) 核心思想: 保护对激活值敏感的权重,对这些权重进行更精细的量化。 原理: ...

2026-06-30 · 2 min · 250 words · 硅基 AGI 探索者
大模型量化技术2026

大模型量化技术2026:INT4/INT8/AWQ/GPTQ实测

引言 2026年,量化技术已经成为大模型部署的标配。随着更多量化方法和工具的成熟,开发者面临着INT4、INT8、AWQ、GPTQ、FP8等多种选择。不同量化方法在质量损失、压缩比、推理速度和硬件兼容性上各有优劣。本文将通过大量实测数据,全面对比2026年主流量化技术,帮助开发者做出最优选择。 量化技术概述 量化基础 量化是将模型权重和激活值从高精度(FP16/BF16)转换为低精度(INT8/INT4等)的过程。 核心指标: 指标 说明 影响 压缩比 量化后大小/原始大小 显存占用、存储成本 质量损失 量化后性能下降 准确性、可用性 推理加速 量化后速度提升 用户体验、成本 硬件要求 需要的硬件支持 部署灵活性 2026年主流量化方法 方法 精度 压缩比 质量损失 硬件要求 FP16/BF16 16-bit 1× 0% 所有GPU FP8 (E4M3) 8-bit浮点 2× <0.5% Hopper/Ada/A100-80G INT8 (W8A8) 8-bit整数 2× <1% 所有GPU INT4 (W4A16) 4-bit权重 4× 2-3% 所有GPU AWQ 4-bit 4-bit激活感知 4× 1-2% 所有GPU GPTQ 4-bit 4-bit压缩 4× 2-3% 所有GPU 2-bit量化 2-bit 8× 8-15% 实验性 实测对比 测试环境 硬件1:8×NVIDIA A100 80GB 硬件2:4×NVIDIA H100 硬件3:1×NVIDIA RTX 4090 模型:Llama 4 70B、Qwen3.5 72B、DeepSeek V4 基准:MMLU-Pro、HumanEval+、C-Eval、TruthfulQA FP8量化实测 方法:使用NVIDIA Transformer Engine进行FP8量化 ...

2026-06-30 · 3 min · 541 words · 硅基 AGI 探索者
大模型蒸馏:从GPT-5到7B的能力迁移方案

大模型蒸馏:从GPT-5到7B的能力迁移方案

知识蒸馏:用小成本获得大能力 GPT-5很强大但很贵——每次API调用$0.06/1K tokens。如果每天处理10万次查询,月成本$18,000。而7B模型自部署的成本仅为$500/月。 知识蒸馏的核心思想:让小模型学习大模型的"思维方式",而不只是模仿其输出。 Teacher模型 (GPT-5, 175B+) │ │ 知识转移 ▼ Student模型 (Qwen2.5-7B) │ │ 微调 + 对齐 ▼ 蒸馏模型 (7B, 接近GPT-5效果) 三种蒸馏方案 方案1:黑盒蒸馏(最常用) 黑盒蒸馏只需要Teacher模型的输入输出API,不需要访问模型权重或内部状态。 Step 1: 用Teacher生成训练数据 import openai import json from tqdm import tqdm client = openai.OpenAI(api_key="your-key") def generate_training_data(prompts, teacher_model="gpt-5"): """用GPT-5生成高质量训练数据""" training_data = [] for prompt in tqdm(prompts): # 系统提示:让Teacher模型输出详细、有条理的回答 system_prompt = """你是一个专业的AI助手。请按照以下要求回答问题: 1. 回答要详细且有条理 2. 使用适当的格式(标题、列表、代码块) 3. 如果适用,提供示例 4. 确保回答准确且有帮助""" response = client.chat.completions.create( model=teacher_model, messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": prompt}, ], temperature=0.7, # 适度多样性 max_tokens=2000, ) training_data.append({ "instruction": prompt, "output": response.choices[0].message.content, "metadata": { "teacher_model": teacher_model, "temperature": 0.7, } }) return training_data # 生成多样化提示词 def generate_diverse_prompts(domains, num_per_domain=500): """生成覆盖多个领域的多样化提示词""" prompts = [] for domain in domains: # 用Teacher模型生成领域特定提示词 meta_prompt = f"为'{domain}'领域生成{num_per_domain}个多样化的用户问题。" domain_prompts = client.chat.completions.create( model="gpt-5", messages=[{"role": "user", "content": meta_prompt}], ) prompts.extend(domain_prompts.choices[0].message.content.split("\n")) return prompts # 生成数据 domains = ["编程开发", "数据分析", "文案写作", "技术咨询", "数学推理", "创意设计"] prompts = generate_diverse_prompts(domains, num_per_domain=500) training_data = generate_training_data(prompts) # 保存 with open("distill_training_data.json", "w", encoding="utf-8") as f: json.dump(training_data, f, ensure_ascii=False, indent=2) Step 2: 数据质量过滤 def quality_filter(data): """过滤低质量训练数据""" filtered = [] for item in data: output = item["output"] # 长度过滤 if len(output) < 50 or len(output) > 5000: continue # 质量信号检查 quality_signals = [ len(output.split("\n")) > 3, # 有结构 any(kw in output for kw in ["1.", "首先", "因为", "因此"]), # 有逻辑 not output.startswith("I cannot") and not output.startswith("我无法"), # 非拒答 ] if sum(quality_signals) >= 2: filtered.append(item) return filtered Step 3: SFT训练Student模型 from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments from trl import SFTTrainer from peft import LoraConfig, get_peft_model # 加载Student模型 model = AutoModelForCausalLM.from_pretrained( "Qwen/Qwen2.5-7B", torch_dtype=torch.bfloat16, device_map="auto", ) # LoRA配置 lora_config = LoraConfig( r=64, lora_alpha=16, target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"], lora_dropout=0.05, bias="none", task_type="CAUSAL_LM", ) # 训练 training_args = TrainingArguments( output_dir="./distilled-7b", num_train_epochs=3, per_device_train_batch_size=4, gradient_accumulation_steps=4, learning_rate=2e-4, lr_scheduler_type="cosine", warmup_ratio=0.03, bf16=True, logging_steps=10, save_steps=500, ) trainer = SFTTrainer( model=model, args=training_args, train_dataset=dataset, tokenizer=tokenizer, max_seq_length=2048, peft_config=lora_config, ) trainer.train() 方案2:白盒蒸馏(效果更好) 白盒蒸馏利用Teacher模型的内部状态(logits、注意力权重)进行知识转移。 ...

2026-06-30 · 4 min · 720 words · 硅基 AGI 探索者
大模型蒸馏技术2026:从GPT-5到7B的能力迁移

大模型蒸馏技术2026:从GPT-5到7B的能力迁移

引言 知识蒸馏(Knowledge Distillation)是将大模型(Teacher)的能力迁移到小模型(Student)的核心技术。2026年,随着GPT-5、Claude 4等超大规模模型的普及,如何将这些模型的强大能力压缩到可本地部署的7B模型中,成为了AI工程的关键挑战。本文将系统介绍蒸馏技术的最新进展。 知识蒸馏基础 经典蒸馏框架 经典知识蒸馏由Hinton等人于2015年提出,核心思想是让学生模型模仿教师模型的输出分布: $$ \mathcal{L}_{\text{KD}} = (1-\alpha) \cdot \text{CE}(y, p_s) + \alpha \cdot T^2 \cdot \text{KL}(p_t^T | p_s^T) $$ 其中: $p_s$ 和 $p_t$ 分别是学生和教师模型的输出概率 $T$ 是温度参数,软化概率分布 $\alpha$ 是平衡系数 $y$ 是真实标签 温度缩放 温度参数 $T$ 控制输出分布的平滑程度: $$ p_i^T = \frac{\exp(z_i / T)}{\sum_j \exp(z_j / T)} $$ class DistillationLoss(nn.Module): def __init__(self, alpha=0.5, temperature=4.0): super().__init__() self.alpha = alpha self.T = temperature def forward(self, student_logits, teacher_logits, labels): # 软目标损失 soft_loss = F.kl_div( F.log_softmax(student_logits / self.T, dim=-1), F.softmax(teacher_logits / self.T, dim=-1), reduction='batchmean' ) * (self.T ** 2) # 硬目标损失 hard_loss = F.cross_entropy(student_logits, labels) return (1 - self.alpha) * hard_loss + self.alpha * soft_loss 白盒蒸馏:访问教师内部状态 白盒蒸馏可以访问教师模型的logits、隐藏状态和注意力权重,提供更丰富的监督信号。 ...

2026-06-30 · 4 min · 715 words · 硅基 AGI 探索者
knowledge distillation teacher student

大模型蒸馏技术:Teacher-Student 范式详解

知识蒸馏:让小模型继承大模型的智慧 知识蒸馏(Knowledge Distillation)是模型压缩领域最重要的技术之一。通过让小模型(Student)学习大模型(Teacher)的知识,可以在保持接近大模型性能的前提下,大幅减少参数和计算量。本文深入解析蒸馏的原理与实践。 一、知识蒸馏的理论基础 1.1 为什么蒸馏有效 Teacher 模型不仅输出正确答案,还输出软标签(Soft Labels)——包含了类别间的相似性关系。这些"暗知识"(Dark Knowledge)比硬标签包含更多信息: 硬标签 (Hard Label): 猫: 1.0, 狗: 0.0, 汽车: 0.0 → 只告诉你"这是猫" 软标签 (Teacher, T=3): 猫: 0.7, 狗: 0.25, 汽车: 0.05 → 告诉你"这是猫, 但很像狗, 完全不像汽车" → 包含了类别间的关系信息! 1.2 温度参数 Teacher 使用温度 $T$ 平滑输出分布: $$p_i^T = \frac{\exp(z_i / T)}{\sum_j \exp(z_j / T)}$$ 温度越高,分布越平滑,暗知识越明显。常用 $T \in [2, 10]$。 1.3 蒸馏损失函数 $$\mathcal{L} = \alpha \cdot \mathcal{L}{KD} + (1 - \alpha) \cdot \mathcal{L}{CE}$$ ...

2026-06-28 · 4 min · 772 words · 硅基 AGI 探索者
quantization principles int4 gptq awq

大模型量化原理:INT4/INT8/GPTQ/AWQ 的数学基础

量化:让大模型跑在更小的硬件上 大模型量化是将高精度浮点数(FP16/BF16)转换为低精度整数(INT8/INT4)的技术,能大幅减少模型内存占用和推理计算量。2026 年,INT4 量化已成为大模型部署的标配。本文深入解析量化背后的数学原理。 一、量化的数学基础 1.1 均匀量化 量化的核心是将浮点数映射到有限离散值: $$q = \text{round}\left(\frac{x}{s}\right) + z$$ 其中: $x$:原始浮点值 $q$:量化后的整数值 $s$:缩放因子(scale) $z$:零点(zero point) 反量化(恢复浮点值): $$\hat{x} = s \cdot (q - z)$$ 1.2 对称量化 vs 非对称量化 对称量化(Symmetric):$z = 0$,零点固定为 0 $$s = \frac{\max(|x|)}{2^{b-1} - 1}$$ 适用于权重(均值为 0 的正态分布)。 非对称量化(Asymmetric):$z \neq 0$ $$s = \frac{x_{max} - x_{min}}{2^b - 1}$$ $$z = \text{round}\left(-\frac{x_{min}}{s}\right)$$ 适用于激活值(可能偏移,如 ReLU 后全为正)。 对称量化 (INT8): 浮点范围 [-127, 127] → 整数 [-127, 127] x = 0 → q = 0 s = max(|x|) / 127 非对称量化 (INT8): 浮点范围 [xmin, xmax] → 整数 [0, 255] x = 0 → q = z (可能不为 0) s = (xmax - xmin) / 255 1.3 量化误差 量化引入的误差: ...

2026-06-28 · 4 min · 845 words · 硅基 AGI 探索者
鲁ICP备2026018361号