Home »
Blog »
AI/ML Engineer সিরিজ » Series 09 » Episode 06
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-টা দাও, সবাই ব্যবহার করবে"
- ২. সমস্যা: container আছে, কিন্তু পৃথিবী পৌঁছাবে কীভাবে?
- ৩. তিন স্তরে: cloud deployment মানে কী
- ৪. Deploy করার অপশন (Render/Fly/EC2) — কোনটা junior-এর জন্য
- ৫. Visual: laptop থেকে internet পর্যন্ত পথ
- ৬. হাতে-কলমে: container cloud-এ deploy
- ৭. CPU বনাম GPU — কখন কোনটা লাগে
- ৮. Latency ও cost — engineer-এর দুই চোখ
- ৯. Inference optimization — সস্তায় দ্রুত
- ১০. Experiment: cold start ও latency মাপা
- ১১. বাংলাদেশের বাস্তব প্রসঙ্গ
- ১২. AI Engineer perspective
- ১৩. Boss Question
- ১৪. Job Requirement Decoder: "Cloud deployment / CPU-GPU"
- ১৫. সাধারণ ভুল
- ১৬. Interview Prep
- ১৭. হাতে-কলমে
- ১৮. Project Connection ও পরের পর্ব
🎬 ১. গল্প: "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.io | PaaS — Docker দিলে বাকিটা ওরা সামলায় | ✅ শুরুর জন্য সেরা; free tier আছে |
| Hugging Face Spaces | ML demo hosting | ✅ ML demo/portfolio-র জন্য দারুণ |
| AWS EC2 / GCP / Azure VM | IaaS — কাঁচা 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-এর দুই চোখ
- Latency — একটা request-এর উত্তর আসতে কত সময়? user experience ও SLA এর উপর নির্ভর করে।
p50, p95, p99 (৫০/৯৫/৯৯ শতাংশ request কত সময়ে শেষ) মাপা শেখো।
- Cost — server-এর মাসিক ভাড়া + (LLM হলে) per-token খরচ। CPU vs GPU, instance size,
caching — সব এখানে প্রভাব ফেলে।
- Trade-off — দ্রুত চাই? বড় server/GPU লাগবে (দামি)। সস্তা চাই? হয়তো একটু ধীর, বা
caching দিয়ে সামলাতে হবে।
🚀 ৯. Inference optimization — সস্তায় দ্রুত
GPU কেনার আগে এই সস্তা কৌশলগুলো চেষ্টা করো (junior-level, বেশিরভাগ ক্ষেত্রেই যথেষ্ট):
- Caching (আগের episode) — একই input-এ আবার compute করো না।
- Batching — অনেক request একসাথে process করলে throughput বাড়ে।
- ছোট/হালকা model — একই কাজ ছোট model-এ হলে সেটাই নাও (distillation/quantization —
পরে শেখার জন্য)।
- Right-sizing — অপ্রয়োজনে বড় server নিও না; মেপে নাও কত RAM/CPU সত্যিই লাগে।
Learn Later: quantization (int8), ONNX Runtime, model server (Triton/vLLM), GPU autoscaling —
এগুলো specialization, junior-দের জন্য এখন শুধু নাম জানা যথেষ্ট।
🧪 ১০. Experiment: cold start ও latency মাপা
- Deploy করার পর প্রথম request-এ দেরি লক্ষ্য করো (cold start — free tier-এ container ঘুমিয়ে থাকে)।
- একই endpoint ২০ বার call করে গড় latency মাপো (
time curl ... বা একটা ছোট script)।
- Caching চালু/বন্ধ করে 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"
- কী বোঝায়? containerized model cloud-এ চালিয়ে public/internal service বানানো, আর
কোন hardware লাগবে বোঝা।
- কেন চায়? model deploy না হলে business value নেই; আর ভুল hardware = বাড়তি খরচ।
- কোন সমস্যা সমাধান করে? "শুধু laptop-এ চলে", ও অপ্রয়োজনীয় GPU খরচ।
- Junior-এর কী জানা লাগে? PaaS-এ Docker deploy, env var, public URL, CPU vs GPU-এর
পার্থক্য, latency-র ধারণা।
- এখনই কী master লাগে না? Kubernetes, autoscaling, multi-region, GPU cluster,
quantization — পরে।
- GitHub-এ কীভাবে দেখাবে? README-তে live deploy link + "কীভাবে deploy করলাম" ব্যাখ্যা;
সম্ভব হলে HF Spaces/Render demo।
- 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 ও নিয়ন্ত্রিত হয়।