AI模型部署教程:从Notebook到生产API的7个步骤
从Jupyter笔记本到生产API的完整7步:模型导出、推理引擎、API服务、容器化、部署、监控、回滚。
💡 你将学到
从Jupyter笔记本到生产API的完整7步:模型导出、推理引擎、API服务、容器化、部署、监控、回滚。
AI模型部署教程:从Notebook到生产API的7个步骤
大多数模型死在笔记本里:训练完、评估完、然后就没有然后了。本文给出从 PyTorch 模型到生产 API 的完整 7 步路径,每一步讲清楚"做什么、用什么、注意什么"。
第1步:导出模型——选对格式
训练好的模型要先导出成推理友好的格式:
| 格式 | 适用 | 说明 |
|---|---|---|
| safetensors | PyTorch/Transformers 生态 | 安全、加载快,HF 默认 |
| GGUF | llama.cpp/Ollama 本地推理 | 量化友好,CPU 也能跑 |
| ONNX | 跨框架、边缘设备 | 可转 TensorRT/OpenVINO |
LLM 场景:transformers 模型直接保存 safetensors;要上 llama.cpp 系就用官方转换脚本导出 GGUF 并量化(如 Q4_K_M)。
第2步:选推理引擎
- vLLM(GitHub 8.7万+ 星):LLM 生产部署的事实标准,PagedAttention + 连续批处理,单张 A100 上可支撑 100+ 并发请求、首 token 延迟低于 500ms(典型数据,具体看模型和配置)
- TGI(Hugging Face):功能全,企业友好
- llama.cpp 系:小模型、CPU、低显存场景
- Triton / TensorRT-LLM:极致性能,运维复杂
小模型(7B 量化)甚至可以从 CPU 起步,先用 llama.cpp 验证,量大了再上 GPU。
第3步:写 API 服务
用 FastAPI 包一层(vLLM 自带 OpenAI 兼容服务,也可以自己写):
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class ChatRequest(BaseModel):
prompt: str
max_tokens: int = 512
@app.post("/chat")
def chat(req: ChatRequest):
# 调用你的推理引擎
return {"reply": generate(req.prompt, req.max_tokens)}
要点:统一 OpenAI 兼容格式(方便以后换引擎/供应商)、加超时与重试、请求体校验。
第4步:容器化
写 Dockerfile,把模型权重和推理服务打进镜像:
FROM pytorch/pytorch:2.1-cuda12.1-cudnn8-runtime
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
模型权重有两种处理:打进镜像(简单,但镜像巨大)或挂载数据卷(推荐,更新权重不用重建镜像)。
第5步:部署
三条路线:
- 单机 Docker:个人/小团队最省事,docker compose up -d 就上线
- Kubernetes:多副本、自动伸缩、滚动更新,团队标配但运维成本高
- Serverless(如云函数):按调用付费,适合低频或波动大的服务;注意冷启动和执行时长限制
GPU 服务记得配 GPU 调度(K8s device plugin 或 Docker --gpus)。
第6步:监控
上线只是开始,要能回答三个问题: - 性能:延迟(TTFT/TPOT)、吞吐、GPU 利用率 → Prometheus + Grafana - 质量:回答质量、幻觉率、用户反馈 → Langfuse(2.8万+ 星)这类 LLM 可观测工具,记录每次调用的输入输出 - 成本:token 消耗、单请求成本 → 给调用打标签,按周看分布
第7步:版本回滚
- 模型版本化:新模型先灰度(10% 流量)跑几天,指标稳定再全量
- 权重和代码都进版本管理,镜像打 tag(
my-api:v1.2.3) - 保留上一版镜像/权重,出问题一条命令切回
常见问题
Q:没有 GPU 服务器能部署 LLM 吗? A:能。7B 量化模型用 llama.cpp 在 CPU 上可跑(速度一般),适合内部工具和低并发场景;对外服务还是建议 GPU。
Q:vLLM 和 FastAPI 什么关系? A:vLLM 是推理引擎(管模型、管批处理),本身带 OpenAI 兼容 HTTP 服务;FastAPI 是可选的外层业务封装(加鉴权、路由、业务逻辑)。小项目直接用 vLLM 自带服务也行。
Q:监控到什么程度算够? A:先做到"挂了能发现、坏了能回滚":健康检查 + 错误率告警 + 延迟告警 + 保留最近 N 版镜像,比堆一堆指标更重要。
注:文中性能数据为常见典型值,实际取决于模型、硬件与配置,以自身压测为准。
相关文章
❓ 常见问题
How long does deployment take?
First deployment 2-5 days for a small team; subsequent ones hours with CI/CD.
CPU or GPU?
Start CPU for small models under 7B quantized; GPU for production LLMs.
本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。
