Deep-Learning-in-Production
Deep-Learning-in-Production 是一个专注于深度学习模型落地实战的资源库,旨在帮助开发者解决从实验环境到生产部署的“最后一公里”难题。许多研究人员在训练出高精度模型后,往往面临如何将其高效、稳定地集成到实际业务系统中的挑战,例如如何处理高并发请求、如何实现跨语言调用或如何进行服务端性能优化。
本资源库系统性地整理了将 PyTorch 模型投入生产所需的关键笔记与技术参考。其核心内容涵盖模型服务化架构(如 TorchServe、LitServe)、REST API 构建(基于 Flask)、云端无服务器部署(AWS Lambda)以及关键的模型转换技术,特别是如何将 PyTorch 模型追踪并转换为 C++ 接口(LibTorch)以实现高性能推理。此外,它还涉及 ONNX 运行时优化、线程安全处理及浏览器端部署等前沿话题。
这份指南特别适合人工智能工程师、后端开发人员以及需要将算法原型转化为可靠产品的科研团队。对于希望深入理解 PyTorch 内部机制、掌握工业级模型部署最佳实践的技术人员而言,Deep-Learning-in-Production 提供了一条清晰的学习路径和丰富的实战案例,是连接学术研究与工业应用的宝贵桥梁。
使用场景
某电商初创团队需要将研发好的 PyTorch 商品图像识别模型快速部署到线上,以支持实时的“以图搜图”功能。
没有 Deep-Learning-in-Production 时
- 技术选型迷茫:面对 TorchServe、LibTorch C++ API、ONNX Runtime 等多种部署方案,团队缺乏权威指引,难以判断哪种最适合当前高并发场景。
- 环境兼容陷阱:在将 Python 训练模型迁移至 C++ 生产环境时,因算子不支持或版本差异导致推理失败,排查问题耗费数天。
- 性能瓶颈难解:直接封装 Flask 接口导致线程安全问题频发,且未进行架构优化,响应延迟高达数百毫秒,无法满足实时交互需求。
- 资源浪费严重:由于缺乏服务器less(如 AWS Lambda)或边缘端部署的最佳实践,不得不维持高昂的 GPU 服务器常开成本。
使用 Deep-Learning-in-Production 后
- 路径清晰明确:借助仓库中整理的"TorchServe"和"LitServe"等精选教程,团队迅速锁定了适合的高性能服务框架,缩短了决策周期。
- 平滑语言迁移:参考"Loading a PyTorch Model in C++"等核心指南,顺利利用 LibTorch 完成模型转换,彻底解决了生产环境的依赖冲突。
- 推理效率飞跃:采纳关于线程安全及原生架构优化(torchao)的建议,重构后的接口响应时间降低至 50 毫秒以内,支撑起万级 QPS。
- 成本显著优化:依据 AWS Lambda 与 ONNX 结合的实战案例,成功实现弹性伸缩部署,使基础设施成本降低了 60%。
Deep-Learning-in-Production 通过提供经过验证的部署路线图与避坑指南,帮助团队将模型从实验室原型高效转化为稳定、低成本的生产力工具。
运行环境要求
未说明
未说明

