Retour au Blog
MLOps 8 janvier 2025 6 min de lecture

Docker pour le ML : environnements reproductibles et builds multi-étapes

Meilleures pratiques pour conteneuriser le code ML — builds multi-étapes, support GPU, mise en cache des modèles.

Dockerfile multi-étapes

# Stage 1: Build environment
FROM python:3.11-slim as builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir --user -r requirements.txt

# Stage 2: Runtime
FROM python:3.11-slim
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY . .
ENV PATH=/root/.local/bin:$PATH

CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]

Résultat : image 2.1GB → 620MB

Support GPU

FROM nvidia/cuda:12.1-cudnn8-runtime-ubuntu22.04

Stratégie de cache du modèle

Intégrez le modèle dans l'image pour un démarrage à froid nul :

RUN python -c "from transformers import AutoModel; AutoModel.from_pretrained('bert-base-multilingual-cased')"
DockerMLOpsContainersReproducibilityDevOps
O

Ossama Elhakki

Ingénieur IA & Systèmes ML — Maroc