跳到主要内容

开发指南

生产部署架构

单机多卡

适用于 70B 等超大模型,使用 Tensor Parallelism:

vllm serve Qwen/Qwen2-72B-Instruct --tensor-parallel-size 4

多实例 + 负载均衡

  • Nginxupstream 配置多个推理服务后端
  • Kubernetes:Deployment 多副本 + Service ClusterIP/LoadBalancer

与 Dify、LangChain 集成

将推理服务的 base_url 配置为自建端点即可:

  • Dify:模型配置 → 自定义 OpenAI 兼容 API → 填入 http://your-serving-host:8000/v1
  • LangChainChatOpenAI(base_url="http://...", api_key="dummy")

性能优化

吞吐优化

  1. 增大 batch 大小--max-num-seqs(vLLM)提高并发批大小
  2. 量化:使用 AWQ、GPTQ 等量化模型降低显存,可跑更大 batch
  3. 连续批处理:vLLM 默认启用,无需额外配置

延迟优化

  1. 流式输出:降低 TTFT,用户更快看到首字
  2. 减少 max_tokens:按业务需要设置上限
  3. 预加载:保持服务常驻,避免冷启动

显存优化

  1. 量化:INT4 可显著降低显存,参见 模型量化
  2. gpu-memory-utilization:vLLM 默认 0.9,可根据稳定性调整
  3. max-model-len:减小上下文长度可节省显存

安全与访问控制

  • 认证:生产环境建议加 API Key 或 OAuth,避免裸接口暴露
  • 限流:防止单用户占满资源,可用 Nginx limit_req、Kong、APISIX 等
  • 输入过滤:对 prompt 做长度、敏感词、注入检测
  • 输出过滤:可根据合规要求过滤输出内容

健康检查与运维

健康端点

curl http://localhost:8000/health

日志与监控

  • 日志:记录请求 ID、模型、Token 数、耗时
  • 指标:Prometheus 暴露 request_durationqueue_size
  • 告警:错误率、延迟 P99、GPU 利用率超阈值时告警

扩缩容实践

Kubernetes HPA

需暴露自定义指标(如 QPS、队列长度),配置 HPA 基于该指标扩缩容。

冷启动应对

  • 预留最小副本数,避免流量突增时从 0 扩容
  • 使用 K8s minReplicas 或云厂商预留实例

与微调、量化的协同

环节说明
微调微调后的模型导出为 Safetensors,供 vLLM/TGI 加载
量化量化后的 GGUF、AWQ 等格式可由对应推理框架加载
推理服务对外提供 API,供应用层调用

参考