从不同的维度(如物理位置、计算模式、架构形式)出发,深度学习模型的部署方式可以分为以下几种主流类型:
1. 按"运行位置"分类(最常见的分类方式)
这是目前工业界最主流的划分方法,直接决定了硬件选型和网络要求。
-
云端部署 (Cloud Deployment)
- 定义:模型运行在云服务商(如阿里云、AWS)或公司自建的中心服务器上。
- 特点:算力强(可堆叠多块 GPU)、存储空间大。
- 适用场景:高并发请求、需要处理海量数据、对模型精度要求极高(模型巨大,本地跑不动)。
- 典型技术:Docker, Kubernetes, NVIDIA Triton, FastAPI, Flask。
-
边缘部署 (Edge Deployment)
- 定义:模型运行在靠近数据源的硬件上(如路灯摄像头、工业网关)。
- 特点:延迟低、节省带宽(数据不用传回云端)、安全性高。
- 适用场景:自动驾驶、工业质检、实时安防。
- 典型技术:NVIDIA Jetson, Intel OpenVINO, TensorRT。
-
移动端/端侧部署 (On-Device/Mobile Deployment)
- 定义:模型直接运行在用户的手机、平板或可穿戴设备上。
- 特点:利用用户自己的硬件算力(零成本)、隐私保护极佳。
- 适用场景:美颜滤镜、手机端 OCR、输入法纠错。
- 典型技术:TFLite, CoreML, MNN (阿里), NCNN (腾讯)。
-
浏览器部署 (Web/Browser Deployment)
- 定义:模型在 Web 浏览器中通过 JavaScript 运行。
- 特点:无需下载 App,跨平台性最强。
- 适用场景:在线教育 Demo、简单的图像处理工具。
- 典型技术:TensorFlow.js, ONNX Runtime Web, WebGPU。
2. 按"推理模式"分类(工程实现维度)
-
在线推理 (Online Inference / Real-time)
- 方式:通过 API(RESTful 或 gRPC)接收请求并立即返回结果。
- 场景:语音助手、实时翻译、搜索推荐。
- 要求:极高的响应速度(毫秒级)。
-
离线推理/批处理 (Batch Inference / Offline)
- 方式:定时处理大批量数据,结果存入数据库,不要求即时返回。
- 场景:电商平台每天凌晨给用户生成推荐列表、银行每晚跑反洗钱扫描。
- 要求:高吞吐量(单位时间内处理的数据量最大化)。
-
流式推理 (Streaming Inference)
- 方式:模型像流水线一样处理持续不断的数据流(如视频流、传感器序列)。
- 场景:异常检测监控、实时字幕。
3. 按"服务架构"分类(部署形式维度)
-
容器化部署 (Containerized)
- 使用 Docker 将模型及其所有环境打包。这是目前最标准化的方式,配合 Kubernetes (K8s) 可以实现自动扩容。
-
Serverless (无服务器) 部署
- 将模型部署在 AWS Lambda 或 阿里云函数计算中。
- 优点:按需付费,没请求时不收钱,自动伸缩。
- 缺点:冷启动延迟较高,不适合超大型模型。
-
嵌入式 SDK 部署
- 将模型封装成一个库(如
.so或.dll文件),直接集成到 C++/Java 编写的主程序中。通常用于单机版软件或工控机软件。
- 将模型封装成一个库(如
4. 总结对比表
| 部署方式 | 优点 | 缺点 | 核心技术 |
|---|---|---|---|
| 云端 API | 算力无限、易于维护、多端通用 | 依赖网络、有隐私风险、带宽贵 | Docker, Triton, FastAPI |
| 边缘设备 | 响应极快、无需网络、安全 | 硬件成本高、维护困难 | TensorRT, OpenVINO |
| 手机端侧 | 零服务器成本、极致隐私 | 电池损耗、算力有限、模型需压缩 | TFLite, MNN, CoreML |
| 大模型私有化 | 数据安全、定制化强 | 显存门槛高、技术要求高 | vLLM, Ollama, Llama.cpp |
选型建议:
- 如果你刚开始做项目 :先走 云端 API 部署,验证业务逻辑。
- 如果你的数据绝对不能出厂 :选择 边缘或本地服务器私有化部署。
- 如果你的用户量极大(百万级以上)且模型较小 :务必考虑 移动端部署 以节省巨额服务器费用。
- 如果你在做视觉识别 :一定要经过 TensorRT 或 ONNX Runtime 加速,直接用 PyTorch 原生跑性能太差。