一、模型即服务(MaaS)平台
1. BentoML ⭐ (推荐)
GitHub : https://github.com/bentoml/BentoML
Stars : 5.8k+
定位: 生产级 AI 应用框架
python
# BentoML 示例
import bentoml
from transformers import pipeline
@bentoml.service(
resources={"gpu": 1},
traffic={"timeout": 60},
)
class Summarization:
def __init__(self):
self.model = pipeline("summarization")
@bentoml.api
def summarize(self, text: str) -> str:
return self.model(text)[0]['summary_text']
# 构建 Bento
bento = bentoml.build("summarization:latest")
# 部署
bentoml.containerize(bento, platform="docker")
核心特性:
-
✅ 统一框架: 支持任意 ML 框架 (PyTorch, TensorFlow, XGBoost 等)
-
✅ 高性能: 异步推理、动态批处理、GPU 优化
-
✅ 标准化打包: 将模型+代码+依赖打包为 Bento
-
✅ 生产就绪: 集成监控、跟踪、A/B 测试
-
✅ 多平台部署: Kubernetes, AWS SageMaker, Azure ML 等
-
✅ 丰富的生态系统: Yatai (模型管理平台)、OpenAPI 生成
适用场景: 企业级模型服务化、多框架支持、需要高定制化
2. Cog
GitHub : https://github.com/replicate/cog
Stars : 4.5k+
定位: 容器化 AI 模型标准
html
# cog.yaml - 声明式配置
build:
gpu: true
python_version: "3.10"
python_packages:
- "torch>=2.0.0"
- "transformers>=4.30.0"
run:
- "apt-get update && apt-get install -y ffmpeg"
# 预测接口定义
predict: "predict.py:Predictor"
python
# predict.py
from cog import BasePredictor, Input, Path
import torch
class Predictor(BasePredictor):
def setup(self):
"""加载模型"""
self.model = torch.load("model.pth")
def predict(self,
image: Path = Input(description="输入图片"),
scale: float = Input(description="缩放比例", default=1.5)
) -> Path:
"""预测函数"""
# 处理逻辑
return output_path
核心特性:
-
✅ 标准化容器: 基于 Docker 的标准化模型容器
-
✅ 简单配置: cog.yaml 声明式配置
-
✅ 类型安全: 强类型输入输出定义
-
✅ 一键部署 :
cog push推送到 Replicate 平台 -
✅ 自动生成 API: 自动创建 HTTP API 和客户端
适用场景: 需要容器化部署、与 Replicate 生态集成、快速原型
3. Ray Serve
GitHub : https://github.com/ray-project/ray
定位: 分布式 AI 服务框架
python
# Ray Serve 示例
from ray import serve
from transformers import pipeline
import requests
@serve.deployment(
num_replicas=2,
ray_actor_options={"num_gpus": 0.5}
)
class Translator:
def __init__(self):
self.model = pipeline("translation_en_to_fr")
def translate(self, text: str):
return self.model(text)[0]['translation_text']
async def __call__(self, request):
return await self.translate(await request.json()["text"])
# 部署
translator_app = Translator.bind()
# 伸缩
translator_app.options(num_replicas=10).bind()
核心特性:
-
✅ 分布式原生: 基于 Ray 的分布式计算框架
-
✅ 弹性伸缩: 动态扩缩容、负载均衡
-
✅ 复杂拓扑: 支持管道、集成、DAG 等工作流
-
✅ 多框架: 支持任意 Python 代码
-
✅ 生产特性: 容错、监控、滚动更新
适用场景: 大规模分布式推理、复杂工作流、需要弹性伸缩
二、大语言模型专用平台
4. vLLM
GitHub : https://github.com/vllm-project/vllm
Stars : 15k+
定位: 高吞吐 LLM 推理引擎
python
from vllm import LLM, SamplingParams
# 初始化
llm = LLM(model="meta-llama/Llama-2-7b-chat-hf")
# 推理参数
sampling_params = SamplingParams(
temperature=0.8,
top_p=0.95,
max_tokens=256
)
# 批量推理
outputs = llm.generate([
"Hello, my name is",
"The capital of France is"
], sampling_params)
# 连续批处理 - 高吞吐
prompts = [...] # 大量提示词
batch_outputs = []
for batch in batch_generator(prompts, batch_size=32):
outputs = llm.generate(batch, sampling_params)
batch_outputs.extend(outputs)
核心特性:
-
✅ 极致性能: PagedAttention 技术,吞吐量提升 24 倍
-
✅ 连续批处理: 动态处理不同长度序列
-
✅ 开源模型支持: Llama, Mistral, GPT-NeoX 等
-
✅ 量化支持: AWQ, GPTQ, FP8 等
-
✅ OpenAI 兼容 API: 直接替换 OpenAI 客户端
技术架构:
bash
┌─────────────────────────────────────────────┐
│ HTTP/OpenAI API 层 │
├─────────────────────────────────────────────┤
│ 连续批处理调度器 (Continuous │
│ Batching Scheduler) │
├─────────────────────────────────────────────┤
│ PagedAttention 内核 │
│ (GPU 内存管理优化,消除碎片) │
├─────────────────────────────────────────────┤
│ 量化推理 (AWQ/GPTQ/FP8) │
├─────────────────────────────────────────────┤
│ 多GPU分布式推理 (Tensor/ │
│ Pipeline Parallel) │
└─────────────────────────────────────────────┘
适用场景: LLM API 服务、高并发聊天应用、需要最优性价比
5. Text Generation Inference (TGI)
GitHub : https://github.com/huggingface/text-generation-inference
Stars : 4.2k+
定位: Hugging Face 官方推理服务
bash
# Docker 快速启动
docker run --gpus all \
-p 8080:80 \
-v /data/models:/data \
ghcr.io/huggingface/text-generation-inference:latest \
--model-id meta-llama/Llama-2-7b-chat-hf \
--num-shard 2 \
--quantize bitsandbytes
# 使用 OpenAI 兼容 API
curl localhost:8080/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama-2-7b",
"prompt": "What is AI?",
"max_tokens": 100
}'
核心特性:
-
✅ 官方支持: Hugging Face 官方维护
-
✅ 特性丰富: 流式输出、Token 流、服务器推送事件
-
✅ 优化技术: Flash Attention, Paged Attention
-
✅ 生产就绪: Prometheus 指标、健康检查、分布式推理
-
✅ 安全特性: Safetensors、权重校验
适用场景: 企业级 LLM 部署、需要 Hugging Face 生态集成
6. FastChat (Vicuna)
GitHub : https://github.com/lm-sys/FastChat
Stars : 29k+
定位: 多模型对话系统平台
bash
# 三组件架构
# 1. 启动控制器
python3 -m fastchat.serve.controller
# 2. 启动工作节点
python3 -m fastchat.serve.model_worker \
--model-path lmsys/vicuna-7b-v1.5 \
--controller http://localhost:21001 \
--worker http://localhost:21002
# 3. 启动 Gradio Web UI
python3 -m fastchat.serve.gradio_web_server
# 4. 或启动 OpenAI 兼容 API
python3 -m fastchat.serve.openai_api_server \
--host localhost --port 8000
核心特性:
-
✅ 多模型支持: 70+ 开源对话模型
-
✅ 分布式架构: 控制器-工作者分离架构
-
✅ Web UI: 内置 Gradio 聊天界面
-
✅ 评估工具: 模型对比、人工评估
-
✅ 训练支持: 监督微调、奖励模型
适用场景: 聊天机器人开发、多模型比较、学术研究
三、企业级 MLOps 平台
7. MLflow
GitHub : https://github.com/mlflow/mlflow
Stars : 16k+
定位: 机器学习生命周期管理
python
import mlflow
# 实验跟踪
with mlflow.start_run():
mlflow.log_param("learning_rate", 0.01)
mlflow.log_metric("accuracy", 0.95)
mlflow.log_artifact("model.pkl")
# 记录模型
mlflow.pyfunc.log_model(
"model",
python_model=MyModel(),
artifacts={"model": "model.pkl"},
registered_model_name="churn-predictor"
)
# 模型服务
mlflow models serve -m "models:/churn-predictor/1" -p 5001
核心特性:
-
✅ 全生命周期: 实验跟踪、模型注册、部署、监控
-
✅ 多框架: TensorFlow, PyTorch, Scikit-learn 等
-
✅ 模型注册表: 版本控制、阶段管理
-
✅ 部署选项: REST API, Docker, Kubernetes
-
✅ 可扩展: 自定义存储、跟踪后端
适用场景: 企业 MLOps、模型治理、需要完整生命周期管理
8. Seldon Core
GitHub : https://github.com/SeldonIO/seldon-core
Stars : 3.8k+
定位: Kubernetes 原生模型部署
XML
# Seldon Deployment
apiVersion: machinelearning.seldon.io/v1
kind: SeldonDeployment
metadata:
name: sentiment-model
spec:
predictors:
- name: default
replicas: 2
graph:
name: sentiment
type: MODEL
implementation: SKLEARN_SERVER
modelUri: s3://models/sentiment/v1
envSecretRefName: seldon-init-container-secret
componentSpecs:
- spec:
containers:
- name: sentiment
image: seldonio/sklearnserver:1.15.0
resources:
requests:
memory: "1Gi"
cpu: "0.5"
核心特性:
-
✅ Kubernetes 原生: CRD 自定义资源定义
-
✅ 高级推理图: 组合多个模型、预处理、后处理
-
✅ 可观测性: 集成 Prometheus、Grafana、Jaeger
-
✅ 金丝雀发布: 流量拆分、A/B 测试
-
✅ 解释器: LIME、SHAP 模型解释
适用场景: Kubernetes 环境、复杂推理流水线、需要金丝雀发布
9. KServe (Kubeflow)
GitHub : https://github.com/kserve/kserve
Stars : 1.8k+
定位: 云原生模型服务标准
XML
# InferenceService
apiVersion: serving.kserve.io/v1beta1
kind: InferenceService
metadata:
name: torchserve
spec:
predictor:
pytorch:
storageUri: gs://mybucket/model
resources:
limits:
cpu: "1"
memory: 2Gi
nvidia.com/gpu: "1"
env:
- name: OMP_NUM_THREADS
value: "1"
核心特性:
-
✅ 标准化接口: 统一推理接口 (V2 Protocol)
-
✅ 多框架服务器: TorchServe, TensorFlow Serving, Triton
-
✅ 自动缩放: Knative 或 Kubernetes HPA
-
✅ 请求/响应日志: 完整审计跟踪
-
✅ Serverless: 支持冷启动优化
适用场景: Kubeflow 用户、需要标准化接口、企业级部署
四、轻量级推理服务
10. TensorFlow Serving
GitHub : https://github.com/tensorflow/serving
Stars : 6k+
定位: TensorFlow 模型生产服务
python
# 启动服务
docker run -p 8501:8501 \
--name=tfserving \
-v /path/to/models:/models \
tensorflow/serving:latest-gpu \
--model_config_file=/models/models.config \
--model_config_file_poll_wait_seconds=60
# models.config
model_config_list {
config {
name: 'resnet'
base_path: '/models/resnet'
model_platform: 'tensorflow'
}
}
核心特性:
-
✅ 高性能: gRPC/REST API, 批处理优化
-
✅ 模型热更新: 无需重启服务更新模型
-
✅ 版本管理: 多版本共存、版本策略
-
✅ 监控指标: Prometheus 指标端点
-
✅ batching: 动态和静态批处理
适用场景: TensorFlow 模型部署、需要高性能推理
11. TorchServe
GitHub : https://github.com/pytorch/serve
Stars : 3.7k+
定位: PyTorch 模型服务
python
# 创建模型存档
torch-model-archiver \
--model-name bert \
--version 1.0 \
--serialized-file model.pth \
--handler handler.py \
--extra-files setup_config.json
# 启动服务
torchserve --start \
--model-store model_store \
--models bert=bert.mar \
--ncs
# 管理 API
curl -X POST http://localhost:8081/models?url=bert.mar
核心特性:
-
✅ 模型归档: .mar 格式打包模型+代码
-
✅ 自定义处理器: 预处理、后处理、推理
-
✅ 度量API: 性能监控指标
-
✅ 推理API: gRPC 和 REST
-
✅ 模型管理: 注册、卸载、扩展
适用场景: PyTorch 模型部署、需要灵活处理器
12. Triton Inference Server
GitHub : https://github.com/triton-inference-server/server
Stars : 7k+
定位: NVIDIA 多框架推理服务
bash
# 模型配置 config.pbtxt
name: "ensemble_model"
platform: "ensemble"
max_batch_size: 8
input [
{
name: "input"
data_type: TYPE_FP32
dims: [ 224, 224, 3 ]
}
]
output [
{
name: "output"
data_type: TYPE_FP32
dims: [ 1000 ]
}
]
ensemble_scheduling {
step [
{
model_name: "preprocess"
model_version: -1
input_map {
key: "input"
value: "input"
}
output_map {
key: "output"
value: "preprocessed"
}
},
{
model_name: "inference"
model_version: -1
input_map {
key: "input"
value: "preprocessed"
}
output_map {
key: "output"
value: "output"
}
}
]
}
核心特性:
-
✅ 多框架: TensorRT, TensorFlow, PyTorch, ONNX
-
✅ 动态批处理: 跨框架统一批处理
-
✅ 模型集成: 多模型流水线
-
✅ 并发模型: 单个 GPU 上运行多个模型
-
✅ 性能分析器: 详细性能分析工具
适用场景: 需要多框架支持、高性能推理、模型流水线
五、对比总结表
| 方案 | 核心定位 | 优势 | 适用场景 | 学习曲线 |
|---|---|---|---|---|
| BentoML | 生产AI应用框架 | 多框架支持、标准化打包 | 企业级服务、多框架 | 中 |
| Cog | 容器化AI标准 | 简单配置、一键部署 | 快速原型、容器化 | 低 |
| Ray Serve | 分布式AI服务 | 弹性伸缩、复杂工作流 | 大规模推理、分布式 | 高 |
| vLLM | LLM推理引擎 | 极致性能、连续批处理 | LLM API服务、高并发 | 中 |
| TGI | 官方LLM服务 | 官方支持、特性丰富 | 企业LLM、HuggingFace生态 | 中 |
| FastChat | 对话系统平台 | 多模型、Web UI | 聊天机器人、研究 | 中 |
| MLflow | 生命周期管理 | 全周期、模型注册 | MLOps、模型治理 | 中 |
| Seldon Core | K8s模型部署 | K8s原生、推理图 | 云原生环境、复杂流水线 | 高 |
| KServe | 云原生标准 | 标准化接口、自动缩放 | Kubeflow用户、标准化 | 中 |
| TF Serving | TensorFlow服务 | 高性能、热更新 | TensorFlow模型 | 中 |
| TorchServe | PyTorch服务 | 灵活处理器、模型归档 | PyTorch模型 | 中 |
| Triton | 多框架推理 | 多框架、动态批处理 | 多框架、高性能 | 高 |
六、选择建议
根据需求选择:
-
需要快速部署原型:
-
Cog (最简单)
-
BentoML (功能全面)
-
FastChat (对话模型)
-
-
企业级生产部署:
-
BentoML + Yatai (端到端方案)
-
Seldon Core (Kubernetes 环境)
-
MLflow (完整生命周期)
-
-
大语言模型服务:
-
vLLM (性能最优)
-
Text Generation Inference (官方支持)
-
FastChat (多模型对话)
-
-
分布式大规模推理:
-
Ray Serve (弹性伸缩)
-
KServe (云原生标准)
-
Triton (多框架高性能)
-
-
特定框架优化:
-
TensorFlow Serving (TensorFlow)
-
TorchServe (PyTorch)
-
Triton (NVIDIA 生态)
-
技术栈考虑:
-
Python 生态: BentoML, MLflow
-
Kubernetes 生态: Seldon Core, KServe
-
HuggingFace 生态: TGI, Transformers
-
NVIDIA 生态: Triton, TensorRT
-
Ray 生态: Ray Serve, Ray Train
社区与支持:
-
活跃社区: FastChat (29k stars), vLLM (15k stars)
-
企业支持: Seldon Core (Red Hat), KServe (Google)
-
官方项目: TGI (HuggingFace), TorchServe (PyTorch)
七、趋势与展望
-
LLM 专用优化: vLLM 的 PagedAttention 等技术正在成为标准
-
统一标准: KServe V2 Protocol 推动接口标准化
-
边缘计算: 轻量级部署方案 (ONNX Runtime, TensorFlow Lite)
-
成本优化: 量化、稀疏化、动态批处理成为标配
-
安全合规: 模型水印、数据脱敏、审计跟踪
八、实用工具链推荐
bash
# 完整 AI 服务工具链
开发框架: BentoML/Cog
模型优化: ONNX Runtime/OpenVINO
推理引擎: vLLM/Triton
部署平台: Seldon Core/KServe
监控告警: Prometheus/Grafana
实验跟踪: MLflow/Weights & Biases
这些开源方案各有侧重,选择时应根据具体需求、技术栈和团队经验综合考虑。对于大多数团队,从 BentoML 或 Cog 开始是较好的选择,它们提供了良好的平衡点。