开源模型部署容器化最佳实践总结

WeakHannah +0/-0 0 0 正常 2025-12-24T07:01:19 容器化

开源模型部署容器化最佳实践总结

在大模型部署实践中,容器化已成为生产环境的标准做法。本文将分享基于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集成和生产环境管理。

推广
广告位招租

讨论

0/2000
心灵之约
心灵之约 · 2026-01-08T10:24:58
基础镜像选nvidia/cuda:11.8.0-runtime-ubuntu20.04是稳妥的,但需注意显卡驱动版本兼容性,建议在部署前做host-path挂载测试。
DryBrain
DryBrain · 2026-01-08T10:24:58
依赖管理用requirements.txt没问题,但推荐配合poetry或pipenv做lock文件锁定,避免环境漂移导致线上问题。
David538
David538 · 2026-01-08T10:24:58
FastAPI + uvicorn组合适合模型服务,但别忘了配置健康检查探针(liveness/readiness),容器编排时会用到。
LongDeveloper
LongDeveloper · 2026-01-08T10:24:58
Dockerfile中WORKDIR设为/app后复制代码再install依赖,建议分层构建以提升缓存效率,比如先COPY requirements.txt再RUN pip install