欢迎光临
我们一直在努力

本地部署提速总纲:从换引擎到改权重,四层手段一次讲清

摘要:本文系统梳理本地大模型部署提速的完整方法论,将各种提速手段按「动手的深度」划分为四层:换引擎(工具层)、改摆法(调度层)、换模型(架构层)、改权重(磨刀)。文章先讲清本地推理慢的本质——显存带宽墙,再逐层拆解每层的核心手段与适用场景,包括显存卸载、KV cache 优化、MoE 稀疏激活、量化、剪枝等,最后给出四层叠加的顺序建议与常见误区,帮助读者快速定位适合自己的提速方案。

本地部署提速总纲:从换引擎到改权重,四层手段一次讲清

我每天都在折腾本地部署,测试各种"速度"和"质量"怎么平衡。前边我在《一文讲透 15 个大模型部署工具》里,把 15 个主流推理工具挨个过了一遍。但真上手测下来才发现:推理工具只是最底层——在它之上,还叠着一大片优化空间。

所以这篇文章试图从多个维度说清楚:本地部署到底分哪几个层级,每一层又分别该怎么提速。下面讲的是通用原理和框架,数据都来自公开资料;我自己的逐层实测会另开文章——后续我会针对每个层级,挑有代表性的方案做深度测试。

判据只有一条:你动的是程序、是摆法、是文件,还是文件里的数。 网上的提速说法各自都对,混在一起却容易得出离谱结论——比如以为剪枝能提速。这篇只做一件事:把这些手段按"动手的深度"分成四层。


零、先讲清一件事:本地推理到底慢在哪

这一节是所有提速手段的总钥匙。跳过它,后面每一条都只能死记。

大模型是一个字一个字往外蹦的。生成第 N 个字之前,模型要把自己从头到尾跑一遍。而"跑一遍"这件事,本质上不是在算,是在读——把几十亿个参数从显存里读出来,乘一遍,写回去,再读下一个字。

问题就出在这儿。以 H100 为例:它的算力高达 990 TFLOPS,但显存带宽只有 3.35 TB/s。一个字一个字生成时,GPU 绝大部分时间在等数据搬过来,算力是闲着的。

所以有个非常粗糙但极好用的近似:

生成速度 ≈ 显存带宽 ÷ 模型体积

模型小一半,速度就快差不多一倍。这解释了本地部署里绝大部分现象,也解释了为什么下面所有手段,归根到底只有三条路:

路子做法对应手段
少读一点 把模型压小 量化、剪枝、低比特
读快一点 让它待在更快的存储里 显存卸载、MoE 专家分置
一次多算几个 别一个字一个字磨 批处理、投机解码、前缀复用

记住这三条路,再看网上那些"提速 N 倍"的说法,你就能立刻判断它在哪条路上、对你有没有用。


一、四层手段,先给结论

层判据干什么常见手段收益 / 代价
① 工具层 换跑它的程序,模型不动 换推理引擎 Ollama / llama.cpp / vLLM / SGLang / FreeToken / AirLLM 零风险 · 收益看场景
② 调度层 改权重放哪、干活怎么排 调参数,一个字节不改 显存卸载 / MoE 专家分置 / 批处理 / 投机解码 / 前缀复用 零成本 · 收益中等
③ 架构层 换一个模型文件 换模型架构 MoE 稀疏激活 / MLA / 线性注意力混合架构 / 蒸馏 要重下 · 收益大
④ 改权重 改手里这个文件 压缩文件本身 量化 / 剪枝 / 低比特 / 稀疏化 可能掉智 · 收益最大

两条最容易搞混的,先说死:

第三层和第四层的分界,是"文件换没换"。 换一个 MoE 版本、换一个原生小模型,那是换模型,第三层。把手里这个做量化、做剪枝,文件还是那个文件,那是第四层。

FreeToken 和 AirLLM 看着像新引擎,其实不算。 它们的核心手艺全是调度——带宽自适应混合调度、双缓冲预取、专家缓存运行时热改。所以它们归第二层,不是第一层的新引擎。同理 KTransformers 也是。

术语大白话(写给你也写给我自己)

