Jetson投机解码(vLLM)Skill jetson-speculative-decoding

本技能用于在Jetson设备上通过EAGLE-3或草稿模型的投机解码(Speculative Decoding)来优化vLLM推理服务的单流token生成性能,适用于TPOT成为瓶颈的场景。包含使用前提、Jetson专用调优参数、验证方法和错误处理。关键词:Jetson, vLLM, 投机解码, 推测解码, EAGLE-3, 草稿模型, TPOT, 边缘LLM推理, 推理加速

边缘LLM推理 0 次安装 0 次浏览 更新于 9/6/2026
名称 jetson-speculative-decoding
描述 当TPOT成为瓶颈时,为Jetson vLLM服务器添加EAGLE-3或草稿模型投机解码。
版本 0.0.1
开源协议 “Apache-2.0” metadata:
作者 “Jetson Team” tags: [jetson, llm, speculative-decoding] languages: [markdown] data-classification: public

Jetson投机解码(vLLM)

投机解码允许一个小型“草稿”模型提出token,由目标模型在单次前向传播中验证,从而降低每个token的延迟。在Jetson上,收益/损失主要由VRAM余量决定,而不是草稿质量。本技能编码了LLM可能不知道的部分。

目的

通过附加正确的--speculative-config并验证其是否改善单流解码速度,来调整现有的Jetson vLLM部署,以实现更快的token生成。

使用时机

  • TPOT/ITL是瓶颈(TTFT正常,只是输出速度慢)。
  • 工作负载为单流或低并发(≤2)。在高并发下投机通常无效。
  • Jetson系列为Thor或AGX Orin不要在Orin Nano/NX上建议EAGLE-3——通常没有足够的VRAM余量来同时容纳目标模型和草稿模型,否则启动时会OOM。

不适用场景

  • 高并发服务(≥8):批量解码通常优于投机解码;草稿模型只会抢占VRAM。
  • 没有已发布EAGLE-3头的模型——不要临时训练一个作为“修复”。
  • 在应用了jetson-inference-mem-tune标志且已将--gpu-memory-utilization推至接近上限后。请先释放至少约2 GB。

前提条件

  • 来自jetson-llm-serve的可用的vLLM服务器配方。
  • 除了目标模型外,还有足够的内存余量来容纳草稿模型或EAGLE-3头。
  • 在启用投机解码之前,来自jetson-llm-benchmark的基准测试基线。
  • 一个带有兼容EAGLE-3头的目标模型,或者一个用于回退路径的小型同族草稿模型。

操作说明

--speculative-config附加到jetson-llm-serve中显示的vllm serve命令上。

EAGLE-3(当目标模型有已发布的EAGLE-3头时首选):

--speculative-config '{
  "method": "eagle3",
  "model": "<eagle3-head-repo-id>",
  "num_speculative_tokens": 5,
  "draft_tensor_parallel_size": 1
}'

草稿模型(回退方案——配对小型同族模型):

--speculative-config '{
  "method": "draft_model",
  "model": "<small-draft-model-repo-id>",
  "num_speculative_tokens": 4,
  "draft_tensor_parallel_size": 1
}'

Jetson专用调优规则

  • num_speculative_tokens:在Thor上从5开始,在AGX Orin上从3开始。只有在草稿接受率>0.6时,更高的值才有收益。
  • 始终与jetson-llm-serve使用的vLLM运行时路径保持一致:在Thor上使用上游vLLM 0.20+(vllm/vllm-openai:latest)或已验证的原生vLLM 0.20+,在Orin JetPack 7.2 / L4T r39+上使用上游vLLM 0.20+,或在较旧Orin上使用NVIDIA-AI-IOT vLLM镜像。不要在Thor上使用Orin的NVIDIA-AI-IOT vLLM镜像。较旧的运行时可能缺少EAGLE-3或当前的--speculative-config结构。
  • 与非投机基线相比,将--gpu-memory-utilization降低约0.05,为草稿模型留出余量。

如何验证它是否真正有效

  1. 在启用投机解码之前和之后,以--concurrency 1运行jetson-llm-benchmark(vLLM路径)。
  2. 验收标准:在并发1下,目标throughput_tok_s提升≥30%,且tpot_ms_p50下降≥20%。
  3. 如果改进<10%,或在并发8下throughput_tok_s倒退,则禁用投机解码。草稿模型的消耗大于其回报。

局限性

  • 投机解码可改善解码密集型工作负载;它不能减少以TTFT为主的延迟。
  • 高并发会消除收益,因为连续批处理已使GPU保持忙碌。
  • Orin Nano/NX通常缺乏足够的内存余量来同时运行目标模型和草稿模型。
  • 接受率和草稿开销因模型而异,因此务必前后基准测试,而不是假设会加速。

错误处理

  • 如果vLLM拒绝--speculative-config,请确认Thor和Orin JetPack 7.2 / L4T r39+使用的是vLLM 0.20+,而较旧的Orin使用的是与JetPack匹配的NVIDIA-AI-IOT vLLM镜像;如果运行时仍然拒绝,则切换回非投机serving命令。
  • 如果启动时OOM,请降低--gpu-memory-utilization,使用更小的草稿模型,或禁用投机解码并交给jetson-inference-mem-tune处理。
  • 如果基准测试吞吐量倒退,请移除--speculative-config;糟糕的草稿路径比不进行投机更糟糕。

移交给

  • jetson-llm-benchmark:量化变化。
  • jetson-inference-mem-tune:如果在启用投机解码后启动时OOM。

来源

vLLM投机解码文档和Jetson AI Lab GenAI教程