Appearance
AI 推理部署与 Serving
模型训练完成只是起点,高效、低成本地将模型部署到生产环境才是真正的工程挑战。本页汇总主流的推理引擎、部署工具与优化方案。
核心推理引擎
高吞吐生产级引擎
| 工具 | 开发者 | 核心特性 | 适用场景 | 链接 |
|---|---|---|---|---|
| vLLM | Berkeley | PagedAttention、连续批处理、OpenAI 兼容 API | 高并发 API 服务、生产部署 | GitHub |
| TGI (Text Generation Inference) | Hugging Face | Rust 核心、Safetensors、FlashAttention、流式生成 | HF 生态生产部署 | GitHub |
| TensorRT-LLM | NVIDIA | FP8/INT8 量化、 inflight batching、多 GPU 并行 | NVIDIA GPU 极致优化 | GitHub |
| SGLang | Berkeley | 结构化生成优化、RadixAttention 缓存复用 | 复杂结构化输出场景 | GitHub |
| llama.cpp | Georgi Gerganov | C/C++ 实现、GGUF 格式、CPU/GPU 混合推理 | 端侧部署、本地运行、嵌入式 | GitHub |
轻量级与快速部署
| 工具 | 特点 | 适用场景 | 链接 |
|---|---|---|---|
| Ollama | 一行命令运行、自动下载、Modelfile 自定义 | 本地原型、个人使用 | ollama.com |
| OpenLLM (BentoML) | 支持多种后端、Bento 打包、云端部署 | 企业级模型服务 | GitHub |
| MLC LLM | 机器学习编译、多平台部署(iOS/Android/Web) | 移动端/边缘端部署 | GitHub |
| llamafile | 单文件可执行、跨平台、零依赖 | 快速分发、离线运行 | GitHub |
部署架构方案
方案选型决策树
部署场景
├── 高并发 API 服务
│ ├── GPU 充足 → vLLM / TGI / TensorRT-LLM
│ └── 需要多模型路由 → vLLM + LiteLLM Proxy
├── 端侧/本地运行
│ ├── 有 GPU → llama.cpp (CUDA) / Ollama
│ ├── 纯 CPU → llama.cpp (AVX/NEON) / llamafile
│ └── 移动端 → MLC LLM
├── 云端 Serverless
│ ├── AWS → SageMaker / Bedrock
│ ├── GCP → Vertex AI
│ └── 多云 → Together AI / Replicate / fal.ai
└── 边缘设备
├── 树莓派/Jetson → llama.cpp (量化)
└── 浏览器 → WebLLM / Transformers.js量化与压缩工具
| 工具 | 量化类型 | 特点 | 链接 |
|---|---|---|---|
| GGUF (llama.cpp) | Q4_0 / Q5_K_M / Q8_0 | 社区标准,广泛兼容 | GitHub |
| AutoAWQ | AWQ 4-bit | 速度优先,显存节省 | GitHub |
| AutoGPTQ | GPTQ 4-bit | 成熟稳定,模型丰富 | GitHub |
| bitsandbytes | NF4 / QLoRA | 训练+推理一体化 | GitHub |
| TensorRT-LLM | FP8 / INT8 / INT4 | NVIDIA 官方,性能极致 | Docs |
性能优化技术
关键优化手段
| 技术 | 原理 | 效果 | 支持工具 |
|---|---|---|---|
| PagedAttention | 将 KV Cache 分页管理,减少内存碎片 | 2-4x 吞吐提升 | vLLM, SGLang |
| Continuous Batching | 动态拼接请求,GPU 利用率最大化 | 3-10x 吞吐提升 | vLLM, TGI, TensorRT-LLM |
| Speculative Decoding | 小模型草稿 + 大模型验证 | 1.5-2.5x 加速 | vLLM, TGI, TensorRT-LLM |
| FlashAttention | IO-aware Attention 计算优化 | 2-4x 速度,更少显存 | 主流框架均支持 |
| KV Cache 复用 | 前缀缓存,避免重复计算 | 首 token 延迟大幅降低 | SGLang (RadixAttention) |
| 量化推理 | 低精度权重与激活 | 2-4x 显存节省,轻微速度提升 | 所有主流工具 |
性能基准参考
markdown
## 单卡 A100 推理性能参考 (Llama-3-70B)
| 配置 | 吞吐 (tokens/s) | 延迟 (ms/token) | 显存占用 |
|------|----------------|-----------------|----------|
| FP16 全精度 | ~30 | ~33 | ~140GB |
| AWQ 4-bit | ~45 | ~22 | ~40GB |
| TensorRT-LLM FP8 | ~60 | ~17 | ~75GB |
| vLLM + PagedAttention | ~80 | ~12 | ~40GB (AWQ) |
| + Speculative Decoding | ~120 | ~8 | ~45GB |云端推理平台
| 平台 | 模式 | 特点 | 定价模式 |
|---|---|---|---|
| Together AI | Serverless / 专用 | 开源模型为主,价格优 | 按 token |
| Replicate | Serverless | 模型丰富,快速启动 | 按秒计费 |
| fal.ai | Serverless | 图像/视频生成强 | 按请求 |
| Fireworks AI | Serverless / 专用 | 快速、低成本 | 按 token |
| Baseten | 专用部署 | 企业级,自定义强 | 按资源 |
| Groq | 专用芯片 (LPU) | 极致低延迟 | 按 token |
部署检查清单
markdown
## 生产部署检查清单
### 性能
- [ ] 选择合适的量化方案(精度 vs 速度 vs 显存)
- [ ] 配置 Continuous Batching 参数
- [ ] 启用 KV Cache 优化(如 Prefix Caching)
- [ ] 测试 Speculative Decoding 收益
- [ ] 设定合理的 max_tokens 和并发限制
### 稳定性
- [ ] 配置健康检查和自动重启
- [ ] 设置请求超时和优雅降级
- [ ] 监控 GPU 显存和利用率
- [ ] 准备模型热更新方案
### 安全
- [ ] 配置 API 认证和限流
- [ ] 过滤敏感输入/输出
- [ ] 日志脱敏处理
- [ ] 模型权重访问控制
### 成本
- [ ] 评估自托管 vs 云 API 成本
- [ ] 配置自动扩缩容
- [ ] 监控每 token 成本
- [ ] 优化批处理大小相关页面
- 模型仓库导航 — 模型仓库导航
- AI 开发工具箱 — AI 开发工具箱
- Model Inference & Deployment — 模型推理与部署概念
- Model Quantization — 模型量化
- KV Cache & Prompt Caching — KV Cache 与 Prompt Caching
- Speculative Decoding — 推测解码
参考来源
- vLLM 官方文档
- Hugging Face TGI 文档
- NVIDIA TensorRT-LLM 文档
- llama.cpp GitHub Wiki
- SGLang 官方文档