用途
该技能用于加速大语言模型(LLM)推理。根据资料,其目标是在不损失生成质量的前提下将推理速度提升 1.5-3.6 倍,适用于降低实时应用(聊天机器人、代码生成)的延迟、优化高并发服务的吞吐量,以及在有限硬件上高效部署。资料强调这些方法无需改变模型架构即可加快生成。
主要能力
技能覆盖三种加速技术:
-
草稿模型推测解码(Draft Model Speculative Decoding):使用小型草稿模型生成候选 token,由大型目标模型并行验证。资料称加速比为 1.5-2 倍,质量无损(数学上等价于目标模型),草稿模型比目标模型小 5-10 倍时效果最佳。
-
Medusa(多头预测):在现有模型上增加多个预测头,无需独立草稿模型即可预测未来 token。Medusa-1 冻结基础模型仅训练预测头,约 2.2 倍加速且无损;Medusa-2 联合微调基础模型与预测头,约 2.3-3.6 倍加速。采用树状注意力,单次前向传播即可评估整棵候选树。
-
Lookahead Decoding(Jacobi 迭代):将自回归解码重构为方程组并行求解,包含前瞻分支(并行生成 n-gram)与验证分支(验证有希望的 n-gram)。资料称加速比 1.5-2.3 倍,代码生成场景最高可达 3.6 倍,无需草稿模型或训练,开箱即用。
使用方式
资料提供了安装命令与代码示例。
安装:
# 标准推测解码(transformers)
pip install transformers accelerate
# Medusa(多解码头)
git clone https://github.com/FasterDecoding/Medusa
cd Medusa
pip install -e .
# Lookahead Decoding
git clone https://github.com/hao-ai-lab/LookaheadDecoding
cd LookaheadDecoding
pip install -e .
# 可选:带推测解码的 vLLM
pip install vllm
基础推测解码示例(Transformers 4.36+ 支持 assisted generation):加载目标模型(如 meta-llama/Llama-2-70b-hf)与草稿模型(如 meta-llama/Llama-2-7b-hf),在 generate 中传入 assistant_model=draft_model 即可启用。
Medusa 示例:通过 MedusaModel.from_pretrained 加载预训练 Medusa 模型(如 FasterDecoding/medusa-vicuna-7b-v1.3),调用 medusa_generate,可设置 posterior_threshold(接受阈值)与 posterior_alpha(树构建参数)。
Lookahead 示例:初始化 LookaheadDecoding,设置 window_size(前瞻窗口 W)、ngram_size(N-gram 大小 N)、guess_size(并行猜测数),调用 generate。
生产部署:vLLM 支持推测解码,通过 LLM(model=..., speculative_model=..., num_speculative_tokens=5, use_v2_block_manager=True) 初始化。
适用场景
资料列出的适用场景包括:需要 1.5-3.6 倍加速且不损失质量、降低实时应用延迟、优化高并发服务吞吐、在有限硬件上高效部署、以及在不改变模型架构的前提下加快生成。
限制与注意事项
资料未提供关于收费、价格、平台支持范围或具体硬件要求的信息。方法选择上,资料建议:新部署优先 Medusa;已有小模型版本可用时选草稿模型推测解码;希望零训练/零配置时选 Lookahead。超参数方面,草稿模型推测解码的 K 值默认 4(保守 2、激进 8);Medusa 的 posterior_threshold 标准值 0.09;Lookahead 的 W、N 依模型规模调整(7B 用 15/5,13B 用 10/5,33B+ 用 7/5)。资料还提示草稿模型应比目标模型小 5-10 倍,目标模型过小时建议改用 Medusa 或 Lookahead。以上数值与建议均来自资料原文,实际效果可能因环境而异。