Model Deployment
Docker, Cloud — model কে users এর কাছে পৌঁছানো।
Local এ FastAPI চলছে — কিন্তু users কোথা থেকে access করবে? Server লাগবে, OS dependency match করতে হবে, Python version মিলবে কিনা — অনেক সমস্যা। Docker সব pack করে একটা container এ — 'work on my machine' problem গায়েব। AWS/GCP/Azure এ deploy করে users এর কাছে।
Model Deployment = trained model কে production environment এ run করা যেন real user access করতে পারে। Stack: (1) Containerize — Docker দিয়ে env + dependency + model একসাথে, (2) Orchestrate — Kubernetes/ECS/Cloud Run, (3) Serve — Cloud (AWS SageMaker, GCP Vertex AI, HuggingFace Inference Endpoint), (4) Monitor — uptime, latency, error rate।
ভাবুন আপনি একটা restaurant chain বানাচ্ছেন — প্রতিটা branch এ same kitchen setup দরকার (Docker = standardized kitchen)। Manager (Kubernetes) decide করে কোন branch এ কত chef রাখতে হবে demand অনুযায়ী। Customer (user) HTTPS এর মাধ্যমে order করে — backend এ Docker container এ model serve হয়, response ফেরত যায়।
# Dockerfile
FROM python:3.11-slim
WORKDIR /app
# System deps (for some HuggingFace tokenizers)
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential git && rm -rf /var/lib/apt/lists/*
# Install Python deps first (better cache)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Pre-download model at build time (faster cold start)
RUN python -c "from transformers import pipeline; pipeline('sentiment-analysis')"
# Copy app code
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "2"]
# ---- requirements.txt ----
# fastapi==0.115.0
# uvicorn[standard]==0.32.0
# transformers==4.45.0
# torch==2.4.0
# pydantic==2.9.0
# ---- Build + Run ----
# docker build -t nlp-api:v1 .
# docker run -p 8000:8000 nlp-api:v1
# ---- Deploy to Google Cloud Run ----
# gcloud builds submit --tag gcr.io/PROJECT/nlp-api:v1
# gcloud run deploy nlp-api --image gcr.io/PROJECT/nlp-api:v1 \
# --memory 4Gi --cpu 2 --port 8000 --allow-unauthenticatedDockerfile python:3.11-slim base — lightweight। requirements আগে copy + install (Docker layer cache), পরে code copy। Model build time এ pre-download — first request slow হবে না। uvicorn 2 worker দিয়ে parallel request handle। Cloud Run এ deploy করলে auto-scale, HTTPS free।
Chapter 37 এর FastAPI app কে dockerize করুন, Docker Hub এ push, Google Cloud Run এ deploy। Public HTTPS URL পেয়ে curl দিয়ে test। README তে deployment steps document।