Home »
Blog »
AI/ML Engineer সিরিজ » Series 03 » Episode 01
কেন AI-এর ৮০% কাজ আসলে data নিয়ে? Nila-র প্রথম পাঠ
Garbage in, garbage out — data-centric mindset (Series 03, Episode 01)
🟢 BEGINNER
Series 03 — Data — AI-এর ভিত্তি
Episode 01 / 09
📑 এই পর্বে যা যা আছে
- ১. গল্প: Rahim-এর প্রথম "AI project"
- ২. আসল সমস্যা: model না, data-ই আসল বাধা
- ৩. কেন এই mindset-টা এত জরুরি
- ৪. তিন Level-এ বুঝি: data কেন ৮০% কাজ
- ৫. Visual: একটা ML project-এর আসল time breakdown
- ৬. Garbage In, Garbage Out — একটা বাস্তব উদাহরণ
- ৭. Data-র রকমফের: structured, unstructured, semi-structured
- ৮. একজন AI Engineer-এর চোখে "ভালো data"
- ৯. বাংলাদেশের context-এ data-র বাস্তবতা
- ১০. Boss Question
- ১১. Job Requirement Decoder
- ১২. সাধারণ ভুল ধারণা
- ১৩. Interview Prep
- ১৪. হাতে-কলমে (Mini Exercise)
- ১৫. Project Connection: flagship-এর V2
- ১৬. সারসংক্ষেপ
- ১৭. পরবর্তী পর্বে কী শিখব
🧩 ১. গল্প: Rahim-এর প্রথম "AI project"
Rahim কয়েক সপ্তাহ ধরে YouTube-এ tutorial দেখে ঠিক করল — এবার একটা real ML project বানাবে। সে ভাবল,
"আমি এমন একটা model বানাব যেটা বলে দেবে বাংলাদেশে কোন skill শিখলে বেশি বেতনের চাকরি পাওয়া যায়।"
Idea শুনতে দারুণ। কিন্তু বসতেই সে আবিষ্কার করল — model লেখার code তো tutorial-এ ৫ লাইন, কিন্তু...
Rahim তার সিনিয়র Nila (একজন data scientist)-কে বলল:
"আপা, algorithm তো পারি — model.fit() লিখলেই হয়। কিন্তু আমার কাছে তো কোনো data-ই নেই!
job post-গুলো তো ওয়েবসাইটে ছড়ানো, কোনটায় salary লেখা, কোনটায় নেই, skill-গুলোও একেক জায়গায় একেকভাবে
লেখা — কোথাও 'Python', কোথাও 'python3', কোথাও 'PY'। এই অবস্থায় model কীভাবে শিখবে?"
Nila হেসে বলল: "স্বাগতম বাস্তব জগতে, Rahim! তুমি এইমাত্র AI-এর সবচেয়ে বড় সত্যটা আবিষ্কার করলে —
model লেখা সবচেয়ে ছোট অংশ। আসল কাজ হলো data জোগাড় করা, পরিষ্কার করা আর বোঝা। এটাই তোমার সময়ের ৮০% খাবে।"
এই episode-এ আমরা ঠিক সেই সত্যটাই বুঝব — কেন একজন AI/ML Engineer-এর জীবনে model নয়, data-ই
মূল চরিত্র। এই mindset-টা না থাকলে পরের সব series (Pandas, ML, Deep Learning) শুধু tutorial থেকে যাবে,
real project-এ কাজে দেবে না।
❓ ২. আসল সমস্যা: model না, data-ই আসল বাধা
নতুনরা AI শেখা শুরু করে model দিয়ে — "কোন algorithm best?", "Random Forest নাকি XGBoost?"। কিন্তু
real world-এ প্রথম বাধা কখনোই algorithm না। প্রথম বাধাগুলো হলো:
- data কোথায় আছে? (database, CSV, API, ওয়েবসাইট, Excel — সব ছড়ানো)
- data কি নির্ভরযোগ্য? (missing value, ভুল entry, duplicate)
- data কি একই format-এ? ("Dhaka" বনাম "dhaka" বনাম "ঢাকা")
- data কি যথেষ্ট? (১০টা row দিয়ে model শেখে না)
- data-টা কি আসলেই সেই প্রশ্নের উত্তর দিতে পারে যা আমরা করছি?
একটা কথা মাথায় গেঁথে নিন — "সবচেয়ে ভালো algorithm + খারাপ data = খারাপ result"।
কিন্তু "সাধারণ algorithm + ভালো data = ভালো result"। তাই data-তে সময় দেওয়া মানে সময় নষ্ট না,
বরং এটাই আসল কাজ।
🎯 ৩. কেন এই mindset-টা এত জরুরি
"AI starts with data" — এই একটা বাক্য যদি বিশ্বাস করেন, আপনার শেখার path পুরো বদলে যাবে। কারণ:
- Interview-তে: senior রা প্রায়ই জিজ্ঞেস করে "একটা messy dataset পেলে প্রথমে কী করবে?" —
যে শুধু algorithm জানে সে আটকে যায়।
- চাকরিতে: junior AI Engineer-দের বেশিরভাগ সময়ই data cleaning, EDA আর feature তৈরিতে যায়।
- Project-এ: portfolio-তে "আমি ৫টা algorithm চালিয়েছি" থেকে "আমি একটা messy real dataset
পরিষ্কার করে একটা প্রশ্নের উত্তর বের করেছি" — দ্বিতীয়টা অনেক শক্তিশালী।
Must Know / Good to Know / Learn Later (এই পুরো Series 03-এর জন্য):
✅ Must Know (চাকরির আগে): NumPy array, Pandas দিয়ে data wrangling, basic SQL, missing value
handling, encoding, scaling, এবং data leakage কী।
👍 Good to Know: SQL window function, correlation/outlier analysis, বিভিন্ন chart type।
🕓 Learn Later (চাকরির পরে): big-data tooling (Spark, big warehouse), advanced data engineering pipeline।
🪜 ৪. তিন Level-এ বুঝি: data কেন ৮০% কাজ
Level 1 — সহজ intuition (রান্নার গল্প)
ভাবুন আপনি একজন দারুণ শেফ (এটাই আপনার "algorithm")। কিন্তু বাজার থেকে পচা মাছ, নষ্ট সবজি আর ভেজাল তেল
এনে দিলাম। আপনি যত বড় শেফ-ই হোন, রান্না ভালো হবে না। ভালো রান্নার আসল রহস্য হলো ভালো, তাজা,
পরিষ্কার উপকরণ — সেটাই আপনার "data"। AI-তেও ঠিক তাই: model যত ভালোই হোক, data খারাপ হলে result খারাপ।
Level 2 — technical ভাবে কী হচ্ছে
একটা ML model আসলে data-র ভেতরের pattern শেখে। যদি data-তে ভুল থাকে (যেমন কিছু salary
ভুল করে ১০ গুণ বেশি লেখা), model সেই ভুল pattern-ও শিখে ফেলে। যদি data অসম্পূর্ণ হয় (missing value),
অনেক algorithm crash করে বা ভুল ধরে নেয়। আর যদি একই জিনিস বিভিন্নভাবে লেখা থাকে ("Python"/"python"/"PY"),
model এগুলোকে আলাদা জিনিস ভাবে — অর্থাৎ pattern ভেঙে যায়।
Level 3 — একজন AI Engineer-এর দৃষ্টিতে
একজন engineer জানে যে একটা project-এ কাজের ধাপগুলো মোটামুটি এরকম: data সংগ্রহ → পরিষ্কার করা →
বোঝা (EDA) → feature তৈরি → তারপর model। এর মধ্যে শেষ ধাপটা (model) সবচেয়ে কম সময় নেয়। তাই engineer
data-র কাজকে "boring" মনে করে না — বরং জানে এটাই যেখানে আসল value তৈরি হয়। একজন junior থেকে engineer
হওয়ার লক্ষণ: সে আগে data দেখে, তারপর model নিয়ে ভাবে।
📊 ৫. Visual: একটা ML project-এর আসল time breakdown
বাস্তব একটা ML project-এ সময় কীভাবে ভাগ হয়, একটা সরল ছবিতে দেখুন:
একটি সাধারণ ML Project-এর সময় বণ্টন
====================================
Data সংগ্রহ + পরিষ্কার করা ████████████████████ ~45%
Data বোঝা / EDA ████████████ ~25%
Feature তৈরি করা ██████ ~15%
Model training + tuning ████ ~10%
Evaluation + report ██ ~5%
"model.fit()" এখানেই ↑ (সবচেয়ে ছোট অংশ)
সংখ্যাগুলো project-ভেদে বদলায়, কিন্তু গল্পটা একই — data নিয়ে কাজই সবচেয়ে বড় অংশ। এই কারণেই এই সিরিজে
আমরা model-এ ঝাঁপ দেওয়ার আগে পুরো একটা series data-তেই খরচ করছি।
🗑️ ৬. Garbage In, Garbage Out — একটা বাস্তব উদাহরণ
"Garbage In, Garbage Out" (GIGO) — computer science-এর সবচেয়ে পুরোনো সত্যগুলোর একটা। মানে: input
খারাপ হলে output খারাপ হবেই, model যত ভালোই হোক। একটা ছোট উদাহরণ দিয়ে দেখাই। ধরুন আমরা job post
থেকে salary predict করতে চাই, কিন্তু data-টা messy:
# raw data — বাস্তবে এমনই এলোমেলো আসে
job_posts = [
{"title": "Python Developer", "salary": "40000", "city": "Dhaka"},
{"title": "python dev", "salary": "40,000", "city": "dhaka"},
{"title": "ML Engineer", "salary": "", "city": "Chattogram"},
{"title": "Data Analyst", "salary": "4000000", "city": "Dhaka"}, # ভুল! বাড়তি শূন্য
{"title": "Data Analyst", "salary": "40000", "city": "Dhaka"}, # duplicate-ঘেঁষা
]
# এখানে ৫টা সমস্যা লুকিয়ে আছে:
# 1. "Python Developer" vs "python dev" -> একই জিনিস, ভিন্ন লেখা
# 2. "40000" vs "40,000" -> একটায় comma, string বনাম number
# 3. salary = "" -> missing value
# 4. salary = "4000000" -> outlier / data entry error
# 5. "Dhaka" vs "dhaka" -> inconsistent casing
এখন যদি এই data সরাসরি একটা model-এ দিয়ে দিই, model শিখবে যে "Data Analyst"-এর গড় salary আকাশছোঁয়া
(কারণ ওই একটা ভুল ৪০ লাখের entry)। এটাই garbage out। Nila-র ভাষায়:
Nila: "মনে রাখবে — model কখনো তোমাকে বলবে না 'তোমার data-তে ভুল আছে'। সে চুপচাপ ভুল
data থেকে ভুল pattern শিখে ফেলবে, আর তোমাকে confident একটা ভুল উত্তর দেবে। তাই data যাচাই করা তোমারই দায়িত্ব।"
🗂️ ৭. Data-র রকমফের: structured, unstructured, semi-structured
একজন AI Engineer হিসেবে আপনাকে চিনতে হবে data-টা কোন ধরনের, কারণ ধরন অনুযায়ী tool আর approach বদলায়:
| ধরন |
মানে |
উদাহরণ |
সাধারণ tool |
| Structured |
সুন্দর table — row ও column |
Job post-এর salary, city, experience |
Pandas, SQL |
| Semi-structured |
কিছুটা গঠন আছে, কিন্তু fixed table নয় |
JSON API response, XML |
Python (json), Pandas |
| Unstructured |
কোনো নির্দিষ্ট গঠন নেই |
Job description-এর পুরো লেখা, ছবি, audio |
NLP, Deep Learning (পরের series) |
Series 03-এ আমরা মূলত structured ও semi-structured data নিয়ে কাজ করব
(Pandas, SQL)। Unstructured data (যেমন পুরো job description text) নিয়ে কাজ শুরু হবে Series 07 (NLP)-এ।
এই পার্থক্যটা জানা জরুরি — অনেকে সব data-কে একইভাবে treat করতে গিয়ে আটকে যায়।
🔍 ৮. একজন AI Engineer-এর চোখে "ভালো data"
"ভালো data" মানে শুধু বেশি data নয়। engineer রা কয়েকটা জিনিস দেখে:
- Relevance: data-টা কি আসলেই আমার প্রশ্নের সাথে সম্পর্কিত? (salary predict করতে চাইলে "office-এর রঙ" অপ্রাসঙ্গিক)
- Completeness: কত % value missing?
- Consistency: একই জিনিস কি সবসময় একইভাবে লেখা?
- Accuracy: value গুলো কি সঠিক, নাকি ভুল entry আছে?
- Enough volume: pattern শেখার মতো যথেষ্ট data আছে কি?
- Representative: data কি পুরো বাস্তবতাকে তুলে ধরে, নাকি একটা অংশ মাত্র? (শুধু Dhaka-র data দিয়ে সারা দেশের prediction করা যায় না)
Representative না হওয়া data একটা লুকানো বিপদ — একে bias বলে। যেমন, শুধু বড় কোম্পানির
job post দিয়ে model বানালে সেটা ছোট কোম্পানির জন্য ভুল prediction দেবে। এই bias-এর ধারণা Series 04
(statistics) আর Series 05 (ML)-এ আরও গভীরভাবে আসবে।
🇧🇩 ৯. বাংলাদেশের context-এ data-র বাস্তবতা
বাংলাদেশে কাজ করতে গেলে data-র কিছু বাস্তবতা মেনে নিতে হয়, যেগুলো foreign tutorial-এ পাবেন না:
- বাংলা-ইংরেজি মেশানো: অনেক data-তে বাংলা আর ইংরেজি একসাথে (যেমন ঠিকানা, নাম) — encoding সমস্যা হয়।
- Inconsistent format: তারিখ কোথাও "01/02/2024", কোথাও "২ জানুয়ারি" — একটা standard-এ আনতে হয়।
- ছড়ানো data: bKash/Nagad-এর মতো fintech-এ transaction data বিশাল ও structured, কিন্তু একটা ছোট
e-commerce startup-এ হয়তো data Excel sheet-এ, হাতে টাইপ করা, ভুলে ভরা।
- Public dataset কম: বাংলাদেশ-নির্দিষ্ট clean public dataset কম, তাই নিজেকেই data সংগ্রহ ও পরিষ্কার করতে জানতে হয় — এটা একটা বড় skill।
এই কারণেই আমাদের flagship project (Bangladesh job market data) নিয়ে কাজ করা এত মূল্যবান — এটা আপনাকে
real, messy, বাংলাদেশি data নিয়ে কাজের অভিজ্ঞতা দেবে, যা interview-তে আলাদা করে চোখে পড়ে।
💼 ১০. Boss Question
Boss: "তুমি বলছ data cleaning-এ ২ সপ্তাহ লাগবে। কিন্তু আমি তো একটা কাজের model চাই,
data ঘষামাজায় এত সময় কেন? এটা business-এ কী value দেবে?"
উত্তর: ঠিক এখানেই সবচেয়ে বড় business value। যদি আমরা নোংরা data দিয়ে model বানাই, সেটা
confident একটা ভুল সিদ্ধান্ত দেবে — যেমন ভুল salary prediction দেখে কোম্পানি ভুল hiring budget
ঠিক করবে। সেই ভুলের খরচ data cleaning-এর খরচের চেয়ে অনেক বেশি। পরিষ্কার data মানে বিশ্বাসযোগ্য সিদ্ধান্ত,
কম খরচ, আর কম "কেন model ভুল করল" ধরনের সংকট। Data-তে সময় দেওয়া মানে ভবিষ্যতের অনেক টাকা ও সময় বাঁচানো।
🔎 ১১. Job Requirement Decoder
Job description-এ আপনি প্রায়ই দেখবেন এই লাইনটা:
"Strong data manipulation and data wrangling skills; experience working with real-world, messy datasets."
| প্রশ্ন | উত্তর |
| এর মানে কী? |
কোম্পানি চায় আপনি নোংরা, অসম্পূর্ণ real data নিয়ে বসে সেটাকে বিশ্লেষণযোগ্য করতে পারেন — শুধু clean tutorial data নয়। |
| কোম্পানি কেন চায়? |
কারণ তাদের real data সবসময় messy। যে data সামলাতে পারে না, সে কোনো model-ই বানাতে পারবে না। |
| কোন সমস্যা সমাধান করে? |
ভুল data থেকে ভুল সিদ্ধান্ত — এই ব্যয়বহুল সমস্যা এড়ায়। |
| Junior-এর কী জানা লাগে? |
data-centric mindset, GIGO বোঝা, data-র ধরন চেনা, আর Pandas/SQL দিয়ে হাতে-কলমে কাজ (পরের episode-গুলো)। |
| এখনই কী master লাগে না? |
বড় data engineering pipeline, Spark, distributed system — এগুলো পরে। |
| GitHub-এ কীভাবে দেখাবেন? |
একটা messy dataset নিয়ে "before → after" cleaning দেখানো একটা notebook, যেখানে প্রতিটা সিদ্ধান্ত ব্যাখ্যা করা। |
| Interview-তে কী জিজ্ঞেস করতে পারে? |
"একটা নতুন messy dataset পেলে প্রথম কী করবে?", "GIGO মানে কী?", "missing value দেখলে কী করো?" |
⚠️ ১২. সাধারণ ভুল ধারণা
ভুল ১: "AI মানেই fancy algorithm; data তো শুধু জোগাড় করলেই হলো।" →
ঠিক: data জোগাড়, পরিষ্কার আর বোঝাই মূল কাজ; algorithm সবচেয়ে ছোট অংশ।
ভুল ২: "বেশি data মানেই ভালো data।" →
ঠিক: নোংরা বা অপ্রাসঙ্গিক বেশি data ক্ষতিকর; relevance ও quality আগে, তারপর volume।
ভুল ৩: "Model ভুল করলে algorithm বদলাব।" →
ঠিক: অনেক সময় আসল সমস্যা data-তে; আগে data দেখুন, তারপর algorithm।
ভুল ৪: "Data cleaning সময়ের অপচয়।" →
ঠিক: এটাই সবচেয়ে বেশি value তৈরির জায়গা; skip করলে পুরো project অবিশ্বাস্য হয়ে যায়।
ভুল ৫: "Data science আর data engineering এক জিনিস।" →
ঠিক: data engineer data-র pipeline/infrastructure বানায়; data scientist/AI engineer সেই data বিশ্লেষণ করে model বানায়। (মনে করুন Series 01-এর role আলোচনা।)
🎤 ১৩. Interview Prep
প্রশ্ন ১: একটা ML project-এ সবচেয়ে বেশি সময় কোথায় যায়?
উত্তর: data সংগ্রহ, cleaning ও EDA-তে (প্রায় ৭০-৮০%)। Model training তুলনামূলকভাবে ছোট অংশ।
প্রশ্ন ২: "Garbage In, Garbage Out" বলতে কী বোঝায়?
উত্তর: input data খারাপ হলে model যত ভালোই হোক, output খারাপ হবে। model নীরবে ভুল data থেকে ভুল pattern শেখে।
প্রশ্ন ৩: একটা নতুন dataset হাতে পেলে প্রথম তিনটা কাজ কী করবে?
উত্তর: (১) shape/size ও column দেখা, (২) missing value ও data type পরীক্ষা, (৩) কয়েকটা row চোখে দেখে data-র consistency যাচাই। তারপর basic EDA।
প্রশ্ন ৪: structured আর unstructured data-র পার্থক্য?
উত্তর: structured = সুন্দর row/column table (Pandas/SQL); unstructured = text, image, audio-র মতো fixed গঠনহীন data (NLP/Deep Learning লাগে)।
✍️ ১৪. হাতে-কলমে (Mini Exercise)
🧪 হাতে-কলমে: নিচের ৫টা কাজের জন্য বলুন — এটা কোন ধরনের data (structured / semi-structured /
unstructured), আর এখানে সম্ভাব্য একটা data-সমস্যা কী হতে পারে?
১. একটা Excel sheet-এ ১০০০ কর্মীর নাম, বেতন, বিভাগ
২. একটা weather API থেকে আসা JSON response
৩. Facebook-এ গ্রাহকদের কমেন্টের লেখা
৪. CCTV ক্যামেরার ভিডিও footage
৫. একটা online form থেকে জমা হওয়া ফোন নম্বর (মানুষ নিজে টাইপ করেছে)
(ইঙ্গিত: ১→structured, duplicate/typo; ২→semi-structured, missing field; ৩→unstructured, বানান/emoji;
৪→unstructured, বিশাল size; ৫→structured কিন্তু inconsistent format যেমন "01712...", "+8801712...", "1712...")
🚀 ১৫. Project Connection: flagship-এর V2
মনে আছে আমাদের flagship project "Bangladesh Tech Career Assistant"? Series 02-এ এটা ছিল
একটা সাধারণ Python CLI (V1)। এই Series 03-এ আমরা এটাকে V2 — একটা Data Analyzer-এ রূপান্তর করব।
এই episode-এর mindset-টাই V2-এর ভিত্তি। আমরা বাংলাদেশের job market data নিয়ে কাজ করব — যেটা ঠিক আজকের
উদাহরণের মতোই messy (inconsistent skill নাম, missing salary, duplicate post)। পরের episode-গুলোতে ধাপে
ধাপে শিখব: NumPy (E02) → Pandas দিয়ে load ও clean (E03-E04) → visualize (E05) → SQL (E06-E07) →
preprocessing (E08), আর সব একসাথে জুড়ে E09-এ সম্পূর্ণ P1: Job Market Data Analyzer বানাব।
📌 ১৬. সারসংক্ষেপ
এই Episode-এ আমরা শিখলাম:
✓ একটা ML project-এ সময়ের ~৮০% যায় data সংগ্রহ, cleaning ও বোঝায় — model training সবচেয়ে ছোট অংশ
✓ Garbage In, Garbage Out — খারাপ data দিলে সেরা model-ও খারাপ result দেবে
✓ data-র তিন ধরন: structured, semi-structured, unstructured — প্রতিটার জন্য আলাদা tool/approach
✓ "ভালো data" মানে শুধু বেশি না — relevance, completeness, consistency, accuracy ও representative হওয়া
✓ বাংলাদেশের real data প্রায়ই messy — messy data সামলানোই একটা মূল্যবান, চাহিদাসম্পন্ন skill
✓ একজন engineer আগে data দেখে, তারপর model নিয়ে ভাবে — এটাই data-centric mindset
➡️ ১৭. পরবর্তী পর্বে কী শিখব
পরবর্তী Episode (S03E02): "NumPy: array, shape, vectorization — ML-এর নিচে যে গণিত চলে।"
Data-র গুরুত্ব তো বুঝলাম, এবার হাতে-কলমে শুরু। কিন্তু Pandas-এ যাওয়ার আগে বুঝতে হবে তার নিচে যে জিনিসটা
চলে — NumPy। কেন Python-এর সাধারণ loop দিয়ে বড় data নিয়ে কাজ করা যায় না, আর কীভাবে
array-তে চিন্তা করলে code দ্রুত ও সহজ হয় — পরের পর্বে সেটাই শিখব।