快速开始
生产环境中的深度学习
在这个仓库中,我将分享一些关于在生产环境中部署基于深度学习的模型的实用笔记和参考资料。
将 PyTorch 模型转换为生产级:
- PyTorch 生产级教程 [非常棒]
- 通往 1.0 的道路:生产就绪的 PyTorch
- PyTorch 1.0 追踪 JIT 和 LibTorch C++ API,用于将 PyTorch 集成到 NodeJS 中 [好文章]
- PyTorch 中的模型服务
- PyTorch 夏季黑客马拉松 [非常重要]
- 使用 Flask 部署 PyTorch 并构建 REST API [重要]
- 在 Flask 上部署的识别热狗与非热狗的 PyTorch 模型
- 以 C++ 作为 Web 服务器来服务 PyTorch 1.0 模型 [有用的示例]
- PyTorch 内部机制 [有趣且有用的文章]
- 支持 PyTorch 模型预测的 Flask 应用程序
- 在 Flask 上安全地服务 PyTorch 模型
- 使用 Caffe2 和 ONNX 在 AWS Lambda 上服务 PyTorch 模型
- 使用 Caffe2 和 ONNX 在 AWS Lambda 上服务 PyTorch 模型(另一个版本)
- 深入 ONNX Runtime
- EuclidesDB - 多模型机器学习特征数据库,支持 PyTorch
- EuclidesDB - GitHub
- WebDNN:Web 浏览器上最快的 DNN 执行框架
- FastAI PyTorch 无服务器 API(使用 AWS Lambda)
- FastAI PyTorch 在生产中的讨论
- OpenMMLab 模型部署框架
- PyTorch 原生架构优化:torchao
- TorchServe [很棒的工具]
- TorchServe 视频教程
- LitServe:闪电般快速地轻松服务 AI 模型
将 PyTorch 模型转换为 C++:
- 在 C++ 中加载 PyTorch 模型 [非常棒]
- PyTorch C++ API [太棒了]
- Torch(PyTorch)C++ 前端简介 [非常好]
- 关于使用 PyTorch C++ API 的博客 [不错]
- ATen:一个张量库
- 关于类似 PyTorch 的 C++ 接口的重要问题
- PyTorch C++ API 测试
- 通过 C++ 使用 PyTorch [有用的笔记]
- AUTOGRADPP
- PyTorch C++ 库
- PyTorch 的直接 C++ 接口
- 用于将 PyTorch 图编译为 C 的 Python 模块
将 TensorFlow 模型部署到生产环境:
- 如何使用 TensorFlow 部署机器学习模型 - 第1部分
- 如何使用 TensorFlow 部署机器学习模型 - 第2部分
- 如何使用 TensorFlow 部署机器学习模型 - 第3部分
- TensorFlow 中的神经结构化学习 (NSL) [很棒]
- 构建健壮的生产就绪深度学习视觉模型
- 为 TensorFlow 模型创建 REST API
- Siraj Raval 在 YouTube 上讲解的“如何在生产环境中部署 TensorFlow 模型”
- Siraj Raval 在 YouTube 上讲解的“如何在生产环境中部署 TensorFlow 模型”的代码
- 如何使用 TensorFlow Serving 部署目标检测模型 [非常好的教程]
- 冻结 TensorFlow 模型并在网页上提供服务 [非常好的教程]
- 如何使用 TF Serving 将 TensorFlow 模型部署到生产环境 [不错]
- Zendesk 如何在生产环境中服务 TensorFlow 模型
- TensorFlow Serving 示例项目
- 使用 TensorFlow Serving 在生产环境中服务模型 [2017 年 TensorFlow 开发者峰会视频]
- 将 TensorFlow 构建为独立项目
- TensorFlow C++ API 示例
- TensorFlow.js
- 介绍 TensorFlow.js:JavaScript 中的机器学习
将 Keras 模型部署到生产环境:
- 使用 Keras、Redis、Flask 和 Apache 进行深度学习生产部署 [排名第一且通用实用教程]
- 在 Python 中将 Keras 深度学习模型部署为 Web 应用程序 [非常好]
- 在 AWS 上部署 Python Web 应用程序 [非常好]
- 部署深度学习模型第 1 部分:准备模型
- 部署你的 Keras 模型
- 使用 Keras.js 部署你的 Keras 模型
- Siraj Raval 在 YouTube 上发布的《如何将 Keras 模型部署到生产环境》[https://github.com/llSourcell/how_to_deploy_a_keras_model_to_production]
- 10 分钟内使用 Flask 将 Keras 模型部署为 Web 应用程序 [优秀的代码库]
- 使用 Flask 部署 Keras 深度学习模型
- keras2cpp
将 MXNet 模型部署到生产环境:
- Apache MXNet 的模型服务器
- 运行模型服务器
- 多模型服务器 (MMS) 文档
- 介绍 Apache MXNet 的模型服务器
- 单次多目标检测推理服务
- Amazon SageMaker
- 如何服务使用 Gluon API 构建的 MXNet 模型
- MXNet C++ 包
- MXNet C++ 包示例
- MXNet C++ 图像分类示例
- MXNet C++ 教程
- MXNet API 简介 [非常好的学习 MXNet 的教程]
- GluonCV
- GluonNLP
- 用于生产级神经网络推理的模型量化 [非常优秀]
使用 Go 部署机器学习模型:
- Cortex:在生产环境中部署机器学习模型
- Cortex 主页
- 为什么我们使用 Go 而不是 Python 来部署机器学习模型
- Go-Torch
- Gotch — PyTorch 的 Go API
- TensorFlow Go Lang
- Go-onnx
通用深度学习部署工具包:
- OpenVINO 工具包 — 深度学习部署工具包仓库 [很棒]
- ClearML — 机器学习/深度学习开发与生产套件
- 使用 Heroku 部署模型:Heroku 完整指南 [不错]
- NVIDIA Triton 推理服务器 [很棒]
- NVIDIA Triton 推理服务器 — GitHub [很棒]
- Cohere 利用 NVIDIA Triton 推理服务器提升推理速度
- NVIDIA 深度学习 Tensor Core 示例 [很有意思]
- 使用 Triton 推理服务器部署 Jasper 推理模型 [很有用]
- NVIDIA 通过 Triton 提供的 MLOps 课程
- Awesome Production Machine Learning [很棒]
- BentoML 模型服务
华为深度学习框架:
通用深度学习编译器栈:
不同深度学习框架之间的模型转换:
- ONNX(开放神经网络交换)
- 使用 ONNX 的教程
- MMdnn [非常棒]
- 将完整的 ImageNet 预训练模型从 MXNet 转换为 PyTorch [非常棒,这里的“完整 ImageNet 模型”指的是在约 1400 万张图像上训练的模型]
一些 Caffe2 教程:
一些用于 UI 设计(前端开发)的实用资源:
- ReactJS vs Angular5 vs Vue.js
- Angular 与 React 及其核心语言的比较
- 成为全栈开发者的指南 [非常不错的教程]
- 2018 年成为 Web 开发者的路线图 [非常好的代码仓库]
- 2018 年的现代前端开发者
- 2018 年成为 React 开发者的路线图
- 2019 年 UI 和 UX 设计趋势 [不错]
- Streamlit [构建自定义机器学习工具的最快方式]
- Gradio [不错]
- Web Developer Monthly
- 23 款最佳 React UI 组件框架
- 2018 年 9 款使用 Styled Components 的 React UI 库
- 35 款新的 UI 设计工具
- 5 款加速应用开发的工具 [非常不错]
- 如何将 ReactJS 与 Webpack 4、Babel 7 和 Material Design 结合使用
- Adobe Typekit [出色的字体,随需而至]
- 使用 Angular 6 构建一个真实的精美 Web 应用程序
- 你不懂 JavaScript
- JavaScript 最佳文章 Top 10
- 使用 Adobe XD 进行网页设计
- INSPINIA Bootstrap Web 主题
- 面向前端开发者的学习跟踪器
- 最全的现代前端黑客技巧速查表 [实用且有趣]
- 为机器学习工作流 GUI 化(Machine Flow)
- Electron - 使用 JavaScript 构建跨平台桌面应用 [非常好]
- Opyrator - 将 Python 函数转换为带有 Web API 的微服务 [很棒]
- 初探 PyScript:在浏览器中运行 Python [有趣]
移动与嵌入式设备开发:
- PyTorch Mobile [非常优秀]
- 2018 年移动 UI 设计趋势
- ncnn - 高性能神经网络推理框架,专为移动平台优化 [实用]
- 阿里巴巴 - MNN
- Awesome Mobile Machine Learning
- EMDL - 嵌入式与移动深度学习
- Fritz - 面向 iOS 和 Android 的机器学习平台
- TensorFlow Lite
- 微型机器学习:下一场 AI 革命
- TLT - NVIDIA 转移学习工具包
- NVIDIA Jetson Inference [很棒]
- EfficientML.ai 讲座(MIT 课程)
- PyTorch Edge:通过 ExecuTorch 实现跨移动和边缘设备的本地推理
后端开发部分:
- 2018年的现代后端开发者
- 以有趣的方式部署前端应用 [非常好]
- RabbitMQ [消息代理软件]
- Celery [分布式任务队列]
- Kafka [分布式流处理平台]
- 使用DockerMe进行Docker培训
- Kubernetes - GitHub
- 在Google Kubernetes Engine上部署机器学习流水线
- 面向数据科学家的Kubernetes入门
- 使用Docker Desktop的Jenkins和Kubernetes
- Helm:Kubernetes的包管理器
- 使用Docker Swarm创建集群
- deepo - 适用于所有深度学习框架的Docker镜像
- Kubeflow [在Kubernetes上部署机器学习工作流]
- kubespray - 部署生产就绪的Kubernetes集群
- KFServing - 用于服务机器学习模型的Kubernetes
- 使用KFServing部署HuggingFace NLP模型 [有趣]
- Seldon Core - 在Kubernetes上部署机器学习模型
- Seldon Core - GitHub
- 机器学习:在Ubuntu上使用Kubeflow服务模型,第一部分
- CoreWeave Kubernetes云
- MLOps参考资料 [面向机器学习的DevOps]
- 数据版本控制 - DVC [很棒]
- MLEM:打包和部署机器学习模型
- PySyft - 用于加密、保护隐私的深度学习库
- LocalStack - 功能齐全的本地AWS云栈
- poetry:Python包管理和依赖管理
- Netflix为大规模流媒体选择的强大数据库
- Ray:用于扩展AI和Python应用的统一框架
GPU管理库:
- GPUtil
- py3nvml [NVIDIA管理库的Python 3绑定]
- PyCUDA - GitHub
- PyCUDA
- PyCUDA教程
- setGPU
- 监控你的GPU [优秀]
- GPU-Burn - 多GPU CUDA压力测试 [实用]
- Grafana - 监控与可观测性 [优秀]
- Prometheus [非常优秀的监控解决方案,可用于提取所需指标]
- OpenAI Triton:面向神经网络的开源GPU编程
加速与可扩展的 Python 代码:
- Numba - 让 Python 代码运行得更快
- Dask - 原生支持 Python 的分布式计算
- 什么是 Dask
- Ray - 运行分布式应用
- Neural Network Distiller [PyTorch 中深度学习模型的蒸馏与量化]
- Autodistill
- PyTorch 剪枝教程
- 能否在不损失精度的情况下移除神经网络中 99% 的参数?—— 权重剪枝简介
- PocketFlow - 自动模型压缩(AutoMC)框架 [优秀]
- TensorFlow 模型优化工具包介绍
- TensorFlow 模型优化工具包 —— 训练后整数量化
- TensorFlow 训练后量化
- PyTorch 中的动态量化
- PyTorch 中的静态量化
- NVIDIA DALI - 高度优化的深度学习数据预处理
- Horovod - 分布式训练框架
- ONNX 浮点32转浮点16
- 使用 TensorRT 加速深度学习推理
- 加速训练
- 原生 PyTorch 自动混合精度,用于在 NVIDIA GPU 上加速训练
- JAX - 可组合的 Python+NumPy 程序变换工具
- TensorRTx - 使用 TensorRT 实现流行的深度学习网络
- 使用 TensorFlow、ONNX 和 TensorRT 加速深度学习推理
- TensorRT 开发者指南
- 如何将模型从 PyTorch 转换为 TensorRT 并加速推理 [不错]
- cuDF: GPU DataFrame 库
- cuDF 示例
深度学习硬件笔记:
MLOps 课程与资源:
- MLOps 基础 [优秀]
- MLOPs-Zoomcamp [优秀]
- 学习 MLOps 的资源合集 [优秀]
- Awesome MLOps [优秀]
- 数据科学主题与 MLOps [优秀]
- MLEM: 打包和部署机器学习模型
- DevOps 练习
- MlOPs 示例项目
- prefect: 编排和监控您的所有工作流
- DataTalks Club: 数据交流的场所
- OpenNMT CTranslate2: Transformer 模型的快速推理引擎
其他:
- 生产级深度学习指南
- Facebook 表示开发者会爱上 PyTorch 1.0
- PyTorch 工作流的一些变更
- wandb - 用于可视化和跟踪机器学习实验的工具
- PyTorch 和 Caffe2 仓库逐渐融合
- PyTorch 还是 TensorFlow?
- 2018 年选择深度学习框架:TensorFlow 还是 PyTorch?
- PyTorch 与 TensorFlow 之间的深度学习大战
- 将机器学习模型嵌入 Web 应用程序(第 1 部分)
- 部署深度学习模型:第 1 部分概述
- 生产环境中的机器学习
- 如何通过 Python 将数据预处理速度提升 2–6 倍
- 使您的 C 库可通过 Python 调用
- MIL WebDNN
- 多 GPU 框架比较 [优秀]
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器