Cloud Deployment ও CPU vs GPU: AI app বাইরের দুনিয়ায়

publicly reachable AI service (Series 09, Episode 06)

🟡 INTERMEDIATE Series 09 — Notebook থেকে Production AI Episode 06 / 09

📑 এই পর্বে যা যা আছে

🎬 ১. গল্প: "URL-টা দাও, সবাই ব্যবহার করবে"

Rahim-এর Docker container দারুণ চলছে — তার laptop-এ। Boss বলল: "চমৎকার! এখন আমাকে একটা link দাও, আমি আমার phone থেকে, marketing team তাদের office থেকে দেখাব।" Rahim থমকে গেল — তার container তো শুধু localhost-এ। Maya বলল —

"Container টা এখন cloud-এ তুলতে হবে — একটা এমন computer যেটা সবসময় চালু আর internet-এ যুক্ত। তখন তুমি পাবে একটা public URL, যেটা যে কেউ যেকোনো জায়গা থেকে ব্যবহার করতে পারবে। এই ধাপটাই deployment।"
এই blog-এ একটা বিস্তারিত CI/CD ও Production Deployment বাংলা সিরিজ আছে — deploy pipeline গভীরে বুঝতে ওটা দেখো। এখানে আমরা AI service-এর দৃষ্টিকোণ থেকে সবচেয়ে সহজ পথটা দেখব।

২. সমস্যা: container আছে, কিন্তু পৃথিবী পৌঁছাবে কীভাবে?

তোমার laptop internet-এ সবসময় public না, সবসময় চালুও না, আর তুমি এটা বন্ধ করলে service বন্ধ। দরকার একটা সবসময়-চালু, public, নির্ভরযোগ্য computer — সেটাই cloud server। Cloud provider তোমার Docker image টেনে নিয়ে চালায় এবং একটা URL দেয়।

🧠 ৩. তিন স্তরে: cloud deployment মানে কী

Level 1 — intuition: তোমার দোকান এতদিন তোমার বাসার ড্রয়িংরুমে ছিল (শুধু তুমি ঢুকতে পারো)। Deployment মানে দোকানটা বড় রাস্তার পাশে একটা ভাড়া করা জায়গায় নিয়ে যাওয়া — যেখানে যে কেউ ঢুকতে পারে, সবসময় খোলা থাকে।
Level 2 — technical: তুমি তোমার Docker image একটা registry-তে push করো; cloud platform সেটা pull করে একটা server-এ container হিসেবে run করে, একটা domain/URL map করে, HTTPS দেয়, আর health check দিয়ে নজর রাখে।
Level 3 — engineer perspective: engineer বেছে নেয় কত RAM/CPU (বা GPU) লাগবে, কতগুলো instance চলবে (scaling), কীভাবে নতুন version deploy হবে ও rollback হবে, আর খরচ কত হবে। AI service-এ এই সিদ্ধান্তগুলোর কেন্দ্রে থাকে latency ও cost

🛠️ ৪. Deploy করার অপশন — কোনটা junior-এর জন্য

Platformধরনjunior-এর জন্য
Render / Railway / Fly.ioPaaS — Docker দিলে বাকিটা ওরা সামলায়✅ শুরুর জন্য সেরা; free tier আছে
Hugging Face SpacesML demo hosting✅ ML demo/portfolio-র জন্য দারুণ
AWS EC2 / GCP / Azure VMIaaS — কাঁচা server, তুমি সব সামলাও🟡 বেশি নিয়ন্ত্রণ, বেশি ঝামেলা
Kubernetes (EKS/GKE)orchestration, autoscale🔴 Learn Later — চাকরিতে/বড় scale-এ
junior পরামর্শ: portfolio ও প্রথম চাকরির জন্য Render/Fly.io/HF Spaces-এ Docker deploy শিখলেই যথেষ্ট। Kubernetes এখন বোঝা দরকার, master নয়।

🗺️ ৫. Visual: laptop থেকে internet পর্যন্ত পথ

[ তোমার Docker image ] | docker push v [ Container Registry ] (Docker Hub / GHCR) | cloud pull v [ Cloud Platform: container run ] | domain + HTTPS v https://career-assistant.onrender.com/analyze ^ | যে কেউ, যেকোনো জায়গা থেকে [ Phone ] [ Dashboard ] [ অন্য service ]

▶️ ৬. হাতে-কলমে: container cloud-এ deploy

Render-এর মতো PaaS-এ সাধারণ প্রবাহ (concept — exact UI বদলাতে পারে):

