Skip to content

v2.1.0

Latest
Compare
Choose a tag to compare
@Jiang-Jia-Jun Jiang-Jia-Jun released this 15 Aug 10:26
· 211 commits to develop since this release
d998efb

FastDeploy v2.1.0通过升级KVCache调度机制、增强高并发场景能力以及丰富采样策略,进一步提升用户体验和服务稳定性;通过CUDA Graph以及MTP等多项优化提升推理性能;此外,还新增支持多款国产硬件上文心开源模型的推理能力。

使用体验优化

  • KVCache调度机制升级:采用输入与输出的KVCache统一管理方式,解决此前由于kv_cache_ratio参数配置不当导致的OOM问题;解决多模态模型由于输出KVCache不足,生成提前结束的问题。部署时通过配置环境变量export ENABLE_V1_KVCACHE_SCHEDULER=1启用(下个版本会默认开启),即可不再依赖kv_cache_ratio的设置,推荐使用。
  • 高并发场景功能增强:增加max_concurrency/max_waiting_time控制并发,对于超时请求进行拒绝优化用户体验,保障服务稳定性。
  • 多样的采样方式支持:新增min_ptop_k_top_p采样方式支持,使用方式参考 采样说明;同时增加基于Repetition策略和基于stop词列表早停能力,详见 早停说明
  • 服务化部署能力提升:增加return_token_ids/include_stop_str_in_output/logprobs等参数支持返回更完整的推理信息。
  • 默认参数下性能提升:增强因max_num_seqs默认值与实际并发不一致时性能下降问题,避免手动修改max_num_seqs。

推理性能优化

  • CUDA Graph覆盖更多场景:覆盖多卡推理,支持与上下文缓存、Chunked Prefill同时使用,在ERNIE 4.5系列、Qwen3系列模型上性能提升17%~91%,详细使用可以参考最佳实践文档
  • MTP投机解码性能提升 :优化算子性能,减少CPU调度开销,提升整体性能;同时,相比v2.0.0版本新增ERNIE-4.5-21B-A3B模型支持MTP投机解码。
  • 算子性能优化:优化W4A8、 KVCache INT4、WINT2 Group GEMM等计算Kernel,提升性能;如ERNIE-4.5-300B-A47B WINT2模型性能提升25.5%
  • PD分离完成更多模型验证:P节点完善FlashAttention后端,提升长文推理性能,并基于ERNIE-4.5-21B-A3B等轻量模型完成验证。

国产硬件部署能力升级

  • 新增支持昆仑芯P800上ERNIE-4.5-21B-A3B模型部署,更多说明参考 昆仑芯P800部署文档
  • 新增支持海光K100-AI上ERNIE4.5文本系列模型部署,更多说明参考 海光K100-AI部署文档
  • 新增支持燧原S60上ERNIE4.5文本系列模型的部署,更多说明参考 燧原S60部署文档
  • 新增支持天数天垓150上ERNIE-4.5-300B-A47B和ERNIE-4.5-21B-A3B模型部署,并优化推理性能,更多说明参考 天数部署文档
ERNIE4.5 模型国产硬件推理适配情况(✅ 已支持 🚧 适配中 ⛔暂无计划)
模型 昆仑芯P800 昇腾910B 海光K100-AI 天数天垓150 沐曦曦云C550 燧原S60/L600
ERNIE4.5-VL-424B-A47B 🚧 🚧
ERNIE4.5-300B-A47B 🚧 🚧
ERNIE4.5-VL-28B-A3B 🚧 🚧 🚧
ERNIE4.5-21B-A3B 🚧
ERNIE4.5-0.3B 🚧

相关文档和说明

更详细的说明列举如下,

  • 新增功能

    • PD分离D服务支持W4A8在线/离线量化
    • PD分离开启Chunked Prefill下支持逐Chunk的KVCache传输
    • 支持logprobs返回
    • 支持OpenTelemetry采集请求处理状态
    • 新增return_token_ids参数,支持返回请求的输入和输出Token ID列表
    • 新增include_stop_str_in_output参数,支持结束符的返回
    • 新增QwQ模型 enable_thinking参数控制思考模式开关
    • 新增repetition早停功能支持
    • 新增stop参数支持
    • 新增多机张量并行部署支持
    • 新增服务请求并发与超时控制
    • 支持min_p/top_k_top_p采样
    • 支持bad_words
    • 优化OpenAI API-Server接口,支持extra_body扩充额外参数支持,废弃metadata的使用
  • 性能优化

    • PD分离EP并行下Decode的W4A8计算性能优化
    • 基于权重重排优化WINT2 Group-GEMM算子Kernel性能
    • MTP优化下支持开启Chunked Prefill
    • 优化MTP & 投机解码推理性能
    • 基于Triton优化Blockwise FP8量化性能
    • CUDA Graph 支持 Padding Batch,显存占用大幅减少
    • 新增Custom All Reduce算子,CUDA Graph支持TP并行
    • 支持Chunked Prefill下开启CUDA Graph
    • GetBolockShapeAndSplitKVBlock算子性能优化
    • Attention支持C4非对称量化推理
    • FlashAttn后端适配TP并行及支持FlashAttention V2
    • KVCache管理机制升级,当前仅支持GPU,通过export ENABLE_V1_KVCACHE_SCHEDULER=1启用
    • FlashAttention V3下支持开启C16/C8/C4的Chunked Prefill优化
    • 服务部署支持Engine自动聚合生成结果提升服务与客户端通信效率
  • 多硬件支持

    • 昆仑芯 P800支持ERNIE-21B-A3B Wint4/Wint8模型
    • 海光K100-AI支持ERNIE-4.5-300B-A47B & ERNIE-4.5-21B-A3B模型
    • 燧原S60支持ERNIE4.5系列模型
    • 天数支持ERNIE-4.5-300B-A47B & ERNIE-4.5-21B-A3B模型,并进行性能优化
  • Bug修复

    • 修复PD分离部署架构开启MTP时D服务首Token错误问题
    • 修复SFT后文心纯文模型Token采样越界问题
    • 修复XPU 非0卡启动显存OOM的问题
    • 修复XPU使用ENABLE_V1_KVCACHE_SCHEDULER=1性能下降问题
    • 修复Chunked Prefill下多模态模型并发推理模型崩溃问题
    • 修复Qwen3-8B模型生成结果乱码的问题
    • 修复RMSNorm硬编码的问题
    • 修复linear.py中qkv_bias没定义的问题
    • 修复max_tokens=1时报错的问题
    • 修复token_processor输入日志格式问题
    • 修复chunked_prefill下,chunk size 小于block size服务hang问题
    • 修复vl 场景下数据保存问题
  • 文档

    • 增加中文ReadME和MKDocs支持
    • 新增各模型部署最佳实践文档
    • 增加Sampling和Early Stopping使用文档说明
    • 更新CUDA Graph与动转静使用接口和文档
    • 更新模型支持文档
  • 其它

    • 新增中英文文档支持
    • 优化模型加载量化模型参数报错信息
    • 统一多模态模型和纯文模型的ModelRunner
    • 基于triton_utils更新WINT2 Triton算子
    • 优化代码中多个Config实现繁杂问题

What's Changed

New Contributors

Full Changelog: v2.0.0...v2.1.0