TurboQuant原理解析上篇:为什么随机正交旋转能让KV Cache量化几乎无损
【免费下载链接】turboquantTurboQuant: Near-optimal KV cache quantization for LLM inference (3-bit keys, 2-bit values) with Triton kernels vLLM integration项目地址https://gitcode.com/gh_mirrors/tu/turboquant点击查看免费下载TurboQuant 是一种面向 LLM 推理的 KV Cache 量化方案核心思想是随机正交旋转 Lloyd-Max 标量量化把 Key 压缩到 3-bit、Value 压缩到 2-bit再配合 Triton 融合内核与 vLLM 集成在实测中做到 Key 压缩余弦相似度 1.000000几乎无损、显存容量直接翻倍。本篇从原理出发讲清楚为什么一个随机旋转矩阵就能让低比特量化不毁模型。 先看清问题KV Cache 为什么是显存瓶颈LLM 推理的每个 token 在自注意力层都会产生一对 Key/Value 向量它们必须一直留在显存里供后续解码反复读取。上下文越长KV Cache 占用越大——它常是长上下文、高并发场景下的第一显存杀手。最直觉的压缩办法是量化把每个 bf16 的数存成 3-bit 甚至更少的索引。但量化必然带来误差对模型输出质量是否几乎无损完全取决于误差长什么样、能不能被控制。TurboQuant 的答案分三步先旋转再查表最后补一个符号位。对应的压缩存储设计见 store.py。 为什么朴素的逐坐标量化会翻车一个 head_dim128 的 Key 向量逐坐标量化时会遇到两个经典麻烦离群值撑爆量级只要某一维数值特别大scale 就被拉宽其余小数值全被挤进极窄区间精度归零能量集中在少数坐标高维随机向量的模长天然倾向于扎堆在个别维度上直接量化这些大坐标一个坐标的舍入误差就足以毁掉整个向量的方向。于是量化误差变成数据相关、不可预测的东西——你无法保证它对注意力分数无害。 核心原理随机正交旋转把数据问题变成统计问题TurboQuant 的第一步是对归一化后的向量做一次随机正交旋转x_unit x / ‖x‖₂ y Π · x_unit其中 Π 是一个 d×d 的正交矩阵旋转不改变长度只改变方向。妙处在于Π 乘上一个单位向量等价于把这个点随机地撒到单位超球面上。这样一来旋转后每一个坐标 y_j 的取值分布与数据本身完全无关只取决于维度 d并且是严格已知的——一个定义在 [-1, 1] 上的缩放 Beta 分布codebook.py 头部注释给出了精确形式高维下它高度集中在 0 附近近似 N(0, 1/d)每个坐标的方差恒等于 1/d没有离群值可乘之机量化误差由此变成一个可积分、可证明的统计量论文定理 1-3 的误差界都建立在这个性质上。随机性不是加在数据上的抖动而是加在坐标基上的预处理分布被钉死之后量化器就拥有了确定性。实现上旋转矩阵用固定种子的 QR 分解生成rotation.py取 d×d 高斯随机矩阵 G做 QR 分解得正交阵 Q用 R 对角线符号修正保证 det 1纯旋转而非反射前向旋转y x·Πᵀ、反向旋转x y·Πrotation.py。开销方面完全可忽略d128 时矩阵只有 64 KBfloat32每层生成一次、由固定种子决定同层所有注意力头共享。追求更快的话注释里还提到了 O(d log d) 的随机 Hadamard 变换近似方案rotation.py。 分布已知之后Lloyd-Max 最优码本旋转把分布钉死后标量量化就退化成一道最优 1D k-means作业在 [-1, 1] 上对 Beta 分布跑 Lloyd-Max 迭代找到每个比特宽度的最优质心与判决边界实现见 codebook.py。项目预生成了各维度/比特数的码本codebooks/ 目录例如 codebook_d128_b3.jsond128、3-bit的 8 个质心-0.1884, -0.1181, -0.0666, -0.0216, 0.0216, 0.0666, 0.1181, 0.1884注意两个自动出现的特征质心关于 0 对称——因为分布是对称的中间密、边缘疏——概率密度大的区域分配了更细的格子。这就是最优的含义同样的比特数下MSE 比均匀分格更小。以该码本为例codebook_d128_b3.jsonmse_per_coord ≈ 2.65e-4 mse_total ≈ 3.40e-2对单位向量换算成单位向量的相对误差约 5.8%方向余弦相似度约 0.98——这正是后面 Key 压缩几乎无损的数学来源误差被摊薄到了全部 128 个维度上没有哪一维能单独捣乱。 最后 1 bit 的巧思QJL 残差符号位让估计无偏注意力真正关心的是内积 ⟨query, key⟩打分而不是 Key 能否被逐值还原。TurboQuant 把 3-bit 预算拆成2-bit 主码本 1-bit 残差符号quantizer.py用 2-bit Lloyd-Max 码本量化旋转后的向量得到近似 x̃取残差 r x − x̃乘一个随机高斯矩阵 S只保留每个投影坐标的符号sign(S·r)——每维 1 bit8 个符号打包进 1 字节quantizer.py同时存下 ‖r‖ 用于还原量级。反量化时的内积估计器为⟨y, x̃⟩ ‖r‖·(√(π/2)/d) · ⟨Sᵀy, signs⟩第二项是 QJL 残差校正。它的美妙之处在于对随机 S 取期望sign 项的期望恰好为 0因此E[估计值] ⟨y, x⟩ —— 整个估计器无偏无偏意味着量化误差没有系统性方向2-bit 直接量化往往会整体压低打分、扭曲 softmax 权重而这里误差是围绕真值的对称噪声注意力排序保持稳定。项目实测验证了这一点相对偏差 0.1%README Paper Validation 一节。 完整流水线与实测效果串起来TurboQuant 的量化管线是步骤作用比特开销每维源码归一化分离模长与方向模长单独精确保存≈0每向量 1 个浮点quantizer.py随机正交旋转 Π坐标分布 → 已知 Beta 分布0矩阵离线共享rotation.pyLloyd-Max 码本查表找最近质心 → 位索引b−1Key 为 2codebook.pyQJL 残差符号无偏校正内积1quantizer.py位打包存储2-bit 每字节 4 个值—quantizer.pyValue 侧则采用更朴素的 2-bit 分组量化逐组 scale/zero 位打包kv_cache.py最近若干 token 以 bf16 精度留在环形缓冲中保质量capture.py读取时压缩段与精确段合并做注意力score.py解码路径还有 3 个融合 Triton 内核直接从打包数据算分triton_kernels.pyvLLM 集成入口在 integration/vllm.py。实测数字README Benchmark Results组件余弦相似度备注3-bit Key 压缩1.000000几乎无损2-bit Value 量化0.940质量瓶颈敏感场景可换 4-bit0.9973b Key 2b Value 组合0.940退化主要来自 Value 侧指标Qwen3.5-27B4 卡基线 bf16TurboQuantKV Cache 释放—30.0 GB最大 token 容量457,072914,1442.0x长上下文 Prefill1,804 tok/s1,907 tok/s5.7%纯 dense 注意力模型上整体压缩比可达 4.4x。本地可运行pip install -e .后执行 proof.py 做 A/B 基准对比复现。✅ 小结TurboQuant 上篇的原理可以浓缩成一条链随机正交旋转→ 坐标分布与数据无关Beta→Lloyd-Max 码本按分布最优分配比特 →QJL 符号位消除系统性偏差 → 量化误差变成可证明、无偏的对称噪声→ 注意力打分几乎无损。一句话它不是更小心地量化数据而是先随机化坐标基把不可控的数据问题变成可解的统计问题——旋转的那一点随机性就是几乎无损的全部秘密。核心模块索引模块职责turboquant/rotation.py随机正交旋转矩阵QR与 QJL 投影矩阵turboquant/codebook.pyLloyd-Max 最优码本求解turboquant/quantizer.pyTurboQuantMSE / TurboQuantProd 两种量化器turboquant/codebooks/预生成码本d64/128/5761–4 bitturboquant/store.py压缩 KV 存储分块 惰性展平turboquant/score.py压缩历史 精确缓冲的混合注意力turboquant/triton_kernels.py解码注意力 3 个融合 Triton 内核turboquant/integration/vllm.pyvLLM 适配器monkey-patch多模式开关proof.py基线 vs TurboQuant A/B 基准脚本赞分享【免费下载链接】turboquantTurboQuant: Near-optimal KV cache quantization for LLM inference (3-bit keys, 2-bit values) with Triton kernels vLLM integration项目地址https://gitcode.com/gh_mirrors/tu/turboquant点击查看免费下载相关推荐LMDeploy KV Cache 量化实战INT4/INT8 在线量化与 TurboQuant 原理、配置与性能分析LMDeploy KV Cache 量化实战INT4/INT8 在线量化与 TurboQuant 原理、配置与性能分析 KV Cache 量化是降低 LLM人工智能大模型模型推理服务推理引擎本地部署模型量化TurboQuant 实战指南基于 PolarQuant 与 Walsh-Hadamard 旋转的 KV Cache 压缩原理、配置与落地TurboQuant 实战指南基于 PolarQuant 与 Walsh Hadamard 旋转的 KV Cache 压缩原理、配置与落地 本文以仓库根目录LMDeploy KV Cache 量化实战INT4/INT8 在线量化与 TurboQuant 深入解析LMDeploy KV Cache 量化实战INT4/INT8 在线量化与 TurboQuant 深入解析 本篇技术指南以 LMDeploy 的 KV Cac人工智能大模型模型推理服务推理引擎本地部署模型量化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