# 1) কোড + Dockerfile GitHub-এ push করো git push origin main # 2) Render-এ: New -> Web Service -> তোমার GitHub repo connect করো # Render নিজে Dockerfile detect করে build করবে # 3) Environment variables (secret!) Render dashboard-এ যোগ করো: # API_KEY = ... (কোডে বা image-এ নয় — মনে আছে?) # LOG_LEVEL = INFO # 4) Deploy -> কিছুক্ষণ পর একটা public URL পাবে: # https://career-assistant.onrender.com # 5) test: curl https://career-assistant.onrender.com/health
মূল বার্তা: Docker করার কারণে deploy প্রায় tুচ্ছ হয়ে গেল — "যেটা আমার laptop-এ চলছিল, ঠিক সেটাই cloud-এ চলছে।" এটাই আগের episode-এর পরিশ্রমের পুরস্কার।

🖥️ ৭. CPU বনাম GPU — কখন কোনটা লাগে

Junior-দের সবচেয়ে বড় ভুল ধারণা: "AI মানেই GPU লাগবে।" — সত্য নয়।

কাজCPU যথেষ্ট?GPU লাগে?
sklearn model inference (churn, JD classify)✅ হ্যাঁনা
ছোট embedding model দিয়ে RAG retrieval✅ প্রায়ই হ্যাঁনা (বড় scale-এ সাহায্য করে)
একটা LLM API (OpenAI) call করা✅ হ্যাঁ (GPU ওদের দিকে)না — তুমি শুধু API call করছ
বড় LLM/DL model নিজে host করে চালানো🟡 ধীর✅ হ্যাঁ
Deep learning model training❌ খুব ধীর✅ হ্যাঁ
মূল distinction — training ≠ inference: GPU মূলত training-এ ও বড় model নিজে host করে চালানোয় দরকার। বেশিরভাগ junior-level production inference (classical ML, বা LLM API ব্যবহার) CPU-তেই চলে — অনেক সস্তা। GPU ভাড়া অনেক দামি, তাই "লাগবে কি লাগবে না" ভেবে নেওয়া সরাসরি টাকার সিদ্ধান্ত।

⚖️ ৮. Latency ও cost — engineer-এর দুই চোখ

🚀 ৯. Inference optimization — সস্তায় দ্রুত

GPU কেনার আগে এই সস্তা কৌশলগুলো চেষ্টা করো (junior-level, বেশিরভাগ ক্ষেত্রেই যথেষ্ট):

Learn Later: quantization (int8), ONNX Runtime, model server (Triton/vLLM), GPU autoscaling — এগুলো specialization, junior-দের জন্য এখন শুধু নাম জানা যথেষ্ট।

🧪 ১০. Experiment: cold start ও latency মাপা

🇧🇩 ১১. বাংলাদেশের বাস্তব প্রসঙ্গ

বাংলাদেশে বেশিরভাগ startup GPU server-এর দামের কারণে যতটা সম্ভব CPU-তে inference চালায়, আর ভারী কাজ (বড় LLM) OpenAI/Anthropic-এর মতো API-তে পাঠিয়ে দেয় — নিজে host করে না। একজন junior হিসেবে যদি তুমি বুঝিয়ে বলতে পারো "এই কাজটা CPU-তেই হবে, GPU লাগবে না, তাই মাসে এত টাকা বাঁচবে" — সেটা কোম্পানির কাছে অত্যন্ত মূল্যবান। খরচের ভাষা বোঝা = engineer হিসেবে গুরুত্ব বাড়া।

👷 ১২. AI Engineer perspective

একটা model deploy করা মানেই শেষ নয় — deploy করার পর তিনটা জিনিস চলতে থাকে: এটা কি দ্রুত? (latency), এটা কি সাশ্রয়ী? (cost), এটা কি সঠিক থাকছে? (monitoring — পরের episode)। Engineer এই তিনটাই নিয়মিত মাপে ও উন্নত করে।
Must Know: Docker container cloud-এ deploy, public URL, env var, CPU/GPU-এর পার্থক্য। Good to Know: latency মাপা, caching/batching, right-sizing। Learn Later: Kubernetes autoscale, GPU serving, quantization।

💼 ১৩. Boss Question

💼 Boss: "একজন consultant বলল আমাদের AI-এর জন্য দামি GPU server ভাড়া নিতে হবে, মাসে লাখ টাকা। সত্যি লাগবে?"

উত্তর: নির্ভর করে আমরা কী চালাচ্ছি তার উপর। আমাদের বেশিরভাগ কাজ — classification, JD analysis, আর OpenAI API call — এসব CPU-তেই ভালো চলে; GPU লাগবে না। GPU তখনই দরকার হতো যদি আমরা নিজে একটা বড় LLM host করতাম বা model train করতাম। তাই এখন একটা সাধারণ CPU server (মাসে সামান্য খরচ) + caching-ই যথেষ্ট। বড় হলে তখন GPU ভাবা যাবে — এখন না।

