0Pricing
AI Agents · 课时

量化与推测解码

对于自行托管的模型:使用 int8/int4 量化节省内存,使用推测解码提升吞吐量。

量化与推测解码 是 CoddyKit 上的免费 AI Agents 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Agents 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Agents 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

自托管模型优化

对于自托管的开源模型,有两种显著的提速和降本方法:

  1. 量化 — 权重更小、RAM/VRAM 占用更少、推理速度更快
  2. 推测解码 — 每个步骤生成多个令牌

量化基础

模型通常以 FP16(每个权重 16 位)存储。量化会将其降低到更少的位数:

  • FP16 — 基线
  • INT8 — 体积缩小 2 倍,质量损失几乎可以忽略
  • INT4 / Q4_K_M — 体积缩小 4 倍,质量略有损失
  • INT2 / 1.58-bit — 体积缩小 8 倍以上,质量有明显损失

GGUF 与量化级别

GGUF 是 llama.cpp 使用的格式。常见级别包括:

  • Q4_K_M — 最佳平衡(质量与大小)
  • Q5_K_M — 略大,质量略好
  • Q8_0 — 接近 FP16 的质量,压缩 2 倍

Quantise With llama.cpp

./llama-quantize models/llama-3-8b-f16.gguf models/llama-3-8b-q4_k_m.gguf Q4_K_M

# Or download pre-quantised from TheBloke / unsloth on HuggingFace

硬件影响

一个 8B FP16 模型需要约 16GB VRAM。同一个模型使用 Q4 后只需约 5GB VRAM,可以在便宜得多的 GPU 上运行。

推测解码

诀窍是:使用小型“草稿”模型提出令牌,然后让大型“目标”模型通过一次前向传播进行验证。速度通常可以提升 2-3 倍。

from transformers import AutoModelForCausalLM

target = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-70B')
draft = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-8B')

outputs = target.generate(
    input_ids,
    assistant_model=draft,    # speculative decoding
    max_new_tokens=200
)

为什么有效

草稿模型提出 K 个令牌。目标模型将它们全部 PARALLEL 处理(进行一次前向传播)。每个被接受的令牌都是“免费”的。被拒绝时会回滚;通常大多数令牌都会被接受。

其他解码加速方法

  • 前瞻解码 — 每个步骤生成多个草稿
  • Medusa — 联合训练的多个解码头
  • EAGLE — 快速的基于树的推测方法

实现这些功能的工具

  • vLLM — 同时支持量化(AWQ、GPTQ、FP8)和推测解码
  • llama.cpp — 支持量化,并通过 --draft-model 支持推测解码
  • TensorRT-LLM — NVIDIA 的生产级服务器
  • SGLang — 支持连续批处理的高速批处理友好型服务器

连续批处理

vLLM 的旗舰功能:在同一次前向传播中处理长度不同的多个请求。对于生产服务器而言,吞吐量会得到大幅提升。

选择量化级别

在 YOUR 评估集上测试每个候选级别。Q4_K_M 是默认的起点;如果质量低于阈值,则选择更高级别。

逐令牌延迟与吞吐量

不同的优化方法有助于改善不同的指标:

  • 单请求延迟:推测解码
  • 多用户吞吐量:连续批处理
  • 内存成本:量化

量化的效果

int4 量化的主要效果是什么?

回顾

量化到 Q4 以节省内存并提升速度。使用推测解码来降低延迟。使用连续批处理提高吞吐量。vLLM 和 llama.cpp 都实现了这三种方法。

常见问题解答

「量化与推测解码」课时是免费的吗?

是的 — 「量化与推测解码」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Agents 课程的其余内容,请升级到 CoddyKit PRO。 AI Agents 课程共包含 4 节课。

「量化与推测解码」这节课中我会学到什么?

对于自行托管的模型:使用 int8/int4 量化节省内存,使用推测解码提升吞吐量。 你通过在浏览器中直接运行的动手代码来练习 AI Agents,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AI Agents 需要有经验吗?

无需任何先前经验。CoddyKit 上的 AI Agents 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「量化与推测解码」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 AI Agents 课中编写并运行代码吗?

能。每节 AI Agents 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 为每一步设置令牌预算
  2. 模型路由(低价 -> 高价)
  3. 提示与结果缓存(Anthropic、Vertex)
  4. 量化与推测解码
← 返回 AI Agents