大模型投机解码(二):Multi-token Prediction — 让模型自己当 Draft
论文: Better & Faster Large Language Models via Multi-token Prediction作者: Fabian Gloeckle, Badr Youbi Idrissi, Baptiste Rozière, David Lopez-Paz, Gabriel Synnaeve机构: Meta / FAIR发表: 2024 | arXiv:2404.19737 一句话总结: 训练时让模型同时预测未来 n 个 token,推理时用额外的预测头充当 draft model,实现”自己给自己投机解码”,无需额外小模型即可获得 3X 加速。 一、回顾:经典投机解码的痛点Speculative Decoding 的核心框架:用小模型猜、大模型验。这个框架优雅且精确等价,但在实际落地时有一个挥之不去的问题——你需要一个额外的 draft model。 12345经典 Speculative Decoding 的部署代价:1. 选型:draft model 要足够小(推理快)又足够好(猜得准),怎么选?2. 显存:大模型已经快把 G...
大模型投机解码(一):Speculative Decoding — 奠基之作
论文: Fast Inference from Transformers via Speculative Decoding作者: Yaniv Leviathan, Matan Kalman, Yossi Matias发表: ICML 2023 | arXiv:2211.17192 一句话总结: 在不改变输出分布的前提下,用小模型猜测 + 大模型并行验证,把自回归解码从串行瓶颈中解放出来,实现 2-3X 加速。 一、问题:自回归解码的串行瓶颈大语言模型生成 个 token 需要串行跑 次 forward pass。而 decode 阶段通常是 memory bandwidth bound——GPU 大部分时间在等数据而不是在算数据,算力严重闲置。 12GPU 有大量闲置算力,但自回归解码无法利用它。因为下一个 token 的计算依赖上一个 token 的结果,天然串行。 Speculative Decoding 的核心问题是:能不能让 GPU 同时验证多个 token,而不是一个一个生成? 二、核心思想:猜测 + 验证借鉴 CPU 分支预测的投机执行思想: 用...
大模型量化系列(四):AWQ — 用 Activation 找到关键 Weight
论文: AWQ: Activation-aware Weight Quantization for On-Device LLM Compression and Acceleration作者: Ji Lin, Jiaming Tang, Haotian Tang, Shang Yang, Wei-Ming Chen, Wei-Chen Wang 等发表: MLSys 2024 Best Paper | arXiv:2306.00978 一句话总结: AWQ 用 activation 找到关键 weight channel,再通过等价缩放降低它们的相对量化误差,在不做重构、不引入混合精度路径的情况下实现高质量 W4A16 部署。 一、GPTQ 之后,AWQ 在问什么问题上一篇 GPTQ 解决的是 weight-only 低比特量化里的一个核心问题: 如果只把 weight 压到 3/4 bit,怎样避免简单取整把 layer output 搞坏? GPTQ 的答案是二阶补偿:用 calibration activation 构造 Hessian 信息,量化后再调整剩余...
大模型量化系列(三):GPTQ — 把大模型权重量化到 3/4 bit
论文: GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers作者: Elias Frantar, Saleh Ashkboos, Torsten Hoefler, Dan Alistarh发表: ICLR 2023 | arXiv:2210.17323 一句话总结: GPTQ 证明了二阶补偿式 post-training weight quantization 可以扩展到大模型,让低比特 weight-only 量化从简单取整走向真正可用。 一、为什么 SmoothQuant 之后还需要 GPTQLLM.int8() 发现了大模型里的 activation outlier:少数 hidden dimension 会出现稳定且幅度极大的异常值,导致朴素 INT8 量化失效。它的处理方式是把 outlier channel 拆出来,用 FP16 单独计算。 SmoothQuant 则进一步问:能不能不保留 FP16 outlier 分支,而是把 activatio...
大模型量化系列(二):SmoothQuant — 把 Outlier 从 Activation 迁移到 Weight
论文: SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models作者: Guangxuan Xiao, Ji Lin, Mickael Seznec, Hao Wu, Julien Demouth, Song Han发表: ICML 2023 | arXiv:2211.10438 一句话总结: SmoothQuant 承接 LLM.int8() 提出的 activation outlier 问题,但没有继续保留 FP16 outlier 分支,而是通过等价缩放把量化难度从 activation 迁移到 weight,从而让 W8A8 成为更硬件友好的部署路线。 一、LLM.int8 留下了什么问题LLM.int8() 的关键贡献,是指出大模型 INT8 量化失败的核心原因:activation outlier。 在线性层中: 其中 是 activation, 是 weight。大模型里, 的少数 hidden dimension 会出现稳定且幅度...
大模型量化系列(一):LLM.int8() — 重新定义量化领域的问题空间
论文: LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale作者: Tim Dettmers, Mike Lewis, Younes Belkada, Luke Zettlemoyer发表: NeurIPS 2022 | arXiv:2208.07339 一句话总结: LLM.int8() 首次揭示了 LLM 中的 outlier(emergent feature)现象,成为此后大模型量化研究的重要出发点。 一、为什么传统量化在大模型上会崩溃在讨论 LLM.int8() 之前,我们需要先理解一个看起来理所当然、实则并不显然的问题:为什么简单的 INT8 量化,在小模型上跑得飞起,一到 6.7B 以上的大模型就全面崩溃? 要回答这个问题,得从量化最基础的两套方法讲起。 1. Absmax 量化:最简单,但也最脆弱Absmax(绝对最大值量化)是工程中最常用的方案。核心思想一句话:找到整个张量的绝对最大值,等比例缩放到 INT8 的 [-127, 127] 范围。 量化公式: 缩放因子: 反...