BigDL投机解码:Self-Speculative Decoding提速3倍原理
BigDL是一个开源深度学习框架,其推出的Self-Speculative Decoding技术能够显著提升大语言模型的推理速度。该技术无需额外的草稿模型或模型微调,就能为FP16和BF16模型带来显著的加速效果,是大语言模型推理优化的重要突破。## 传统投机解码的局限在传统的投机解码(Speculative Decoding)中,需要一个小型的草稿模型快速生成多个草稿令牌,然后由大型的目
BigDL投机解码:Self-Speculative Decoding提速3倍原理
【免费下载链接】BigDL 项目地址: https://gitcode.com/gh_mirrors/bi/BigDL
BigDL是一个开源深度学习框架,其推出的Self-Speculative Decoding技术能够显著提升大语言模型的推理速度。该技术无需额外的草稿模型或模型微调,就能为FP16和BF16模型带来显著的加速效果,是大语言模型推理优化的重要突破。
传统投机解码的局限
在传统的投机解码(Speculative Decoding)中,需要一个小型的草稿模型快速生成多个草稿令牌,然后由大型的目标模型并行验证这些令牌。虽然这种方法能够有效加速目标模型,但在实际应用中,很难维护甚至获得合适的草稿模型,尤其是当目标模型使用自定义数据进行微调时,寻找匹配的草稿模型更是难上加难。
Self-Speculative Decoding的创新之处
基于“self-speculative decoding”概念,BigDL的IPEX-LLM实现了无需单独草稿模型或模型微调的加速方案。其核心创新在于:自动将原始模型转换为INT4量化模型,并将该INT4模型作为幕后的草稿模型。这种设计巧妙地解决了传统投机解码对草稿模型的依赖问题,实现了**~30%的推理延迟加速**(在Intel GPU和CPU上分别针对FP16和BF16模型)。
工作原理简析
Self-Speculative Decoding的工作流程如下:
- 自动将原始FP16/BF16模型转换为INT4量化模型作为草稿模型
- 草稿模型快速生成候选令牌序列
- 原始高精度模型并行验证这些候选令牌
- 结合验证结果生成最终输出
这种方法充分利用了INT4模型的快速推理能力和原始模型的高精度优势,在保证输出质量的同时大幅提升了推理速度。
快速上手:启用Self-Speculative Decoding
使用IPEX-LLM的Self-Speculative Decoding非常简单,只需在加载模型时设置speculative=True参数即可。以下是基于Baichuan2模型的示例代码:
model = AutoModelForCausalLM.from_pretrained(model_path,
optimize_model=True,
torch_dtype=torch.float16, # GPU使用float16
load_in_low_bit="fp16", # GPU使用fp16
speculative=True, # 启用投机解码
trust_remote_code=True,
use_cache=True)
对于CPU平台,则需要使用bfloat16精度:
model = AutoModelForCausalLM.from_pretrained(model_path,
optimize_model=True,
torch_dtype=torch.bfloat16, # CPU使用bfloat16
load_in_low_bit="bf16", # CPU使用bf16
speculative=True, # 启用投机解码
trust_remote_code=True,
use_cache=True)
支持的模型与平台
IPEX-LLM的Self-Speculative Decoding目前已支持多种主流大语言模型,包括:
- Baichuan2:python/llm/example/GPU/Speculative-Decoding/Self-Speculation/baichuan2/
- ChatGLM3:python/llm/example/GPU/Speculative-Decoding/Self-Speculation/chatglm3/
- Mistral:python/llm/example/GPU/Speculative-Decoding/Self-Speculation/mistral/
- Qwen:python/llm/example/GPU/Speculative-Decoding/Self-Speculation/qwen/
- Llama2:python/llm/example/CPU/Speculative-Decoding/Self-Speculation/llama2/
支持的硬件平台包括Intel CPU和Intel GPU,用户可以根据自己的硬件环境选择合适的配置。
性能优化建议
为了充分发挥Self-Speculative Decoding的性能优势,建议:
- 使用长输入序列(长度≥256),以最大化并行验证的效率
- 根据硬件类型选择合适的数据类型(GPU用FP16,CPU用BF16)
- 适当调整
th_stop_draft参数(默认0.6),平衡生成速度和准确性 - 确保使用最新版本的IPEX-LLM,以获得最佳优化效果
总结
BigDL的Self-Speculative Decoding技术通过创新的INT4量化草稿模型设计,在无需额外模型的情况下实现了大语言模型推理速度的显著提升。这一技术不仅简化了部署流程,还为各种硬件平台上的大语言模型应用提供了性能保障。无论是科研实验还是生产环境,Self-Speculative Decoding都能成为提升效率的得力工具。
要开始使用这一技术,只需克隆BigDL仓库并参考相应的示例代码:
git clone https://gitcode.com/gh_mirrors/bi/BigDL
更多详细文档和示例可以在项目的官方文档中找到:docs/mddocs/Inference/Self_Speculative_Decoding.md。
更多推荐


所有评论(0)