道路机器人视觉感知实战:VOC格式交通灯与导航标志数据集构建及YOLO训练部署

道路机器人视觉感知实战:VOC格式交通灯与导航标志数据集构建及YOLO训练部署

简介:这份资源面向道路机器人视觉导航方向的开发者与学习者,聚焦交通灯、马路、左右转、黄线、人行道及机器人等路面标志的识别任务,采用VOC格式标注,可直接用于目标检测模型的训练与验证。压缩包共816个文件,包含407个…

2026/10/10 13:54:33 阅读更多 →
FCMADDPG:基于MADDPG的无人机编队控制深度强化学习工程解析

FCMADDPG:基于MADDPG的无人机编队控制深度强化学习工程解析

简介:一套基于MADDPG算法的多智能体编队控制学习项目,面向深度强化学习研究者以及无人机、自动驾驶编队控制开发者,目标是解决多智能体在保持队形、避免碰撞和应对动态环境时的协同决策难题。压缩包共18个文件,以Python源码为主体…

2026/10/10 13:54:33 阅读更多 →
电影知识图谱问答系统:从数据爬取到语义解析的完整落地路径

电影知识图谱问答系统:从数据爬取到语义解析的完整落地路径

简介:这份资源面向自然语言处理、知识图谱与智能问答方向的研究者和开发者,聚焦电影领域,提供从数据爬取、实体关系抽取、知识存储到语义解析的完整工程实践。包内共438个文件,约67.55MB,以Java与JavaScript源码为主体…