词人话
自回归解码 一个字一个字往外蹦,蹦完一个才能算下一个
显存带宽墙 GPU 算力过剩,但数据搬得太慢,算力在干等
prefill / decode prefill = 读题(一次性把你的输入算完);decode = 答题(一个字一个字生成)
TTFT / TPOT TTFT = 你等多久看到第一个字;TPOT = 之后每个字之间隔多久
MoE / A3B 模型养了一堆专家,每个字只叫其中几个上工。A3B 就是"每次只叫三十亿参数的活"
激活参数 每生成一个字,真正下场干活的参数量。这个数决定速度,不是总参数
KV cache 模型"记住"对话占的显存,对话越长它越胖
-ngl 把多少层搬进显卡。塞得多就快,但吃显存
–n-cpu-moe 只把 MoE 专家那部分丢给 CPU,注意力留在显卡
量化档(Q4_K_M / Q5_K_M) 每个参数用几位来存。位越多越准、越大、越慢
imatrix 先跑一遍校准文本,看清楚哪些参数重要,量化时优先保它们
剪枝 把不干活的专家整块摘掉
稀疏化 不摘整块,而是规定"每四个数里最多留两个非零"这种硬规矩
t/s 每秒生成多少个字。这就是你盯着屏幕等的那个速度

二、第一层:换引擎(工具层)

模型一个字节没动,只是换了个程序来跑它。零风险,但收益完全取决于你的场景。

这一层就是《一文讲透 15 个大模型部署工具》讲的内容——那篇把 15 个主流引擎挨个拆解过,本文只取它和上面三层的相对位置,不重复展开了。

2.1 五个主流引擎,各自解决什么

引擎看家本事适合谁不适合谁
Ollama 一条命令跑起来,自动管显存 个人玩家、快速试模型 多人共用一台机器
llama.cpp 纯 C++,跨平台,GGUF 原生,参数能捏到最细 单机、CPU/核显、嵌入式、想把每层都控制住 高并发服务
LM Studio 图形界面,拖进去就能聊 不想碰命令行的人 需要定制和调优
vLLM PagedAttention + 连续批处理,生产环境事实标准 多人共享、对外提供 API 个人桌机快速试模型
SGLang RadixAttention 前缀复用,结构化输出和 Agent 循环更快 AI Agent、RAG、多轮工具调用 只想一键跑模型

几个补充:

  • MLX 是 Apple Silicon 的亲儿子,M 系列 Mac 上比通用引擎更贴硬件。
  • TensorRT-LLM 是 NVIDIA 官方的性能天花板,代价是只认 N 卡、配置复杂。
  • ExLlamaV3 是 N 卡单机玩家的速度怪,用自家的 EXL2/EXL3 格式。

2.2 一个反直觉的结论

同一张卡、同一个模型,装得下和装不下,最优引擎不是同一个:

场景OllamaFreeToken谁赢
装不下(8bit 约 38G) 58.8 t/s 132.5 t/s 会调度的赢
装得下(4bit 约 22G) 239.6 t/s 225.3 t/s 笨的赢

装不下就用聪明的,装得下就用笨的。

道理不复杂。装得下的时候权重全在显存里,调度越简单越快,聪明调度那点额外开销是白付的。装不下的时候必须往内存卸,怎么卸、什么时候搬就成了胜负手。

⚠️ 这组数字是第三方实测(RTX 5090 32G + Ultra 9 285K + 64G DDR5,模型 Qwen3.6-35B),不是我跑的。

2.3 装不下时怎么办

这是消费级显卡最常撞的墙。路子有三条,都属第二层,但通常靠专门的引擎实现:

  • KTransformers:异构计算,CPU + GPU 分工,主打在消费级显卡上跑超大模型。
  • AirLLM:极端形态,逐层流式加载,有人拿它在 4G 显存上跑过 2.8T 参数。代价是慢,拿时间换空间。
  • FreeToken:带宽自适应混合调度 + 双缓冲预取 + 专家缓存热改,2026 年 8 月开源。

一句话:它们不是"更快的引擎",是"装不下时才需要的引擎"。


