# 孟一凡(zzszmyf) > LLM 推理优化与 AI Agent 技术笔记 | 孟一凡(zzszmyf),独立 AI 顾问,SGLang 上游贡献者 中文技术站,写 LLM 推理优化精读(量化、推测解码、注意力与计算内核)和 Agent / 训练系统笔记。作者孟一凡,GitHub zzszmyf,独立 AI 顾问,SGLang 上游贡献者。 每篇笔记的 HTML 旁边有同路径的 `index.md`(纯 Markdown)。页面 `` 里有 `rel="alternate"`、`type="text/markdown"` 的链接。 ## 站点 - [首页](https://zzszmyf.github.io/): LLM 推理优化与 AI Agent 技术笔记 | 孟一凡(zzszmyf),独立 AI 顾问,SGLang 上游贡献者 - [关于孟一凡](https://zzszmyf.github.io/about/): 孟一凡(zzszmyf / doraeMeng):独立 AI 顾问,承接企业 AI 落地项目。前百度/BIGO 算法工程师,SGLang 上游贡献者,专注 LLM 推理优化、AI Agent 基础设施与多模态。 - [精读系列](https://zzszmyf.github.io/series/): 三套 MIT lecture note 级别的 LLM 推理优化中文精读笔记:量化 12 章、推测解码 7 章、注意力与计算内核 9 章,每章含形式化定义、数学推导、伪代码、数值算例与习题。 - [技术笔记](https://zzszmyf.github.io/notes/): 孟一凡(zzszmyf)的技术笔记:LLM 推理优化、AI Agent、训练与推理系统、部署排错和论文精读。系统化的精读系列见 /series/。 ## 精读系列 ### 量化精读 - [系列目录](https://zzszmyf.github.io/series/quantization/): 从数值编码、均匀量化到 PTQ/QAT 和生产部署。 - [LLM 推理优化 · 量化(Quantization)系统学习笔记](https://zzszmyf.github.io/notes/llm%E6%8E%A8%E7%90%86%E4%BC%98%E5%8C%96-quantization%E9%87%8F%E5%8C%96%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/): LLM 量化(Quantization)系统学习笔记:从 FP8/FP4 数字格式、量化粒度与敏感性排序,到 GPTQ、AWQ、SmoothQuant、KIVI、BitNet 方法谱系。生产默认配方:W8A8 FP8 是甜点、KV cache 谨慎量化、attention 保持高 … - [LLM 量化从入门到部署:11 篇精读笔记总览](https://zzszmyf.github.io/notes/llm%E9%87%8F%E5%8C%96%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-00-%E6%80%BB%E8%A7%88%E4%B8%8E%E5%AD%A6%E4%B9%A0%E5%9C%B0%E5%9B%BE/): LLM 量化完整学习地图:从信息论与数值编码、均匀量化误差公式,到 RTN/GPTQ/AWQ、SmoothQuant、KV Cache 量化,再到 QServe 与 vLLM 部署验收,11 篇精读笔记的阅读顺序与每章要点速览。 - [INT8 和 FP16 有什么区别?量化前的数值编码基础](https://zzszmyf.github.io/notes/llm%E9%87%8F%E5%8C%96%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-01-%E6%95%B0%E5%80%BC%E7%BC%96%E7%A0%81%E4%B8%8E%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A1%A8%E7%A4%BA%E5%9F%BA%E7%A1%80/): 量化的本质是决定一个数用多少 bit、以什么格式表示。本文从信息论、整数补码、IEEE 754 浮点位布局讲到六种舍入模式,解释量化为什么用 round-half-even,以及截断噪声为什么是舍入的 4 倍。 - [量化误差是怎么算出来的?均匀量化公式推导](https://zzszmyf.github.io/notes/llm%E9%87%8F%E5%8C%96%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-02-%E9%87%8F%E5%8C%96%E9%97%AE%E9%A2%98%E5%BD%A2%E5%BC%8F%E5%8C%96%E4%B8%8E%E5%9D%87%E5%8C%80%E9%87%8F%E5%8C%96%E7%90%86%E8%AE%BA/): 把任意量化方法拆成编码器、解码器、误差三部分,推导对称与非对称均匀量化的正向与反向公式,解释「位宽每减 1、SNR 涨约 6 dB」,并说明为什么范围利用率是量化的第一性原理。 - [FP16、BF16、FP8、FP4 有什么区别?该选哪种数值格式](https://zzszmyf.github.io/notes/llm%E9%87%8F%E5%8C%96%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-03-%E6%95%B0%E5%80%BC%E6%A0%BC%E5%BC%8F%E4%B8%8E%E7%A1%AC%E4%BB%B6/): 从位布局推导 FP16/BF16/FP8(E4M3、E5M2)/FP4/MXFP8/NVFP4 的动态范围与精度,说明 E4M3 和 E5M2 各自适合什么场景、块缩放到底解决了什么问题,并用带宽模型手算 70B 模型 decode 每 token 的最少耗时。 - [量化粒度怎么选?为什么离群值会让 INT8 精度崩掉](https://zzszmyf.github.io/notes/llm%E9%87%8F%E5%8C%96%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-04-%E9%87%8F%E5%8C%96%E7%B2%92%E5%BA%A6%E6%A0%A1%E5%87%86%E4%B8%8E%E7%A6%BB%E7%BE%A4%E5%80%BC/): per-tensor、per-channel、per-group 的有效位宽和存储开销差多少?校准集怎么选、统计量用 min/max 还是分位数?本文用 LLM.int8() 的离群值统计说明 INT8 什么情况下会崩,并给出粒度、校准、outlier 的决策表。 - [RTN 和 GPTQ 有什么区别?权重量化方法怎么选](https://zzszmyf.github.io/notes/llm%E9%87%8F%E5%8C%96%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-05-%E6%9D%83%E9%87%8D%E9%87%8F%E5%8C%96i-rtn%E4%B8%8Egptq/): RTN 直接四舍五入,实现最简单但 4-bit 下误差明显;GPTQ 把目标从「最小化逐元素误差」升级为「最小化层输出误差」,用 OBS/OBQ 的二阶补偿逐列校正。本文完整推导补偿公式并手算一个 2×2 例子。 - [AWQ 量化原理是什么?和 GPTQ、SqueezeLLM 怎么选](https://zzszmyf.github.io/notes/llm%E9%87%8F%E5%8C%96%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-06-%E6%9D%83%E9%87%8D%E9%87%8F%E5%8C%96ii-awq-squeezellm-quip/): AWQ 的核心观察是只有约 1% 的权重显著,而且要看激活幅度而不是权重幅度,再通过逐通道缩放把误差压下去。本文推导缩放减误差公式,对比 AWQ、GPTQ、SqueezeLLM、QuIP# 的无重建与二阶补偿取舍。 - [激活量化为什么比权重量化难?LLM.int8() 与 SmoothQuant 原理](https://zzszmyf.github.io/notes/llm%E9%87%8F%E5%8C%96%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-07-%E6%BF%80%E6%B4%BB%E9%87%8F%E5%8C%96-llm-int8%E4%B8%8Esmoothquant/): 权重是静态的,激活是动态的还会出现极大的离群值,所以 W8A8 比 weight-only 难得多。本文讲 LLM.int8() 的向量级量化与混合精度分解、SmoothQuant 的等效变换与 s_j 公式推导,以及缩放折叠为什么让 W8A8 零运行时开销。 - [KV Cache 量化怎么做?KIVI 与「量化还是压缩」的区别](https://zzszmyf.github.io/notes/llm%E9%87%8F%E5%8C%96%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-08-kv-cache%E9%87%8F%E5%8C%96%E4%B8%8Ekivi/): KV Cache 是长上下文推理的显存大头,而 KV 量化误差会逐 token 累积。本文手算 KV 显存公式,讲 KIVI 的两个核心洞察(Key 按通道量化、Value 按 token 量化)与非对称 2-bit 流式量化实现,并辨析 KV 量化与 KV 压缩的区别。 - [QAT 什么时候才值得做?PTQ、QLoRA、BitNet 路线对比](https://zzszmyf.github.io/notes/llm%E9%87%8F%E5%8C%96%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-09-qat%E4%B8%8E%E8%AE%AD%E7%BB%83%E5%86%85%E9%87%8F%E5%8C%96-ste-qlora-bitnet/): 量化函数不可导,STE 用直通估计器把梯度放过去。本文手推一个完整的反向传播例子,讲清 QLoRA 的 NF4、双重量化与 paged optimizer,解释 BitNet b1.58 的三值化设计,并对比 PTQ/QAT/QLoRA/BitNet 四条路线各自适用什么场景。 - [量化后精度掉了怎么定位?perplexity 与评测怎么用](https://zzszmyf.github.io/notes/llm%E9%87%8F%E5%8C%96%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-10-%E8%B4%A8%E9%87%8F%E8%AF%84%E4%BC%B0%E6%96%B9%E6%B3%95%E8%AE%BA/): 只跑一个 perplexity 数字不足以判断量化能不能上线。本文给出「困惑度 → 智能基准 → 自定义评测」的三层验收协议,解释「与噪声不可区分」如何操作化成多次运行与配对比较,并列出量化评测最容易踩的坑。 - [量化模型怎么部署到 vLLM?QServe 与 FP8 Attention 实践](https://zzszmyf.github.io/notes/llm%E9%87%8F%E5%8C%96%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-11-%E7%B3%BB%E7%BB%9F%E5%8D%8F%E5%90%8C%E4%B8%8E%E9%83%A8%E7%BD%B2/): 量化算法好不等于端到端快,反量化、内存布局和 kernel 实现会吃掉大部分收益。本文讲 QServe 的 W4A8KV4 协同设计为什么是 W4A8,给出 vLLM / TensorRT-LLM / llama.cpp 的量化支持地图,并给出一份部署决策树。 - [AWQ 和 GPTQ 有什么区别?4-bit 权重量化怎么选](https://zzszmyf.github.io/notes/awq%E5%92%8Cgptq%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB-4bit%E6%9D%83%E9%87%8D%E9%87%8F%E5%8C%96%E6%80%8E%E4%B9%88%E9%80%89/): AWQ 和 GPTQ 都是 4-bit weight-only 量化,区别在怎么补偿误差:GPTQ 用 Hessian 二阶信息逐列校正权重,需要重建、小时级;AWQ 不改权重数值,只按激活幅度做 per-channel 缩放保护约 1% 的显著通道,无重建、分钟级。本文给出选型 … - [企业 AI 落地该选 FP8 还是 FP4?量化格式的成本、质量与硬件决策](https://zzszmyf.github.io/notes/%E4%BC%81%E4%B8%9Aai%E8%90%BD%E5%9C%B0%E9%80%89fp8%E8%BF%98%E6%98%AFfp4-%E9%87%8F%E5%8C%96%E6%A0%BC%E5%BC%8F%E7%9A%84%E6%88%90%E6%9C%AC%E8%B4%A8%E9%87%8F%E4%B8%8E%E7%A1%AC%E4%BB%B6%E5%86%B3%E7%AD%96/): 一个 70B 客服系统的部署账:FP8 只动权重,KV cache 会把省下的显存吃回去;FP4 在 Blackwell 上吞吐更高,结构化输出的字段错误却能把 GPU 省下的钱赔回去。附 vLLM 参数、字段级验收和采购时要问的硬指标。 - [vLLM、SGLang、TensorRT-LLM 该怎么选?](https://zzszmyf.github.io/notes/vllm-sglang-tensorrt-llm%E6%80%8E%E4%B9%88%E9%80%89/): 没有三引擎同机吞吐表。共享前缀高先看 SGLang 的 RadixAttention;量化格式和 PagedAttention 要广选 vLLM;NVIDIA 上把 FP8/INT4 kernel 做深选 TensorRT-LLM。同负载 tokens/s 标待实测。 ### 推测解码精读 - [系列目录](https://zzszmyf.github.io/series/speculative-decoding/): 从接受率数学、拒绝采样到 Medusa、EAGLE 和生产验收。 - [投机采样与推测解码:6 篇精读笔记总览](https://zzszmyf.github.io/notes/llm%E6%8E%A8%E6%B5%8B%E8%A7%A3%E7%A0%81%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-00-%E6%80%BB%E8%A7%88%E4%B8%8E%E5%AD%A6%E4%B9%A0%E5%9C%B0%E5%9B%BE/): 量化是「有损换速度」,推测解码是「无损提速度」,两者是 LLM 推理优化互补的两条主线。这份总览给出 6 篇精读笔记的阅读顺序、每章要点与配套论文,帮你建立完整的推理加速决策框架。 - [投机采样为什么是无损的?接受率与期望 token 公式推导](https://zzszmyf.github.io/notes/llm%E6%8E%A8%E6%B5%8B%E8%A7%A3%E7%A0%81%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-01-%E9%97%AE%E9%A2%98%E5%BD%A2%E5%BC%8F%E5%8C%96%E4%B8%8E%E6%8E%A5%E5%8F%97%E7%8E%87%E6%95%B0%E5%AD%A6/): 自回归解码慢的结构性原因是因果依赖浪费了 GPU 并行能力,「草稿 + 并行验证」正好把它补回来。本文从定义推导期望接受 token 数 E[N]=(1-α^(K+1))/(1-α) 与墙钟加速比公式,并解释拒绝采样后输出分布为何依然无损。 - [投机采样原理是什么?草稿模型与拒绝采样怎么配合](https://zzszmyf.github.io/notes/llm%E6%8E%A8%E6%B5%8B%E8%A7%A3%E7%A0%81%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-02-%E5%8E%9F%E5%A7%8B%E6%8E%A8%E6%B5%8B%E8%A7%A3%E7%A0%81-%E8%8D%89%E7%A8%BF%E6%A8%A1%E5%9E%8B%E4%B8%8E%E6%8B%92%E7%BB%9D%E9%87%87%E6%A0%B7/): 完整写出投机采样算法:小模型草稿 K 个 token,大模型一次前向并行验证,再用拒绝采样做修正。本文证明无损性定理(输出分布严格等于目标分布,且与草稿质量无关),推导最优草稿长度 K*,并列出工程实现里最容易破坏无损性的几个坑。 - [Medusa 是什么?多头解码为什么能加速 LLM 推理](https://zzszmyf.github.io/notes/llm%E6%8E%A8%E6%B5%8B%E8%A7%A3%E7%A0%81%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-03-medusa-%E5%A4%9A%E5%A4%B4%E8%A7%A3%E7%A0%81/): Medusa 在模型上挂多个解码头,一次预测多个后续位置,再用树注意力并行验证候选路径。本文写出 head 结构与树掩码规则,用覆盖率模型推导期望接受长度,说明典型验收与拒绝采样的区别,以及树大小为什么存在最优值。 - [EAGLE 推测解码为什么比 Medusa 快?(含 EAGLE-2 动态草稿树)](https://zzszmyf.github.io/notes/llm%E6%8E%A8%E6%B5%8B%E8%A7%A3%E7%A0%81%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-04-eagle-%E7%89%B9%E5%BE%81%E7%A9%BA%E9%97%B4%E8%8D%89%E7%A8%BF/): Medusa 在 token 层做自回归,每次采样都会引入新的歧义;EAGLE 把草稿搬到特征层,用 shifted-token 输入消除分支歧义,因此接受率更高。本文给出草稿模型结构与训练损失,证明每轮首个草稿 token 接受概率恒为 1,并讲清 EAGLE-2 的动态草稿树 … - [n-gram 投机采样怎么做?不用草稿模型的加速方案](https://zzszmyf.github.io/notes/llm%E6%8E%A8%E6%B5%8B%E8%A7%A3%E7%A0%81%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-05-n-gram%E6%A3%80%E7%B4%A2%E5%BC%8F%E4%B8%8E%E6%97%A0%E6%A8%A1%E5%9E%8B%E8%B7%AF%E7%BA%BF/): Prompt Lookup、Lookahead Decoding、REST 都不训练草稿模型,而是从 n-gram 或检索库里取候选,再交给目标模型并行验证。本文比较三种「记忆来源」的差异,解释 Lookahead 为什么能把 Jacobi 迭代救活,以及这类方法在什么任务上才真 … - [推测解码上线怎么验收?接受率与加速比怎么测](https://zzszmyf.github.io/notes/llm%E6%8E%A8%E6%B5%8B%E8%A7%A3%E7%A0%81%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-06-%E7%B3%BB%E7%BB%9F%E9%9B%86%E6%88%90%E4%B8%8E%E7%94%9F%E4%BA%A7%E9%AA%8C%E6%94%B6/): 用「每步成本 × 步数」的双因子模型解释量化和推测叠加时收益为什么会被稀释,拆解 TTFT 与 TPS 各自吃哪类优化,给出一份包含无损性验证、质量评测、性能指标与组合矩阵的生产验收协议,并列出集成时最常见的坑。 ### 注意力与计算内核精读 - [系列目录](https://zzszmyf.github.io/series/attention-kernels/): 从注意力复杂度、FlashAttention、PagedAttention 到 RadixAttention 前缀缓存。 - [LLM 注意力与计算内核:8 篇精读笔记总览](https://zzszmyf.github.io/notes/llm%E6%B3%A8%E6%84%8F%E5%8A%9B%E5%86%85%E6%A0%B8%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-00-%E6%80%BB%E8%A7%88%E4%B8%8E%E5%AD%A6%E4%B9%A0%E5%9C%B0%E5%9B%BE/): 继量化与推测解码之后的第三部推理优化精读,进入单步前向内部:注意力复杂度、FlashAttention、MQA/GQA/MLA、稀疏与线性注意力、PagedAttention、算子融合、生产验收与 RadixAttention 前缀缓存。 - [注意力计算复杂度是怎么来的?prefill 和 decode 差在哪](https://zzszmyf.github.io/notes/llm%E6%B3%A8%E6%84%8F%E5%8A%9B%E5%86%85%E6%A0%B8%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-01-%E6%B3%A8%E6%84%8F%E5%8A%9B%E6%9C%BA%E5%88%B6%E5%9F%BA%E7%A1%80%E4%B8%8E%E5%A4%8D%E6%9D%82%E5%BA%A6%E5%88%86%E6%9E%90/): 推导缩放点积注意力的 FLOPs 公式 4L²d 并说明为什么它与头数无关,用 L/(2d) 判据判断多长的上下文注意力会反超 FFN,推导 KV cache 显存公式并手算 7B 模型 128K 上下文的占用,区分计算密集的 prefill 与访存密集的 decode。 - [FlashAttention 原理是什么?为什么又省显存又快](https://zzszmyf.github.io/notes/llm%E6%B3%A8%E6%84%8F%E5%8A%9B%E5%86%85%E6%A0%B8%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-02-flashattention-io%E6%84%9F%E7%9F%A5%E7%9A%84%E7%B2%BE%E7%A1%AE%E6%B3%A8%E6%84%8F%E5%8A%9B/): 朴素注意力快不起来的真正瓶颈是 HBM 读写而不是 FLOPs。本文讲清 FlashAttention 的三个核心技巧——tiling、online softmax、recompute,手算验证增量式 softmax 与整体一致,给出 IO 复杂度定理,并对比 … - [MQA、GQA、MLA 有什么区别?KV Cache 该怎么省](https://zzszmyf.github.io/notes/llm%E6%B3%A8%E6%84%8F%E5%8A%9B%E5%86%85%E6%A0%B8%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-03-%E6%B3%A8%E6%84%8F%E5%8A%9B%E5%A4%B4%E5%8F%98%E4%BD%93-mqa-gqa-mla/): 三种注意力头变体回答的是同一个问题:每 token 缓存什么。本文给出各自的 KV 元素数公式,讲清 GQA 的 up-training 配方,推导 MLA 的低秩联合压缩并解释 RoPE 与低秩压缩的冲突及 decoupled RoPE 解法,最后手算 70B 与 … - [稀疏注意力、滑动窗口和线性注意力怎么选](https://zzszmyf.github.io/notes/llm%E6%B3%A8%E6%84%8F%E5%8A%9B%E5%86%85%E6%A0%B8%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-04-%E7%A8%80%E7%96%8F%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3%E4%B8%8E%E7%BA%BF%E6%80%A7%E6%B3%A8%E6%84%8F%E5%8A%9B/): 对抗 L² 复杂度有三条路线:少看位置、少存 KV、换计算范式。本文讲滑动窗口注意力的局部性假设与 StreamingLLM 的 attention sink 修复,推导线性注意力的结合律与 Performer 的核近似,辨析 Mamba 的选择性 SSM 与线性注意力的本质区别 … - [PagedAttention 是怎么省下 KV Cache 显存的?](https://zzszmyf.github.io/notes/llm%E6%B3%A8%E6%84%8F%E5%8A%9B%E5%86%85%E6%A0%B8%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-05-pagedattention%E4%B8%8Ekv%E6%98%BE%E5%AD%98%E7%AE%A1%E7%90%86/): vLLM 论文实测显示,不做管理的 KV 显存有效利用率只有 20.4%–38.2%,浪费来自预留、内部碎片与外部碎片。本文讲清 PagedAttention 的逻辑块到物理块映射与 block table,辨析它与 FlashAttention 的关系,并解释 … - [注意力内核怎么优化?算子融合、CUDA Graph 与 Triton](https://zzszmyf.github.io/notes/llm%E6%B3%A8%E6%84%8F%E5%8A%9B%E5%86%85%E6%A0%B8%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-06-%E5%86%85%E6%A0%B8%E4%BC%98%E5%8C%96%E4%B8%8E%E7%AE%97%E5%AD%90%E8%9E%8D%E5%90%88/): 用算术强度 FLOPs/byte 判断一个 kernel 是计算受限还是带宽受限,说明 decode 与 prefill 分别落在 Roofline 的哪一侧。本文讲算子融合的三个层次、Tensor Core 与 FP8 对注意力的意义,对比 CUDA Graph / … - [注意力优化上线怎么验收?吞吐、显存与精度怎么测](https://zzszmyf.github.io/notes/llm%E6%B3%A8%E6%84%8F%E5%8A%9B%E5%86%85%E6%A0%B8%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-07-%E7%B3%BB%E7%BB%9F%E9%9B%86%E6%88%90%E4%B8%8E%E7%94%9F%E4%BA%A7%E9%AA%8C%E6%94%B6/): 把注意力优化拆成维度、内容、布局、内核四个层次,与「每步成本 × 步数 × 单步内部效率」三因子框架对应。本文给出长上下文系统的完整组件清单,区分精确与近似优化各自的验收方法,并手算一个量化 + GQA + 推测的端到端收益算例。 - [SGLang RadixAttention 原理是什么?前缀缓存怎么提升命中率](https://zzszmyf.github.io/notes/llm%E6%B3%A8%E6%84%8F%E5%8A%9B%E5%86%85%E6%A0%B8%E7%B2%BE%E8%AF%BB%E7%AC%94%E8%AE%B0-08-%E5%89%8D%E7%BC%80%E7%BC%93%E5%AD%98%E4%B8%8Ekv%E5%A4%8D%E7%94%A8/): 前缀缓存把「相同前缀、KV 用一次就扔」的浪费消掉。本文推导命中率 h 到 prefill 计算节省的收益模型,讲清 RadixAttention 的 radix tree、LRU leaves-first 驱逐与引用计数,排列 GPU→CPU→分布式→磁盘的 KV 存储层级,并 … ## English summaries - [Why is FlashAttention faster and lighter on memory?](https://zzszmyf.github.io/en/flashattention/): Standard attention is slow because the N×N score matrix is written to HBM, not because the GPU lacks FLOPs. FlashAttention tiles that work … - [How does PagedAttention save KV-cache memory?](https://zzszmyf.github.io/en/pagedattention/): The vLLM paper measured 20.4%–38.2% effective KV memory without a manager. PagedAttention maps logical blocks to physical blocks so … - [What is RadixAttention, and when does prefix cache help?](https://zzszmyf.github.io/en/radixattention/): RadixAttention keeps KV for shared prefixes in a radix tree. The SGLang paper reports up to 6.4× throughput and 3.7× lower latency versus … - [Why is EAGLE faster than Medusa?](https://zzszmyf.github.io/en/eagle/): Medusa guesses future tokens from the current hidden state and tops out near 0.6 acceptance. EAGLE drafts in feature space and feeds the … - [AWQ or GPTQ for 4-bit weights?](https://zzszmyf.github.io/en/awq-vs-gptq/): Both are 4-bit weight-only methods. GPTQ repairs error with a Hessian and a rebuild. AWQ rescales the few channels that activations hit, and … - [FP8 or FP4 for a production LLM?](https://zzszmyf.github.io/en/fp8-vs-fp4/): Quantizing only the weights to FP8 does not free the KV cache. FP4 can raise throughput on Blackwell, and field errors in structured output … - [MQA, GQA, or MLA: what should you cache per token?](https://zzszmyf.github.io/en/mqa-gqa-mla/): Multi-query, grouped-query, and multi-head latent attention all shrink the KV cache. They differ in how many distinct K and V vectors each … - [Why did a vLLM GPU stay at 100%?](https://zzszmyf.github.io/en/vllm-max-tokens/): A vLLM server pegged the GPU because the client omitted max_tokens. vLLM then allowed generation out to max_model_len, about 130k tokens on … - [vLLM, SGLang, or TensorRT-LLM?](https://zzszmyf.github.io/en/vllm-vs-sglang-vs-tensorrt-llm/): Pick from the workload, not from a missing bake-off. This site has no same-box tokens/s for the three engines. Shared prefixes point at … - [Where do the quantization notes start?](https://zzszmyf.github.io/en/quantization-series/): Twelve Chinese chapters from number formats to deployment, plus a short overview. AWQ vs GPTQ and FP8 vs FP4 are the decision essays that … ## 工程笔记 - [vLLM、SGLang、TensorRT-LLM 该怎么选?](https://zzszmyf.github.io/notes/vllm-sglang-tensorrt-llm%E6%80%8E%E4%B9%88%E9%80%89/): 没有三引擎同机吞吐表。共享前缀高先看 SGLang 的 RadixAttention;量化格式和 PagedAttention 要广选 vLLM;NVIDIA 上把 FP8/INT4 kernel 做深选 TensorRT-LLM。同负载 tokens/s 标待实测。 - [vLLM GPU 利用率持续 100% 排查记:一个 max_tokens 参数引发的性能陷阱](https://zzszmyf.github.io/notes/vllm-gpu-100-percent-max-tokens-trap/): vLLM GPU 利用率持续 100% 排查实录:根因是 client 不传 max_tokens 时,vLLM 默认允许生成到 max_model_len(约 13 万 token),请求在 decode 阶段无法停止而独占 GPU。附 vLLM 源码级分析与修复方案:显式设置 … - [MoE数据特征、训练和推理的通信特点、基于NVLink/Scale Up那些Feature,DeepSeek的DeepEP和对MoE All-to-All数据的处理](https://zzszmyf.github.io/notes/moe-nvlink-deepseek-deepep-communication/): MoE All-to-All通信与NVLink优化解析:拆解专家并行下Token分发的Dispatch和Combine两阶段数据流,梳理训练与推理对带宽、延迟的不同要求,以及DeepSeek开源通信库DeepEP的高吞吐/低延迟Kernel设计;重点讲DeepSeek-V3无辅助 … - [Online Softmax 的数学:从代数推导到信息几何](https://zzszmyf.github.io/notes/online-softmax-information-geometry/): Online Softmax推导:FlashAttention分块计算的核心数学——不存储完整N×N注意力矩阵,只靠局部最大值m和指数和d两个统计量递推合并出全局Softmax,结果与传统 Softmax 精确一致,差异只来自浮点舍入。附Python验证,并从信息几何视角解释 … - [五一假期,我花了3.5亿Token,从零写了一套企业LLM WiKi](https://zzszmyf.github.io/notes/%E4%BA%94%E4%B8%80%E5%81%87%E6%9C%9F%E4%BB%8E%E9%9B%B6%E5%86%99%E4%BC%81%E4%B8%9Allm-wiki/): Claude Code AI编程实战:五天烧掉3.5亿Token(约1.3万元),一行代码没手写,从零搭出一套企业级LLM Wiki知识库系统——15份设计文档、8个微服务、50租户压测和蓝队渗透全部跑通。实践Karpathy「AI自维护Wiki」取代RAG的范式,结论是AI时代 … - [用 kimi-cli 实现自动 Issue → Worktree → TDD → PR 的无人值守流水线](https://zzszmyf.github.io/notes/kimi-cli-auto-issue-pipeline/): kimi-cli 搭建无人值守的 GitHub issue 自动修复流水线:一条 prompt 走完 issue → git worktree → TDD → PR 全流程,配合 --print --yolo、cron 定时触发和 subagent 并行批量处理 bug。附 … - [Claude Code Agent Teams 运行机制深度分析](https://zzszmyf.github.io/notes/claude-code-agent-teams-deep-dive/): Claude Code Agent Teams 深度解析:多智能体协作框架与 Subagent 的区别对比,Leader/Teammate 角色、TaskList 与 Mailbox 通信机制、工具链与团队生命周期,并用代码审查案例演示多个 Agent 并行协作的实际运行流程。