6.3 部署方式:Docker、私有化部署、本地部署
模型变成了服务,服务怎么交到用户手里?部署就是这最后一公里的问题。Docker 容器化、私有化部署满足安全合规要求、本地部署保护数据隐私——三种主流部署方式各有各的场景。
📑 目录
- Docker:标准化的交付方式
- 私有化部署:企业的刚需
- 本地部署:隐私优先的选择
- 三种部署方式对比
- 部署架构推荐
Docker:标准化的交付方式
一句话定义
将 AI 应用及其所有依赖打包成一个标准化容器,保证「在我机器上能跑」等于「在任何地方都能跑」。
# 典型的 RAG 应用 Dockerfile FROM python:3.11-slim WORKDIR /app # 安装依赖 COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt \ && pip install torch --index-url <https://download.pytorch.org/whl/cpu> # 复制代码 COPY . . # 暴露端口 EXPOSE 8000 # 启动服务 CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]# docker-compose.yml 一键编排全栈version:'3.8'services:rag-app:build:.ports:-"8000:8000"environment:-OPENAI_API_KEY=${OPENAI_API_KEY}-VECTOR_DB_HOST=vector-dbdepends_on:-vector-dbvector-db:image:milvusdb/milvus:latestvolumes:-milvus_data:/var/lib/milvusports:-"19530:19530"volumes:milv_data:Docker 在 AI 部署中的坑
| 坑 | 解决方案 |
|---|---|
| 镜像太大(模型文件) | 用多阶段构建,模型运行时挂载卷不打包进镜像 |
| GPU 支持 | 使用 NVIDIA Container Toolkit |
| 内存不足 | 限制容器内存 + OOM 处理策略 |
| 存储持久化 | 数据库/向量库务必挂载 volume |
私有化部署:企业的刚需
一句话定义
将整套 AI 系统部署在企业自己的服务器/云环境里,数据不出内网,满足安全合规要求。
为什么企业必须私有化部署?
公有云 API(如直接调 GPT-4)的问题: ✗ 数据发给 OpenAI → 可能泄露商业机密 ✗ 无法审计谁问了什么 → 合规风险 ✗ 依赖外网 → 网络不稳定影响业务 ✗ 费用不可控 → 大规模使用成本爆炸 ✗ 模型不可控 → 厂商随时可能调整/下线 私有化部署的优势: ✓ 数据完全在内网 → 安全合规有保障 ✓ 全量日志审计 → 谁用了、问什么、一清二楚 ✓ 无网络依赖 → 内网隔离环境也能用 ✓ 成本可控 → 一次投入,无限使用 ✓ 模型可控 → 可以微调定制,不怕厂商变卦私有化部署架构
┌──────────────────────────────────────────┐ │ 企业内网环境 │ │ │ │ ┌──────────┐ ┌──────────┐ ┌────────┐ │ │ │ 应用层 │ │ 服务层 │ │ 存储层 │ │ │ │ │ │ │ │ │ │ │ │ Web 前端 │ │ vLLM │ │ Milvus │ │ │ │ API网关 │ │ TGI │ │ PG+pgv │ │ │ │ 监控面板 │ │ FastAPI │ │ 文件存 │ │ │ └──────────┘ └──────────┘ └────────┘ │ │ │ │ │ │ │ └─────────────┼────────────┘ │ │ ↓ │ │ ┌──────────────┐ │ │ │ GPU 服务器群 │ │ │ │ (A100×4) │ │ │ └──────────────┘ │ │ │ │ 安全:内网隔离 + RBAC权限 + 操作审计 │ └──────────────────────────────────────────┘本地部署:隐私优先的选择
一句话定义
在个人电脑上运行完整的 LLM 和 AI 应用,不需要联网,数据完全在本地。适合对隐私敏感的个人开发者和中小企业。
本地部署方案对比
| 方案 | 硬件要求 | 易用性 | 适合谁 |
|---|---|---|---|
| Ollama | Mac/Win/Linux | ⭐⭐⭐⭐⭐ | 所有人(一键安装) |
| LM Studio | 有显卡更好 | ⭐⭐⭐⭐⭐ | GUI 偏好者 |
| llama.cpp | 任意设备 | ⭐⭐⭐ | 技术用户 |
| GPT4All | 任意设备 | ⭐⭐⭐⭐ | Windows 用户 |
| LocalAI | 需要 GPU | ⭐⭐⭐ | 替代 OpenAI API |
# Ollama — 最简单的本地部署方案# 安装:brew install ollama (Mac) / 下载安装包 (Windows/Linux)# 运行模型ollama run llama3:8b# 对话模式ollama run qwen2.5:7b# 国产模型ollama run codellama:7b# 代码专用# 作为 API 服务使用(兼容 OpenAI API!)ollama serve# 然后你的代码只需要改 base_url:curl<http://localhost:11434/v1/chat/completions>\-d'{"model":"llama3","messages":[{"role":"user","content":"hi"}]}'# → 和调 OpenAI API 的代码几乎一模一样!只需改 base_url三种部署方式对比
| 维度 | Docker 容器化 | 私有化部署 | 本地部署 |
|---|---|---|---|
| 目标用户 | DevOps/运维团队 | 企业 IT | 个人/小团队 |
| 硬件需求 | 服务器/GPU 云 | 服务器集群 | 个人电脑 |
| 安全性 | 中等(取决于环境) | 最高(内网隔离) | 最高(离线) |
| 维护成本 | 低(标准化) | 高(需专业团队) | 低 |
| 扩展性 | 好(K8s 编排) | 最好(按需扩) | 差(单机) |
| 典型场景 | SaaS 产品 / 微服务 | 金融 / 政府 / 医疗 | 开发测试 / 隐私敏感 |
部署架构推荐
根据你的阶段选方案: POC 验证期: → 本地部署(Ollama)+ 简单 Python 脚本 → 快速验证想法,成本 ≈ 0 内部试用期: → Docker Compose 编排(应用+向量库+vLLM) → 单机或多机部署在小团队服务器 生产发布期: → Kubernetes + 私有化部署 → GPU 节点池 + 弹性伸缩 + 监控告警 → SLA 保障 + 灾备方案 关键原则: 不要一步到位!先跑起来 → 再优化 → 再规模化❌ 常见误区
- ❌ Docker 就是部署的全部 — 生产环境还需要 CI/CD、监控、日志、备份等完整链路
- ❌ 私有化部署 = 安全 — 还需要网络隔离、访问控制、审计日志等配套措施
- ❌ 本地部署只能跑小模型 — M2 Max 128GB 可以流畅跑 70B 量化版