三、第二层:改摆法(调度层)

这层最值钱,因为它一分钱不花、不伤模型,还最容易被忽略。

它有两半:一半是往哪放,一半是怎么排。

3.1 往哪放:显存、内存、硬盘

权重可以待在三个地方,速度差着数量级:

位置带宽(大致)什么时候放这
显存(VRAM) 最快,几百 GB/s 到 TB/s 级 能放下的都放这
内存(DDR) 慢一个数量级 放不下又必须跑的部分
硬盘(SSD) 再慢一个数量级 实在没办法的最后一层

关键知识点来了——"往内存卸"有两种卸法,差别巨大:

-ngl(整层卸载):把前 N 层整个搬到显卡,剩下的整个留 CPU。问题是 Transformer 的一层里塞了两样东西——注意力(小、带宽敏感、每个字都要用)和前馈网络(大、MoE 模型里大部分时间闲着)。整层卸载会把注意力一起搬走,而注意力恰恰是你最搬不起的那部分。

–n-cpu-moe(只卸专家):只把 MoE 的前馈专家张量搬到 CPU,把注意力、路由、嵌入层、共享专家全留在显卡。

-ngl 整层卸–n-cpu-moe 只卸专家
搬到 CPU 的 整层:注意力 + 前馈 只有专家的前馈张量
注意力在哪 被卸载的层在 CPU 永远在 GPU
每字要读多少 所有被卸的权重 只有被路由选中的专家
适合 差一点点就装得下的稠密模型 根本装不下的 MoE 模型

同样的模型、同样的卡、搬走同样多的字节,只卸专家能快得多。 很多人试了一次 -ngl 觉得"卸载太慢"就去买显卡,其实是参数用错了。

