Skip to content

An Easy-to-Use and High-Performance AI Deployment Framework | 一款简单易用且高性能的AI部署框架

License

Notifications You must be signed in to change notification settings

Alwaysssssss/nndeploy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,339 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

English | 简体中文

nndeploy:一款简单易用且高性能的AI部署框架

Linux Windows Android macOS iOS

文档 | Ask DeepWiki | 微信 | Discord

nndeploy


最新动态

  • [2025/01/29] 🔥 与昇腾官方联合推出推理框架免费课程!基于 nndeploy 内部推理框架,快速掌握 AI 推理部署技术。昇腾平台 | B站

介绍

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 即可访问工作流界面

    nndeploy

  • 导出工作流并命令行执行

    完成工作流搭建后,保存为 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++ 目标检测 |

推荐开发流程

  • 开发阶段:可视化界面设计和调试工作流。必要时需开发自定义节点
  • 部署阶段:导出 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_姓名)

致谢

贡献者

Star History Chart

About

An Easy-to-Use and High-Performance AI Deployment Framework | 一款简单易用且高性能的AI部署框架

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 58.5%
  • Python 18.8%
  • TypeScript 10.4%
  • C 6.8%
  • CMake 3.0%
  • Kotlin 1.1%
  • Other 1.4%