aoniAI Hub
返回指南列表
性能优化性能量化MTP调优NVFP4

性能优化:量化、推测解码与调优

模型量化、MTP 推测解码、KV Cache 等加速技巧,让你的 Jetson 跑得更快

性能优化

通过量化、推测解码、显存调优等技巧,最大化 Jetson 上的 AI 推理性能。


一、量化方案对比

以下内存节省比例均以 FP16 为基线计算。

量化类型 位宽 精度损失 内存节省 适用平台 备注
NVFP4 4-bit 极小 ~75% Thor NVIDIA 原生 4-bit,Blackwell 特性
FP8 8-bit 很小 ~50% Thor Hopper/Blackwell 起支持,Orin 不支持
INT4 (AWQ) 4-bit ~75% Thor / Orin vLLM 原生支持,推荐 Orin 大模型场景
BF16 16-bit 0% Thor / Orin 相对 FP16 无内存节省,但数值稳定性更好

FP8 特别说明

FP8 在 Jetson Orin 上不可用。 Orin 基于 Ampere 架构(GA10B),FP8 硬件支持从 Hopper(H100)/ Ada Lovelace 架构才开始引入。如需在 Orin 上降低精度,请使用 INT4 AWQ。

推荐量化策略

场景 推荐量化 说明
Thor 旗舰性能 NVFP4 NVIDIA 原生 4-bit,最优精度/性能比
Thor 通用推理 FP8 近乎无损的推理质量
Orin(8GB/16GB/32GB)大模型 INT4 (AWQ) AWQ 4-bit 显著降低内存占用
Orin NX / Orin Nano(4GB/8GB)超小模型 BF16 或 INT4 AWQ llama.cpp + GGUF Q4_K_M 也是可选路径(见下方备注)

GGUF 路径备注:GGUF Q4_K_M 是 llama.cpp 社区优化的 4-bit 格式,在低内存 Jetson(如 Orin Nano 4GB)上可通过 llama.cpp 的 CUDA 后端运行。但它不是 vLLM 生态的格式——如果你以 vLLM 为主要引擎,优先选 AWQ;如果内存极度受限且模型小,llama.cpp + GGUF 是备选方案。


二、推测解码(Speculative Decoding)

在 Jetson 等带宽受限平台上,推测解码可以用一个轻量 draft 模型减少大模型的访存开销,提升吞吐。

# vLLM 推测解码示例
--speculative-model <draft_model_id> \
--num-speculative-tokens 5

适用建议

场景 推荐
内存充裕(16GB+) 可启用,draft 模型额外占用少量显存
内存紧张(8GB 以下) 不建议,draft 模型会挤占目标模型的 KV cache
大 batch 高吞吐 收益明显
单请求低延迟 收益有限,有时反而增加延迟

三、KV Cache 调优

前缀缓存(Prefix Caching)

--enable-prefix-caching

对于多轮对话和固定 system prompt 场景,相同前缀的 KV 块被复用,可显著降低首 token 延迟。

GPU 内存分配

--gpu-memory-utilization 0.75  # 16GB+ 设备
--gpu-memory-utilization 0.65  # 8GB 设备
--gpu-memory-utilization 0.55  # 4GB 设备(Orin Nano)

重要:Jetson 使用 CPU/GPU 统一内存架构,不存在独立 VRAM。--gpu-memory-utilization 设得过高会挤占系统进程和 PyTorch 框架本身所需内存,导致 OOM。建议比独显平台(A100/H100)更保守:

设备内存 建议值 说明
4GB(Nano) 0.50 - 0.55 系统开销占比大
8GB 0.60 - 0.65 保留 2.4GB+ 给系统/框架
16GB+ 0.70 - 0.75 余量充足时可适当提高
32GB / 64GB(AGX) 0.80 - 0.85 内存充裕

四、Jetson 系统级优化

性能模式

# 设置为最大性能模式
sudo nvpmodel -m 0
sudo jetson_clocks

# 查看当前功耗模式
sudo nvpmodel -q

# 查看当前时钟频率
sudo jetson_clocks --show

关闭桌面图形界面(Headless 部署)

# 节省内存,重启后生效
sudo systemctl set-default multi-user.target

# 如需恢复图形界面
sudo systemctl set-default graphical.target

增大 Swap(紧急缓冲)

# 当模型加载时内存不足,Swap 可防止 OOM Kill
# 但会严重拖慢推理,仅作应急手段
sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Docker 优化参数

docker run -it --rm \
  --runtime=nvidia \
  --gpus all \
  # 挂载缓存目录,避免重复下载模型
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  -v ~/.cache/vllm:/root/.cache/vllm \
  # 锁定 CPU 核心,避免跨簇调度
  --cpuset-cpus 0-7 \
  # 共享内存,用于多进程通信
  --shm-size=2g \
  <your_image>

五、快速参考:按设备的最佳配置

设备 量化 gpu-memory-util 推荐引擎
Thor (64GB+) NVFP4 0.85 vLLM
Thor (32GB) FP8 0.80 vLLM
Orin AGX (32GB/64GB) INT4 AWQ 0.80 vLLM
Orin (16GB) INT4 AWQ 0.70 vLLM
Orin NX (8GB) INT4 AWQ 0.65 vLLM
Orin Nano (4GB) BF16 / GGUF Q4_K_M 0.50 vLLM 小模型 / llama.cpp

下一步