开源模型部署容器化最佳实践总结
在大模型部署实践中,容器化已成为生产环境的标准做法。本文将分享基于Docker的开源模型部署最佳实践。
基础镜像选择
推荐使用nvidia/cuda:11.8.0-runtime-ubuntu20.04作为基础镜像,确保GPU驱动兼容性。
FROM nvidia/cuda:11.8.0-runtime-ubuntu20.04
RUN apt-get update && apt-get install -y python3-pip
环境配置与依赖安装
创建requirements.txt文件,包含核心依赖:
transformers==4.33.0
torch==2.0.1
accelerate==0.21.0
fastapi==0.95.0
uvicorn==0.23.0
部署脚本示例
# main.py
from fastapi import FastAPI
from transformers import AutoModel, AutoTokenizer
import torch
app = FastAPI()
model = AutoModel.from_pretrained("bert-base-uncased")
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
@app.get("/predict")
def predict(text: str):
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
return {"embedding": outputs.last_hidden_state.tolist()}
Dockerfile完整示例
FROM nvidia/cuda:11.8.0-runtime-ubuntu20.04
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
部署命令
# 构建镜像
sudo docker build -t my-model-api .
# 运行容器
sudo docker run --gpus all -p 8000:8000 my-model-api
通过以上步骤,可实现模型服务的标准化部署,便于CI/CD集成和生产环境管理。

讨论