🔎 ১৪. Job Requirement Decoder: "Deploy models to cloud; understanding of CPU/GPU"

  1. কী বোঝায়? containerized model cloud-এ চালিয়ে public/internal service বানানো, আর কোন hardware লাগবে বোঝা।
  2. কেন চায়? model deploy না হলে business value নেই; আর ভুল hardware = বাড়তি খরচ।
  3. কোন সমস্যা সমাধান করে? "শুধু laptop-এ চলে", ও অপ্রয়োজনীয় GPU খরচ।
  4. Junior-এর কী জানা লাগে? PaaS-এ Docker deploy, env var, public URL, CPU vs GPU-এর পার্থক্য, latency-র ধারণা।
  5. এখনই কী master লাগে না? Kubernetes, autoscaling, multi-region, GPU cluster, quantization — পরে।
  6. GitHub-এ কীভাবে দেখাবে? README-তে live deploy link + "কীভাবে deploy করলাম" ব্যাখ্যা; সম্ভব হলে HF Spaces/Render demo।
  7. Interview-তে কী জিজ্ঞেস করতে পারে? "CPU vs GPU কখন?", "latency কমাবে কীভাবে?", "cold start কী?", "cost কীভাবে কমাবে?"

⚠️ ১৫. সাধারণ ভুল

ভুল ১: ধরে নেওয়া "AI মানেই GPU"। → বেশিরভাগ junior inference CPU-তেই চলে।

ভুল ২: secret cloud-এর env var-এ না দিয়ে কোড/image-এ রাখা। → dashboard-এর env ব্যবহার করো।

ভুল ৩: latency না মেপে "মনে হয় দ্রুত" ধরে নেওয়া। → p95 মাপো।

ভুল ৪: free tier-এর cold start ভুলে যাওয়া। → প্রথম request ধীর হতে পারে; ব্যাখ্যা করো/warm রাখো।

ভুল ৫: অপ্রয়োজনে বড়/দামি instance নেওয়া। → মেপে right-size করো।

🎤 ১৬. Interview Prep

প্রশ্ন ১: "একটা model কীভাবে cloud-এ deploy করবে?"
উত্তর: Docker image → registry → PaaS/cloud pull ও run → env var-এ secret → public URL + HTTPS + health check।

প্রশ্ন ২: "কখন GPU লাগে, কখন CPU যথেষ্ট?"
উত্তর: training ও বড় model নিজে host করলে GPU; classical ML/embedding/LLM API inference সাধারণত CPU।

প্রশ্ন ৩: "inference latency কমাবে কীভাবে?"
উত্তর: caching, batching, ছোট model, right-sizing; দরকারে GPU/quantization।

প্রশ্ন ৪: "cold start কী?"
উত্তর: ঘুমন্ত/নতুন container প্রথম request-এ চালু হতে যে দেরি; warm রাখা বা min-instance দিয়ে কমানো যায়।

✍️ ১৭. হাতে-কলমে

Mini exercise:
১. তোমার Dockerized service একটা free PaaS (Render/Fly/HF Spaces)-এ deploy করো, public URL পাও।
২. secret গুলো platform-এর env var-এ দাও (কোডে নয়)।
৩. /health/predict public URL দিয়ে curl করো।
৪. ২০ বার call করে গড় ও p95 latency মাপো; cold start লক্ষ্য করো।
৫. এক লাইনে লেখো: "আমার এই service-এ GPU লাগে কি? কেন?" — যুক্তি দাও।

🚀 ১৮. Project Connection ও পরের পর্ব

আমাদের flagship "Bangladesh Tech Career Assistant" এখন internet-এ live — একটা public URL, HTTPS সহ, CPU-তে সাশ্রয়ীভাবে চলছে। Boss তার phone থেকে ব্যবহার করতে পারছে। এটা Project P9 (Production AI API)-এর প্রায় সম্পূর্ণ রূপ।

✓ cloud-এ Docker deploy, ✓ public URL + HTTPS + env secret, ✓ CPU vs GPU সিদ্ধান্ত, ✓ latency/cost ও inference optimization-এর ধারণা।
কিন্তু একটা গোপন বিপদ থেকে গেছে — deploy হওয়া model নীরবে খারাপ হতে পারে (data বদলে যায়), আর কেউ টের পায় না। পরের episode (MLOps Part 1)-এ আমরা শিখব experiment tracking, model ও data versioning, এবং model registry — যাতে ML lifecycle reproducible ও নিয়ন্ত্রিত হয়।
© 2025 Sheikh Thanbir Alam. All Rights Reserved. thanbirtamim.github.io
এই লেখা মূল লেখকের সম্পত্তি — লিখিত অনুমতি ছাড়া কপি করে অন্য কোনো ওয়েবসাইট, ব্লগ, বই বা প্ল্যাটফর্মে প্রকাশ/বিতরণ করা কঠোরভাবে নিষিদ্ধ। Content may not be copied or republished without permission.