LLM 部署(DeepWiki 课程笔记)

LLM 部署(DeepWiki 课程笔记)

LLM 部署(Deployment)

来源:DeepWiki 对 mlabonne/llm-course 的 AI 生成文档。

概述

将 LLM 从实验模型变为生产服务,涉及模型服务、API 设计、扩展、监控、安全。

部署架构

User → Load Balancer → API Gateway
┌────────────┼────────────┐
▼ ▼ ▼
Inference Inference Inference
Server Server Server
│ │ │
└────────────┼────────────┘
Model Registry
(HuggingFace / S3)

服务框架对比

框架语言特点场景
vLLMPythonPagedAttention, OpenAI 兼容 API高吞吐生产
FastAPI + TransformersPython自定义灵活,小规模原型/小服务
Triton Inference ServerC++/PythonNVIDIA 官方,多模型管理企业级
BentoMLPython打包→容器化→部署一体化ML 平台
llama.cppC/C++CPU 优先,无 GPU 也可用本地/边缘
OllamaGo一键运行,模型管理个人开发

Serving API 设计

OpenAI 兼容 API(事实标准)

POST /v1/chat/completions
{
"model": "llama-3.1-70b",
"messages": [{"role": "user", "content": "Hello"}],
"temperature": 0.7,
"max_tokens": 1024,
"stream": true
}

流式 vs 非流式

模式延迟感知用户体验实现复杂度
非流式等全部生成完简单
流式 (SSE)逐 token 返回⭐⭐⭐中等
WebSocket全双工⭐⭐⭐复杂

扩展策略

水平扩展(Horizontal Scaling)

Load Balancer ──→ Instance 1
├── Instance 2
└── Instance 3
  • 无状态设计:推理服务器本身无状态,扩展最友好
  • KV Cache 共享:相同 prompt 前缀复用(如 vLLM Prefix Caching)
  • 模型并行:单模型跨多 GPU(Tensor Parallelism)

自动扩展

指标策略
GPU 利用率>80% 加实例,<20% 减
队列深度等待请求数超过阈值加实例
TTFT 延迟P99 TTFT > 2s 扩
请求速率QPS 超过阈值自动扩

批处理策略

策略延迟吞吐适合
Non-Batched最低最低低负载
Dynamic Batching中等多数场景
Continuous Batching中等最高高吞吐生产

监控与可观测性

核心指标

指标意义
TTFT (Time to First Token)首 token 延迟
TPOT (Time Per Output Token)每 token 生成时间
Tokens Per Second生成速度
GPU UtilizationGPU 利用率
VRAM Usage显存使用
Queue Depth等待队列长度
Error Rate错误率

监控栈

  • Metrics:Prometheus + Grafana
  • Logging:结构化日志(JSON)
  • Tracing:OpenTelemetry 分布式追踪

安全考虑

输入/输出安全

风险缓解
Prompt Injection输入过滤,权限隔离
JailbreakGuardrails(内容防火墙)
PII Leak脱敏过滤,输出 sanitize
模型盗用API Key 认证,速率限制
拒绝服务配额限制,超时控制

部署安全

  • 容器隔离:每个模型实例独立容器
  • 网络隔离:推理 API 不与公网直连
  • 模型加密:生产模型文件加密存储
  • 审计日志:记录所有 API 调用

生产 Checklist

  • 选择服务框架(vLLM / TRT-LLM / llama.cpp)
  • 启用 Continuous Batching
  • 实现 OpenAI 兼容 API
  • 配置自动扩展策略
  • 设置速率限制和配额
  • 搭建监控(TTFT/TPOT/GPU Utils)
  • 配置结构化日志
  • 实现 Guardrails 安全层
  • 部署健康检查和优雅关闭
  • 写 Smoke Tests

相关页面