FastDeploy 是由 PaddlePaddle 团队开发的一个开源工具,专注于快速部署深度学习模型。它支持多种硬件和框架,覆盖图像、视频、文本和语音等20多种场景,包含150多个主流模型。FastDeploy 提供生产环境开箱即用的部署方案,简化开发流程,提升推理性能。它支持从云端到移动设备和边缘设备的部署,适合企业和开发者快速实现AI应用。项目采用 Apache-2.0 许可证,社区活跃,文档齐全,适合追求高效部署的开发者使用。
功能列表
- 支持多种硬件:包括 NVIDIA GPU、昆仑芯 XPU、昇腾 NPU、RK3588 等,适配多种芯片。
- 多种模型支持:覆盖图像分类、目标检测、OCR、语音合成等20多种场景,支持150+模型。
- 高效推理加速:提供量化支持(如 W8A16、FP8)、推测解码、多 token 预测等技术。
- 生产环境开箱即用:支持 vLLM 和 OpenAI API,简化服务部署。
- 可视化部署:结合 VisualDL,支持模型配置修改、性能监控和服务管理。
- 跨平台部署:支持云端、移动端、边缘设备和网页端部署。
- 灵活的编译选项:开发者可根据需求选择后端模块,减少资源占用。
使用帮助
安装流程
FastDeploy 提供 Python 和 C++ 的安装方式,适合不同开发需求。以下以 Python 安装为例,基于 Ubuntu 系统。用户需确保系统已安装 Python 3.6+ 和基础依赖。
- 准备环境
安装必要依赖:sudo apt update sudo apt install -y python3 python3-dev python3-pip gcc python3-opencv python3-numpy
建议使用虚拟环境(如 conda)隔离依赖:
conda create -n fastdeploy python=3.8
conda activate fastdeploy
- 安装 PaddlePaddle
FastDeploy 依赖 PaddlePaddle 框架,安装开发版:python -m pip install paddlepaddle==0.0.0 -f https://www.paddlepaddle.org.cn/whl/linux/cpu-mkl/develop.html
- 安装 FastDeploy
可通过 pip 安装预编译包:pip install fastdeploy-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html
或从源码编译:
git clone https://github.com/PaddlePaddle/FastDeploy.git cd FastDeploy/python export ENABLE_ORT_BACKEND=ON export ENABLE_PADDLE_BACKEND=ON export ENABLE_VISION=ON python setup.py build python setup.py bdist_wheel pip install dist/fastdeploy_python-*-linux_x86_64.whl
如果编译 RK3588 等设备,需设置
ENABLE_RKNPU2_BACKEND=ON
和RKNN2_TARGET_SOC=RK3588
。 - 验证安装
安装完成后,运行示例代码验证:import fastdeploy print(fastdeploy.__version__)
功能操作流程
1. 模型部署
FastDeploy 支持一键部署多种模型。以目标检测模型为例,运行 PaddleDetection 模型:
from fastdeploy.vision import detection
model = detection.PaddleDetectionModel(
model_file="ppyoloe_crn_l_300e_coco/model.pdmodel",
params_file="ppyoloe_crn_l_300e_coco/model.pdiparams",
config_file="ppyoloe_crn_l_300e_coco/infer_cfg.yml"
)
result = model.predict("000000014439.jpg")
print(result)
用户需下载模型文件(如 ppyoloe_crn_l_300e_coco.tgz
)并解压,文件可从官方链接获取。
2. 硬件适配
FastDeploy 支持多硬件部署。例如,在 RK3588 上部署:
cd demos/vision/detection/paddledetection/rknpu2/python
python infer.py --model_file picodet_s_416_coco_lcnet_rk3588.rknn \
--config_file picodet_s_416_coco_lcnet/infer_cfg.yml \
--image 000000014439.jpg
确保设备已安装对应驱动(如 rknpu2)。
3. 推理加速
FastDeploy 提供多种加速技术。例如,使用量化技术(W8A16):
model.enable_quantization("W8A16")
或启用推测解码:
model.enable_speculative_decoding()
这些功能显著提升推理速度,适合高性能需求场景。
4. 可视化部署
结合 VisualDL,用户可通过 Web 界面管理模型:
- 启动 VisualDL 服务:
visualdl --model-dir model_path --host 0.0.0.0 --port 8040
- 在浏览器访问
http://localhost:8040
,调整模型配置、监控性能。
5. 文档支持
FastDeploy 提供详细文档,位于 <FastDeploy>/docs
目录或 GitHub 仓库。用户可参考:
- 模型支持列表:
<FastDeploy>/docs/supported_models.md
- 硬件适配指南:
<FastDeploy>/docs/cn/build_and_install
注意事项
- 确保硬件驱动已安装,如 RK3588 的 rknpu2 驱动。
- 内存不足可能导致编译失败,建议为 RK3588 添加至少 4GB 交换分区。
- 项目更新频繁,建议定期检查 GitHub 最新版本。
应用场景
- 智能安防
FastDeploy 可部署目标检测和人脸识别模型,用于监控系统。开发者可快速在边缘设备(如 RK3588)上运行 PaddleDetection 模型,实时检测异常行为。 - 智能零售
支持 OCR 和图像分类模型,适用于客流统计和商品识别。零售商可通过 FastDeploy 在移动设备上部署模型,分析顾客行为。 - 工业自动化
在生产线中使用 FastDeploy 部署图像分割模型,检测产品质量。支持多硬件适配,适合工厂复杂环境。 - 语音交互
部署语音合成模型,实现智能客服或语音助手。FastDeploy 的多 token 预测技术提升语音生成速度。
QA
- FastDeploy 支持哪些硬件?
支持 NVIDIA GPU、昆仑芯 XPU、昇腾 NPU、RK3588、Iluvatar GPU 等,部分硬件如 MetaX GPU 正在适配中。 - 如何切换推理后端?
通过设置环境变量(如ENABLE_ORT_BACKEND=ON
)或在代码中指定后端(如model.set_backend("paddle")
)切换推理引擎。 - FastDeploy 是否支持网页部署?
是的,通过 Paddle.js 支持网页和小程序部署,详见<FastDeploy>/docs/web_deployment.md
。 - 遇到内存不足怎么办?
在编译时可限制任务数(如python setup.py build -j 4
),或为设备添加交换分区。