
1) 【一句话结论】将AI模型部署到Web服务端需经历模型转换(适配框架)、容器化(环境隔离)、K8s编排(弹性部署)及监控告警(保障稳定性)四大核心环节,确保模型高效、可靠运行。
2) 【原理/概念讲解】
3) 【对比与适用场景】
| 对比维度 | 方案/工具 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|---|
| 模型转换工具 | TensorFlow Lite Converter | TensorFlow转TFLite | 专注移动端/嵌入式 | 移动App、IoT设备 | 仅支持移动端优化 |
| ONNX Runtime | ONNX模型运行时 | 跨框架通用运行时 | 支持多框架、多平台 | Web服务、云部署 | 需适配不同框架 |
| 容器化方案 | Docker | 容器化平台 | 易于构建、分发 | 单机/小规模部署 | 镜像体积大,需优化 |
| Kubernetes原生 | 容器编排 | 弹性伸缩、服务发现 | 自动化管理 | 大规模分布式系统 | 配置复杂,需熟练掌握 |
| 监控方案 | Prometheus | 开源监控 | 时间序列存储、查询 | 大规模分布式系统 | 需自建监控集群 |
| Datadog | 商业监控 | 一站式监控+告警 | 快速集成 | 需快速上线 | 需付费 |
4) 【示例】
tensorflow_model_optimization/tools/quantize_graph \
--input_model model/tf_model.pb \
--output_model model/quantized_model.onnx \
--input_type "FP32" \
--output_type "INT8" \
--input_names="input" \
--output_names="output"
FROM tensorflow/tensorflow:2.8-gpu
WORKDIR /app
COPY model/quantized_model.onnx /app/
COPY inference.py /app/
CMD ["python", "inference.py"]
apiVersion: apps/v1
kind: Deployment
metadata:
name: ai-model-deployment
spec:
replicas: 3
selector:
matchLabels:
app: ai-model
template:
metadata:
labels:
app: ai-model
spec:
containers:
- name: ai-model-container
image: ai-model-image:latest
ports:
- containerPort: 5000
apiVersion: v1
kind: Service
metadata:
name: ai-model-service
spec:
selector:
app: ai-model
ports:
- protocol: TCP
port: 80
targetPort: 5000
type: ClusterIP
# prometheus.yml
scrape_configs:
- job_name: 'ai-model'
static_configs:
- targets: ['localhost:9100']
5) 【面试口播版答案】
“面试官您好,我将AI模型部署到Web服务端的完整流程分为四个核心环节:首先进行模型转换,比如从TensorFlow模型转换为ONNX格式,目的是提升跨框架兼容性,让模型能在不同运行时环境(如ONNX Runtime)上高效运行;接着进行容器化,使用Docker构建镜像,封装模型、依赖库和运行时环境,实现环境隔离,避免依赖冲突;然后通过K8s进行部署,使用Deployment管理3个副本确保高可用,Service实现服务发现(ClusterIP类型),让内部请求能找到服务;最后配置监控指标,通过Prometheus收集QPS(每秒查询数)、延迟(P99延迟)和模型推理时间,当QPS超过5000或延迟超过200ms时触发告警(邮件/钉钉通知),确保服务稳定运行。整个过程确保模型能高效、可靠地运行在Web服务端。”
6) 【追问清单】
7) 【常见坑/雷区】