English | 简体中文
文档 | Ask DeepWiki | 微信 | Discord
nndeploy 是一款简单易用且高性能的 AI 部署框架。基于可视化工作流和多端推理,开发者可以快速从算法仓库开发出指定平台和硬件所需的 SDK,大幅节省开发时间。此外,框架已部署包括 LLM、AIGC 生成、换脸、目标检测、图像分割等众多 AI 模型,开箱即用。
- 可视化工作流:通过拖拉拽操作就能部署 AI 算法,前端可视化调节 AI 算法的所有节点参数,快速预览算法调参后的效果
- 自定义节点:支持 Python/C++自定义节点,无需前端代码,无缝集成到可视化界面
- 算法组合:灵活组合不同算法,快速构建创新 AI 应用
- 一键部署:搭建完成的工作流可一键导出为 JSON 配置文件,支持 Python/C++ API 直接调用,实现从开发环境到生产环境的无缝衔接,全面支持 Linux、Windows、macOS、Android、iOS 等平台。
-
并行优化:支持串行、流水线并行、任务并行等执行模式
-
内存优化:零拷贝、内存池、内存复用等优化策略
-
高性能优化:内置 C++/CUDA/Ascend C/SIMD 等优化实现的节点
-
多端推理:一套工作流,多端推理。通过零抽象成本接入了 13 种主流推理框架,覆盖云端、桌面、移动、边缘等全平台
推理框架 适用场景 状态 ONNXRuntime 跨平台推理 ✅ TensorRT NVIDIA GPU 高性能推理 ✅ OpenVINO Intel CPU/GPU 优化 ✅ MNN 阿里推出的移动端推理引擎 ✅ TNN 腾讯推出的移动端推理引擎 ✅ ncnn 腾讯推出的移动端推理引擎 ✅ CoreML iOS/macOS 原生加速 ✅ AscendCL 华为昇腾 AI 芯片推理框架 ✅ RKNN 瑞芯微 NPU 推理框架 ✅ SNPE 高通骁龙 NPU 推理框架 ✅ TVM 深度学习编译栈 ✅ PyTorch 快速原型/云端落地 ✅ 自研推理框架 缺省推理框架 ✅
已部署模型列表,并制作100+节点,我们将持续部署更多高价值的 AI 算法。如果您有需要部署的算法,请通过issue告诉我们。
| 应用场景 | 可用模型 | 备注 |
|---|---|---|
| 大语言模型 | QWen-2.5, QWen-3 | 支持小 B 模型 |
| 图片生成 | Stable Diffusion 1.5, Stable Diffusion XL, Stable Diffusion 3, HunyuanDiT 等模型 | 支持文生图、图生图、图像修复,基于diffusers实现 |
| 换脸 | deep-live-cam | |
| OCR | Paddle OCR | |
| 目标检测 | YOLOv5, YOLOv6, YOLOv7, YOLOv8, YOLOv11, YOLOx | |
| 目标追踪 | FairMot | |
| 图像分割 | RBMGv1.4, PPMatting, Segment Anything | |
| 分类 | ResNet, MobileNet, EfficientNet, PPLcNet, GhostNet, ShuffleNet, SqueezeNet | |
| API 服务 | OPENAI, DeepSeek, Moonshot | 支持 LLM 和 AIGC 服务 |
更多查看已部署模型列表详解
-
安装
pip install --upgrade nndeploy
-
启动可视化界面
nndeploy-app --port 8000
启动成功后,打开 http://localhost:8000 即可访问工作流界面
-
导出工作流并命令行执行
完成工作流搭建后,保存为 JSON 文件并通过命令行执行:
# Python CLI nndeploy-run-json --json_file path/to/workflow.json # C++ CLI nndeploy_demo_run_json --json_file path/to/workflow.json
-
导出工作流并 API 加载运行
在可视化界面中完成工作流搭建后,可保存为 JSON 文件,然后通过 Python/C++ API 加载执行
- Python API 加载运行 LLM 工作流
graph = nndeploy.dag.Graph("") graph.remove_in_out_node() graph.load_file("path/to/llm_workflow.json") graph.init() input = graph.get_input(0) text = nndeploy.tokenizer.TokenizerText() text.texts_ = [ "<|im_start|>user\nPlease introduce NBA superstar Michael Jordan<|im_end|>\n<|im_start|>assistant\n" ] input.set(text) status = graph.run() output = graph.get_output(0) result = output.get_graph_output() graph.deinit()
- C++ API 加载运行 LLM 工作流
std::shared_ptr<dag::Graph> graph = std::make_shared<dag::Graph>(""); base::Status status = graph->loadFile("path/to/llm_workflow.json"); graph->removeInOutNode(); status = graph->init(); dag::Edge* input = graph->getInput(0); tokenizer::TokenizerText* text = new tokenizer::TokenizerText(); text->texts_ = { "<|im_start|>user\nPlease introduce NBA superstar Michael Jordan<|im_end|>\n<|im_start|>assistant\n"}; input->set(text, false); status = graph->run(); dag::Edge* output = graph->getOutput(0); tokenizer::TokenizerText* result = output->getGraphOutput<tokenizer::TokenizerText>(); status = graph->deinit();
更多示例代码:Python LLM | C++ LLM | Python 目标检测 | C++ 目标检测 |
- Python API 加载运行 LLM 工作流
推荐开发流程
- 开发阶段:可视化界面设计和调试工作流。必要时需开发自定义节点
- 部署阶段:导出 JSON 配置,API 加载运行
无论通过可视化界面还是 API 调用,所有工作流都在底层统一的高性能 C++ 计算引擎中执行,确保开发和部署环境的一致性。
要求 Python 3.10+,默认包含 PyTorch 和 ONNXRuntime。更多推理后端请采用开发者模式。
测试环境:Ubuntu 22.04,i7-12700,RTX3060
-
流水线并行加速。以 YOLOv11s 端到端工作流总耗时,串行 vs 流水线并行
运行方式\推理引擎 ONNXRuntime OpenVINO TensorRT 串行 54.803 ms 34.139 ms 13.213 ms 流水线并行 47.283 ms 29.666 ms 5.681 ms 性能提升 13.7% 13.1% 57% -
任务并行加速。组合任务(分割 RMBGv1.4+检测 YOLOv11s+分类 ResNet50)的端到端总耗时,串行 vs 任务并行
运行方式\推理引擎 ONNXRuntime OpenVINO TensorRT 串行 654.315 ms 489.934 ms 59.140 ms 任务并行 602.104 ms 435.181 ms 51.883 ms 性能提升 7.98% 11.2% 12.2%
如果您觉得 nndeploy 对您有帮助,欢迎在 GitHub 上给我们 Star,这将帮助我们持续改进项目。
-
当前 nndeploy 正处于发展阶段,如果您热爱开源、喜欢折腾,不论是出于学习目的,抑或是有更好的想法,欢迎加入我们。
-
微信:Always031856(欢迎加好友,进群交流,备注:nndeploy_姓名)
-
感谢以下项目:TNN、FastDeploy、opencv、CGraph、tvm、mmdeploy、FlyCV、oneflow、flowgram.ai、deep-live-cam。
-
感谢HelloGithub推荐