2026/10/10 13:54:33 阅读更多 →

最新新闻

TRAE Work Design 模式:把设计从“开盲盒”变成可交付的流程,TaoToken 统一 Key 打通 Figma 到 Code

TRAE Work Design 模式:把设计从“开盲盒”变成可交付的流程,TaoToken 统一 Key 打通 Figma 到 Code

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 14:41:42 阅读更多 →
基于PJ85718DM与PIC24FJ1024GB610的嵌入式温度监测系统设计与实现

基于PJ85718DM与PIC24FJ1024GB610的嵌入式温度监测系统设计与实现

1. 温度监测方案的整体设计思路嵌入式温度监测听起来像是老生常谈的话题,但真正落到工业级或商用级产品上,要考虑的东西远比想象中复杂。这次我拿到的项目需求很明确:用PJ85718DM这颗温度传感芯片配合PIC24FJ1024GB610这款16位单片机&#xf…

2026/10/10 14:41:42 阅读更多 →
用Calibre-Web自托管私人书库:Docker部署与实战指南

用Calibre-Web自托管私人书库:Docker部署与实战指南

书多到一定程度,最累的反而不是看书,而是找书。本地文件夹里堆了几百本电子书,文件名连作者和版本都分不清;换个设备又想不起哪本在哪儿;想给朋友传一本,却发现文件早就不知道塞进了哪个下载目录。后来我把…

2026/10/10 14:41:42 阅读更多 →
基于PJ85718DM与PIC18F85K90的HVAC双通道温度监测方案

基于PJ85718DM与PIC18F85K90的HVAC双通道温度监测方案

1. 项目背景与核心需求拆解温度监测这件事,看起来简单,真要做到工业级可靠、本地远程双通道、还要在HVAC这种电磁环境复杂的场景里稳定跑上几年,里面的门道比想象中多得多。我这次要聊的,是一个基于PJ85718DM和PIC18F85K90两颗芯片…

2026/10/10 14:41:42 阅读更多 →
情绪周期实战:阿群战法捕捉短线脉冲行情的完整推演

情绪周期实战:阿群战法捕捉短线脉冲行情的完整推演

做交易这些年,我越来越相信一件事:市场里多数亏损,问题通常不出在方向判断上,而是在于没看懂情绪潮汐什么时候涨、什么时候退。前阵子商业航天板块走出来一轮典型的脉冲行情,从启动、发酵到剧烈分歧,前后不…

2026/10/10 14:41:42 阅读更多 →
Spring AI与PostgreSQL实现Java零基础RAG检索增强生成实战

Spring AI与PostgreSQL实现Java零基础RAG检索增强生成实战

最近不少做 Java 的同行都在问同一件事:零基础想用 Spring AI 在 Java 项目里做检索增强生成(RAG),到底怎么起步?很多人第一反应是去抄 Python 那套 LangChain 配合专用向量数据库的方案,其实用 Spring AI …

2026/10/10 14:40:41 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →