跳转至

第17章 · AI 推理 · 阶段测试题答案


一 · 单选 (8 题)

1.1 B - INT8 量化减 4× 内存。

1.2 A - PTQ 训练后量化, 快速。

1.3 C - GPTQ 用 OBQ 改进。

1.4 B - PagedAttention 类比 OS 虚拟内存。

1.5 A - 连续批处理提升吞吐 10-24×。

1.6 C - Flash Attention 内存 O(n)。

1.7 B - Speculative Decoding 草拟+验证。

1.8 A - vLLM 是 UC Berkeley 推理引擎。


二 · 多选 (4 题)

2.1 ABCD - 都是推理引擎。

2.2 ABD - C 错: 量化是推理优化。

2.3 ABC - 都是 Attention 优化。

2.4 ABD - 都是 KV cache 优化。


三 · 简答 (5 题)

3.1 量化方法对比

方法 何时 质量 速度
PTQ 训练后 中 快
QAT 训练中 高 慢
Dynamic 推理 中 中
Static 训练后校准 高 中

3.2 KV Cache 内存

KV = 2 × n_layers × n_heads × head_dim × seq_len × batch × dtype_size
例: 7B, 2048 ctx, FP16, batch=1: 1 GB

GQA (Grouped-Query Attention): 减少 KV 头数, 内存 4-8× 减少。

3.3 PagedAttention

核心: 类比 OS 虚拟内存, KV 分块 + block table - 解决碎片 (传统 KV 预分配) - 支持共享 prefix (prefix caching) - 显存利用率从 ~50% → 90%+

3.4 Flash Attention 3 大技巧

  1. Tiling: Q/K/V 分块, 在 SRAM 算
  2. Recompute: 不存 attention matrix
  3. Online Softmax: 分块计算

结果: 内存 O(n²) → O(n), 速度 2-4×, 数学等价

3.5 Speculative Decoding

流程: 1. 小模型草拟 N 个 token (廉价) 2. 大模型并行验证 N 个位置 3. 接受合格 token, 拒绝重新采样

加速: 70-80% 接受率时 2-3× 加速, 不损失质量


四 · 编程 (2 题)

4.1 vLLM 部署

from vllm import LLM, SamplingParams

llm = LLM(
    model="meta-llama/Llama-3-8B-Instruct",
    tensor_parallel_size=1,
    gpu_memory_utilization=0.9,
    quantization="awq",
)
outputs = llm.generate(["Hello"], SamplingParams(max_tokens=100))

4.2 INT8 量化

from torch.quantization import quantize_dynamic

model = load_model()
quantized = quantize_dynamic(
    model,
    {torch.nn.Linear},
    dtype=torch.qint8,
)