两个实操提醒:

  • 先调上下文长度,再调卸载档位。 KV cache 是留在显存里的,128K 上下文可能比权重还吃显存。先砍上下文,再一档一档加 –n-cpu-moe。
  • PCIe 带宽是天花板。 PCIe 4.0 x16 理论约 32 GB/s,5.0 约 64 GB/s。专家从内存搬到显卡走的正是这条道,所以卸载永远是"能用",不是"好用"。
  • 3.2 KV cache:显存里那本被忽略的账

    很多人算显存只算权重,结果一开长对话就爆。因为还有 KV cache。

    它是干什么的:模型每生成一个字,都要回头看前面所有字。如果每次都重算,复杂度是平方级的,长对话直接卡死。所以干脆把算好的 K、V 存下来,用显存换时间。

    代价是它随对话长度线性膨胀。 公式:

    每 token 的 KV 占用 = 2 × 层数 × KV头数 × 头维度 × 每元素字节数

    拿 Llama-3 70B 举例(80 层、8 个 KV 头、头维度 128、FP16 两字节):

    2 × 80 × 8 × 128 × 2 = 327,680 字节 ≈ 320 KB / token

    • 4K 上下文 → 约 1.3 GB
    • 32K 上下文 → 约 10.5 GB
    • 128K 上下文 → 约 40 GB

    而且这是"每条对话"。 8 条 32K 的对话同时挂着,光 KV cache 就奔着 32 GB 去了。

    这就是为什么"模型能跑 128K 上下文"和"能同时跑很多条 128K"完全是两件事。

    3.3 怎么排:一次多算几个

    这一半一个字节都不改,只改干活的次序。

    (1)连续批处理(Continuous Batching)
    老式批处理是凑齐一批一起跑,跑完才能进下一批——快的人要等慢的人。连续批处理改成每轮迭代都能进人出人,GPU 几乎不空转。vLLM 靠它在并发负载下把显卡利用率顶到 85-92%。

    这是多人共用场景收益最大的一项,也是 Ollama 的短板。

    (2)PagedAttention:解决"装得紧不紧"
    老办法给每条对话预留一整块连续显存,按最大长度预留。结果短对话浪费一大半,长对话进来又找不到连续空间。

    vLLM 借鉴操作系统分页:把 KV cache 切成固定大小的块(通常 16 token 一块),按需分配,用块表把逻辑位置映射到物理块。显存利用率从大约 40% 提到 95%,吞吐提升 2-4 倍。

    ⚠️ 别搞错它的边界:PagedAttention 不会压缩每个 token 的 KV 数据,它优化的是分配、回收、共享和寻址。想让每个 token 变小,得靠量化、GQA 或 MLA。

    (3)前缀复用(Prefix Caching):解决"哪些能不重算"
    大量应用的每条请求都带着同一段长系统提示词、同一份 RAG 文档。没优化时,这段前缀会被反复算一百遍。前缀复用把算好的 KV 块留下,新请求命中就直接用。

    • vLLM 叫 Automatic Prefix Caching
    • SGLang 用 RadixAttention(基数树),能匹配"最长共用前缀"而不只是完全相同的前缀,官方报告在 prefix-heavy 负载下吞吐最高 6.4 倍
    • llama.cpp 也有,日志里那个 f_keep 说的就是保留了百分之多少的前缀

    ⚠️ 边界同样明确:必须 token 序列完全一致(语义相近不算命中);它省的是 prefill(降 TTFT),对之后每个字的生成速度没有帮助;不要把动态时间戳、随机 ID 放在提示词开头,那会让后面整段都失去命中。

    (4)投机解码(Speculative Decoding)
    这一条最聪明,也是个人单机最容易被忽略的。

    思路:让一个小模型先打 K 个字的草稿,大模型一次前向传播把 K 个字全验完,对了的留下,错的从错的那个位置重来。

    关键在于:验证是并行的,生成是串行的。 验 K 个字和生成 1 个字的开销差不多。

    而且它有个严格的数学保证:输出分布跟大模型自己一个字一个字生成完全一致,不是近似,是等价。 所以它没有质量损失。

    真实加速全看接受率:

    任务类型接受率实际加速
    代码生成 87% 2.3x
    翻译 82% 2.0x
    摘要 79% 1.9x
    数学推理 72% 1.7x
    创意写作 68% 1.6x

    (Llama-3 70B 单卡 H100,SSD 论文实测;吞吐 125 → 250 t/s,显存多花约 4.7%)

    代码最快,因为语法和样板套路可预测;创意写作最慢,因为大模型自己都不确定。

    ⚠️ 几条不能踩的线:草稿模型要和目标模型同家族(Llama-3 8B 配 Llama-3 70B 才行,Mistral 配 Llama 接受率撑不住);温度越高接受率越低;输出很短的任务(<50 字)摊不薄初始化开销;显存已经满了就别加。


    四、第三层:换模型(架构层)

    这是收益最大的一层,也是最反直觉的一层。

    4.1 MoE:参数多的,可能比参数少的快得多

    MoE(混合专家)把前馈网络拆成很多个专家,每个字只挑几个上工。名字里的 A3B 说的是"激活 3B"。

    关键在于区分两个数字:

    决定什么
    总参数 占多少显存、文件多大
    激活参数 每生成一个字要算多少,这个决定速度

    举个极端例子:一个 35B-A3B 的 MoE 模型,每字只激活 3B;一个 27B 的稠密模型,一个字一个字都得全体过一遍。前者参数多三成,速度能快将近十倍。

    所以看模型先看激活量,别看总参数。 这一条能帮你省下最多时间。

    代价是:总参数一个没少,35B 的权重该占的显存一点没省。 MoE 省的是算力不是显存——它把"能不能算得快"和"装不装得下"这两件事彻底分开了。

    4.2 压缩 KV cache:GQA、MLA

    对话一长,显存大头就从权重切换到 KV cache 了。三种主流做法:

    做法思路效果
    MQA 所有注意力头共用一份 K/V 砍得最狠,质量掉得也明显
    GQA 分组共享,比如 8 组 KV 头伺候 64 个 Q 头 现代开源模型的事实标准,几乎免费
    MLA 换个思路——不共享头,而是把 K/V 本身压成一个低维潜向量存起来,算的时候再还原 更狠

    MLA 值得多说一句。它不是"让几个头共用",而是压缩存储格式本身。DeepSeek 的做法是:存的时候存一个压缩潜向量,算注意力的时候用学到的投影矩阵现场还原 K 和 V。

    公开口径:KV cache 降到标准多头注意力的约 5-7%,也就是省下九成以上。而且 DeepSeek 的消融实验显示,在同等压缩比例下,MLA 的质量保持能力明显优于 GQA,调好了甚至能反超 MHA。

    ⚠️ 这个数字来自 DeepSeek 公开论文,不是我实测。

    (顺带一个小坑:位置编码不能直接加在压缩后的向量上,否则压缩空间就废了。MLA 的解法是"解耦 RoPE",把语义内容和位置感知拆成两条独立路径。)

    4.3 线性注意力与混合架构

    这是 2026 年最热闹的方向。

    标准注意力的复杂度是 O(N²)——上下文翻倍,计算量翻四倍。线性注意力把复杂度降到近似 O(N),代价是"记性"差一点。

    业界的解法是混着用:大部分层用线性/卷积层干脏活累活,少数层留标准注意力保精度。

    模型混合比例公开口径的收益
    Qwen3-Next-80B-A3B 75% 线性注意力(Gated DeltaNet)+ 25% 门控注意力 32K 以上长上下文吞吐比 Qwen3-32B 高 10 倍以上;训练成本降九成以上
    MiniMax Text-01 / M1 1:7 456B 参数上落地
    Kimi Linear 混合线性注意力 2025 年 10 月开源
    LFM2-24B-A2B 40 层里 30 层门控短卷积 + 10 层 GQA 24B 总参数 / 2.3B 激活,Q4 GGUF 14.4 GB,官方口径在 Ryzen AI CPU 上解码 112 t/s

    LFM2 这个路子尤其适合本地:卷积块的状态大小是固定的,不随上下文长胖。只有那 10 层注意力会长 KV cache,等于把 KV 膨胀砍掉了四分之三。

    ⚠️ 以上都是厂商公开口径,不是我跑的。LFM2 我已经下到本地,跑完会单独出实测。

    4.4 蒸馏

    教师模型带学生模型,把大模型的本事塞进小模型。DeepSeek-R1 把 671B 的推理能力蒸馏到 1.5B-70B 的稠密模型上,R1-Distill-Qwen-32B 在 MATH-500 上拿到 94.3%。

    对本地党的意义很直接:蒸馏出来的小模型不需要 MoE 路由,单卡就能跑,还带着大模型的推理能力。

    五、第四层:改权重(磨刀)

    终于到了动模型本身的一层。这里每一刀都是拿智商换体积或速度,区别只在划不划算。

    5.1 量化:先分清几种格式

    量化的意思是:每个参数本来用 16 位浮点数存,现在用 4 位整数存。体积小四倍,读起来快四倍,代价是精度损失。

    GGUF(llama.cpp / Ollama 用,唯一能跑 CPU 和混合推理的格式):K-quants 混合精度,不同层给不同位宽。

    GPTQ:用 Hessian 矩阵(二阶信息)逐层最小化重建误差,老牌 GPU 4-bit 标准,存量生态最大。

    AWQ:不看二阶信息,改看激活值分布,把最重要的那 1% 权重保护起来。2026 年 GPU 生产推理的默认选择,加载也最快。

    EXL2 / EXL3:位宽能按小数设(比如 4.65 bit),精确卡死内存预算,ExLlama 专用。

    FP8:Hopper / Ada 及更新的卡有硬件加速,接近无损。

    一条最实用的经验法则:

    同样显存下,大模型的低精度版,几乎总是打赢小模型的高精度版。
    Q4 的 70B(约 40 GB)在几乎所有测试上都胜过 FP16 的 13B(约 26 GB)。

    推论:先挑你显存装得下的最大参数量,再把剩下的显存花在更好的量化档或更长的上下文上,而不是换更高精度的小模型。

    位宽的黄金点:

    位宽情况
    8 bit 接近无损,但省得不多,一般不划算
    4 bit 甜点区。 质量损失通常 1-3%,体积省四倍
    3 bit 开始明显掉,推理和代码任务掉得比闲聊厉害
    2 bit 普通训练后量化(PTQ)的悬崖,只有量化感知训练能救
    1.58 bit BitNet 那种三值模型(权重只取 -1/0/+1),是训练出来的,不是转出来的

    ⚠️ 两个细节:

    • imatrix(重要性矩阵)在低位宽下特别值钱。 它先跑一遍校准文本,看清楚哪些参数重要,量化时优先保它们。Q4 档可有可无,Q3 及以下基本是必需品;IQ 系列(IQ3_M、IQ4_XS)更是几乎必须配 imatrix。
    • 训练越充分的模型越难量化。 参数里塞的信息越密,压起来损失越大。所以前沿模型越大,无脑上低位宽的风险越高。

    5.2 剪枝:摘掉不干活的

    剪枝分两大类,区别比大多数人想的重要:

    结构化剪枝非结构化剪枝
    摘什么 整个专家、整个注意力头、整个通道 单个权重,谁不重要摘谁
    摘完什么样 规整的小模型 稀疏矩阵,到处是洞
    硬件友好吗 友好。 普通引擎直接跑 不友好。 需要专用稀疏库或硬件才能真提速
    提速吗 看情况 不加速就纯属给自己找麻烦

    MoE 的专家剪枝是结构化剪枝,所以它对普通用户是可用的——剪完就是个正常的小模型,llama.cpp 照跑。

    剪枝最关键的一件事:校准集决定砍谁。

    主流的判据是"路由权重 × 专家激活范数",在一份校准文本上统计出来。这意味着:你喂什么文本,就决定砍掉谁。

    喂英文代码,中文专家的得分就低,整块被清除——这不是误伤,这是算法按你说的在做。所以同一份模型,换一份校准集,剪出来就是两个物种。

    ⚠️ 必须纠正一个常见误解:剪枝不等于提速。

    MoE 剪掉一半专家,每个字要激活的参数量一个没少——还是那套 top-k 路由,说好激活 3B 还是 3B。砍掉的是本来就不干活的那批。

    省的是仓库面积,不是每次出工的人数。

    所以剪枝买的是"装得下",不是"跑得快"。想提速,剪枝得配合"少卸几层到 CPU"才能间接兑现。

    📌 我实测过一版剪掉一半专家的 Qwen3.6-35B-A3B:体积小了三成三、卸载层数少了 11 层、量化档还更高——三样便宜占尽,速度反而慢了约一成,代码跑分还反超了原版。这个矛盾很值得单写一篇,这里先按下不表。

    5.3 低比特:2 bit 是道悬崖

    2 bit 往下,普通的训练后量化基本崩了,只有量化感知训练(QAT)能保住可用模型。

    QAT 是在训练过程中就模拟量化噪声,让模型学会适应。QLoRA 是更常见的折中——基础模型量化到 4 bit,只训练高精度的 LoRA 适配器。

    BitNet 是另一条路:1.58 bit 三值量化,权重只取 -1/0/+1。它"不在那条曲线上"——因为它从一开始就只有这些位,没有精度可丢。代价是你不能把现有模型转成它,只能从头训。

    5.4 稀疏化:给权重定硬规矩

    剪枝是"整块拿走",稀疏化是"零敲",而且敲的位置要符合硬件能识别的图案。

    最主流的是 N:M 半结构化稀疏,其中 2:4 是 NVIDIA Sparse Tensor Core 的门槛——每连续 4 个权重里最多留 2 个非零,这样才能触发硬件加速。

    难点在于:全精度模型的权重分布是单峰的(都挤在零附近),硬要砍掉一半,砍到的往往是有信号的权重,性能断崖式下跌。

    有意思的是低比特和稀疏化能互相成全。微软的 Sparse-BitNet 发现:1.58 bit 的 BitNet 权重天然分成三峰,约 42% 已经是零,砍的时候阈值落在噪声区而不是有效权重上。结果在 2:4 稀疏度下,BitNet 性能只掉 5.7%,而 BF16 基线崩了 18.8%。


    六、四层怎么叠加:我的顺序建议

    先榨干上两层,再考虑动下面。

    理由很实在:头两层不要钱、不伤模型,改完不满意撤回来就是了,模型一个字节没动。后两层改的是模型本身,改坏了就是改坏了,只能重下——重下一个 20G 的模型,在普通家宽下是大半天。

    四层内部也有优先级:

    层先做什么
    ① 工具层 先确认场景:单人用 Ollama/llama.cpp,多人用 vLLM/SGLang,装不下才上 KTransformers/FreeToken
    ② 调度层 先把上下文砍到你要的长度,再调卸载档位;能开批处理/前缀复用就开;有余量再上投机解码
    ③ 架构层 换模型前先看激活量;长对话为主优先挑 GQA/MLA/混合架构
    ④ 改权重 量化到 Q4_K_M 起步,能跑就别再往下压;剪枝只在装不下时才考虑;低比特和稀疏化是最后手段

    七、五个常见误区

    误区真相
    "剪枝能提速" 剪枝省的是显存不是算力。MoE 剪一半,每字激活量一个没少
    "显存塞得越满越快" 有拐点。过了之后多塞一层,显存涨了速度不动
    "模型支持 128K 就能开很多条 128K" KV cache 按"每条对话"算,8 条 32K 就能吃掉几十 GB
    "量化到 2 bit 省一半" 2 bit 是 PTQ 的悬崖。4 bit 才是甜点,再往下掉得比省得快
    "PagedAttention 压缩了 KV cache" 它优化的是分配和碎片,每个 token 的 KV 一点没小。想变小得靠量化、GQA 或 MLA

    八、接下来我会逐层实测

    这篇讲的是通用原理。接下来我会在自己的机器上(RTX 3070、8G 显存、R9-7900、64G DDR5 5200)按层往下测,每层单独出一篇:

    #要测什么对应层
    1 不同引擎在同一台 8G 机器上的真实差距 工具层
    2 –n-cpu-moe 的档位梯度,以及 32K / 64K / 128K 长上下文的掉速曲线 调度层
    3 两个 MoE 架构对比(含已下好的 LFM2-24B-A2B) 架构层
    4 剪枝到底换来了什么(三层塌陷 + 速度对照) 改权重

    补一项我回来更新一次这篇。


    来源与口径

    本文是科普整理,数据与结论来自公开资料:

    • 引擎选型:vLLM / SGLang / Ollama / llama.cpp 官方文档与 2026 年多篇第三方横评。
    • Ollama vs FreeToken 速度对照:第三方实测(RTX 5090 32G + Ultra 9 285K + 64G DDR5,Qwen3.6-35B),非本人机器。
    • 带宽墙:H100 算力 990 TFLOPS、显存带宽 3.35 TB/s,公开硬件规格。
    • 投机解码接受率与加速:SSD 论文实测(Llama-3 70B,单卡 H100)。
    • KV cache 容量公式与算例:多篇工程博客一致口径,以 Llama-3 70B(80 层 / 8 KV 头 / 128 头维度 / FP16)为算例。
    • PagedAttention / 前缀复用:vLLM 与 SGLang 官方文档及 PagedAttention 论文(arXiv:2309.06180)。
    • MLA 压缩比:DeepSeek 公开论文口径。
    • Qwen3-Next / LFM2 / MiniMax / Kimi Linear 的混合比例与收益:各厂商官方发布口径,非实测。
    • 量化格式与位宽黄金点:llama.cpp 社区与 2026 年量化综述口径。
    • 剪枝判据、结构化与非结构化区别:MoE 推理优化综述(arXiv:2412.14219)及多篇专家剪枝论文。
    • 稀疏化与 Sparse-BitNet:微软研究院(arXiv:2603.05168,CVPR 2026)。
    • 📌 唯一一处本人实测(剪枝那句):llama.cpp build 10166,模型 qwen36-reap50-Q5_K_M-imat.gguf,完整数据另文。

    ⚠️ 硬件、驱动、llama.cpp 版本不同,结果会有出入。抄参数之前先在自己机器上跑一遍。

    更多AI相关,如免费API资讯、实测、教程,请关注同名GZH。

    赞(0)
    未经允许不得转载:171主机测评 » 本地部署提速总纲:从换引擎到改权重,四层手段一次讲清
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址