পাঠ ২৭ · ৩০-এর মধ্যে · মডিউল ৩
Home / AI Courses / AI Foundations / ডেটাসেট

ডেটাসেট কী, কোথা থেকে আসে

Datasets — what, where, how to split
৮ মিনিট পড়া মাঝারি · Intermediate সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • ডেটাসেট কী — ৫ ধরনের গঠন (tabular, image, text, audio, time series)
  • ভালো ডেটার ৫টি বৈশিষ্ট্য
  • ডেটা কোথা থেকে পাবেন — public, scrape, label, synthetic
  • Train/Validation/Test বিভাজন — কেন ও কীভাবে
  • Data Leakage — প্রোডাকশন AI-র সবচেয়ে বড় বাগ

১ · ডেটাসেট কী?

সংজ্ঞা

ডেটাসেট হলো একটি AI মডেল যা থেকে শেখে — উদাহরণের সংগ্রহ। প্রতিটি উদাহরণে থাকে — input ($x_i$) ও কখনো output ($y_i$)। গাণিতিকভাবে: $\mathcal{D} = \{(x_i, y_i)\}_{i=1}^{N}$।

ছোট উদাহরণ

একটি বাড়ির দাম-পূর্বাভাস ডেটাসেট দেখতে এমন:

আকার (sq.ft) | অবস্থান | কক্ষ | বয়স | দাম (লক্ষ ৳)
   1200      |   ঢাকা   |   3  |  ৫  |    ৭৫
   1800      | চট্টগ্রাম |   4  | ১০  |    ৯০
   ৯০০       |   খুলনা  |   2  |  ২  |    ৪৫
    ...      |   ...   |  ... | ... |    ...
    

প্রতিটি সারি = একটি উদাহরণ। প্রথম ৪ কলাম = $x_i$ (input/features)। শেষ কলাম = $y_i$ (target/label)।

২ · ডেটার ৫টি প্রধান গঠন

  • TabularTabular Dataসারি-কলাম গঠনের ডেটা — Excel/CSV-র মতো। প্রতিটি সারি একটি উদাহরণ, প্রতিটি কলাম একটি feature. ক্লাসিক ML (XGBoost, Random Forest)-এর জন্য আদর্শ।: Excel-এর মতো টেবিল। সারি = উদাহরণ, কলাম = featureFeatureমডেলের input হিসেবে ব্যবহৃত একটি measurable property/variable — যেমন বয়স, আয়, বাড়ির আকার। ভাল feature বাছাই = ভাল মডেলের ভিত্তি।. সাধারণ ML-এর জন্য (XGBoost, Random Forest)।
  • Image: ছবির ফাইল + লেবেল। CNN, Vision Transformer-এর জন্য।
  • Text: বাক্য, document, কথোপকথন। NLP, LLM-র জন্য।
  • Audio: sound waveform + transcript/label. কণ্ঠ চেনা, music classification.
  • Time seriesTime Seriesসময়ের ক্রম অনুসারে সাজানো ডেটা — যেমন শেয়ারের দাম, তাপমাত্রা, IoT সেন্সর-রিডিং। আগের value পরের-কে predict করতে সাহায্য করে।: সময়ের ক্রমে সাজানো ডেটা। শেয়ারের দাম, IoT সেন্সর, weather.

৩ · ভালো ডেটার ৫টি বৈশিষ্ট্য

১. পরিমাণ (Quantity)

Deep Learning-এ — হাজার থেকে কোটি উদাহরণ। সাধারণ ML-এ — শ থেকে হাজার যথেষ্ট হতে পারে। যত জটিল প্যাটার্ন, তত বেশি ডেটা। GPT-3 প্রশিক্ষিত হয়েছে ৫০০ বিলিয়ন token-এ।

২. গুণগত মান (Quality)

  • ভুল লেবেল কম
  • সঠিক value (typo, missing, outlier — কম)
  • ধারাবাহিক format

৩. বৈচিত্র্য (Diversity)

আপনার ডেটায় সব ধরনের পরিস্থিতি থাকা চাই। শুধু সাদা পুরুষের ছবি দিয়ে train করলে — সিস্টেম কালো মহিলাদের চিনবে না। বাংলাদেশী AI বানাতে হলে — বাংলাদেশী ডেটা চাই।

৪. সাম্প্রতিকতা (Freshness)

২০১৯-এর গ্রাহক-আচরণ এখন অপ্রাসঙ্গিক হতে পারে (covid বদলে দিয়েছে অভ্যাস)। AI মডেলের ডেটা পুরোনো হয়ে গেলে — accuracy কমে। এ-কে বলে data driftData driftসময়ের সাথে input distribution-এর পরিবর্তন। যেমন ২০১৯-এর e-commerce আচরণ বনাম ২০২৫-এর। মডেল train-এর সময়কার বিশ্ব আর deploy-এর সময়কার বিশ্ব আলাদা — accuracy কমে। সমাধান: continuous monitoring, periodic retraining.।

৫. লেবেলের নির্ভুলতা

Supervised learningSupervised Learningপ্রতিটি input-এর সাথে সঠিক label দিয়ে মডেল train করা — যেমন ছবি + "বিড়াল" tag. AI-এর সবচেয়ে বহুল ব্যবহৃত paradigm.-এ লেবেল গুরুত্বপূর্ণ। মানুষ-করা লেবেলের প্রায়ই ৫-১০% ভুল থাকে। লেবেলিং-এর গুণমান = মডেলের upper bound. ImageNet-এর ৬% labels ভুল — Northcutt et al. (২০২১) দেখিয়েছেন।

"Garbage In, Garbage Out" — একটি AI প্রবাদ। যত advanced মডেলই হোক — খারাপ ডেটায় খারাপ ফল।

৪ · ডেটা কোথা থেকে পাবেন?

ক) Public Dataset

  • Kaggle: হাজার হাজার ফ্রি ডেটাসেট। শুরুর জন্য সেরা।
  • Hugging Face Datasets: NLP-প্রধান, বাংলা ডেটাসেটও আছে।
  • UCI ML Repository: ক্লাসিক ML ডেটাসেট।
  • Google Dataset Search: বিভিন্ন উৎসে খোঁজা।
  • সরকারি Open Data: বাংলাদেশের data.gov.bd-এ আদমশুমারি, কৃষি, স্বাস্থ্য।
  • BNLP: বাংলা-নির্দিষ্ট datasets সংগ্রহ।

খ) ক্লায়েন্ট/কোম্পানি ডেটা

বাস্তব AI প্রকল্পে — বেশিরভাগ ডেটা আসে কোম্পানির ভেতর থেকে। CRM database, web logs, sales records, sensor data. গুরুত্বপূর্ণ: প্রাইভেসি ও অনুমতি।

গ) Web Scraping

ওয়েবসাইট থেকে ডেটা সংগ্রহ। Python-এর requests, BeautifulSoup, scrapy। সতর্কতা: robots.txt মেনে চলুন, copyright লঙ্ঘন করবেন না, rate-limit মানুন।

ঘ) মানুষ-করা লেবেলিং

সরঞ্জাম: Label Studio, Prodigy, Amazon Mechanical Turk. বাংলাদেশে ফ্রিল্যান্স লেবেলার নিয়োগ আজ একটি ছোট শিল্প।

ঙ) Synthetic DataSynthetic Dataসিমুলেশন/GAN/Diffusion দিয়ে কম্পিউটার-জেনারেটেড কৃত্রিম ডেটা। বাস্তব ডেটা দুর্লভ/গোপনীয় হলে — পরিপূরক হিসেবে ব্যবহার।

কম্পিউটার-জেনারেটেড ডেটা। যেমন GAN/Diffusion দিয়ে কৃত্রিম ছবি, বা simulation দিয়ে গাড়ির ডেটা (Tesla)। বাস্তব ডেটা পেতে অসুবিধা হলে কাজ আসে।

৫ · Train / Validation / Test বিভাজন

আপনার সব ডেটা মডেলকে দেখাবেন না। সাধারণত ৩ ভাগে ভাগ করা হয় —

৩ ভাগের ভূমিকা

Train (~৭০-৮০%): মডেল এই ডেটায় শেখে — gradient flow এই থেকে।
Validation (~১০-১৫%): Hyperparameter বাছাই — model A vs B compare.
Test (~১০-১৫%): চূড়ান্ত মূল্যায়ন। শুধু একবার দেখা — পবিত্র।

Train / Validation / Test — পবিত্র বিভাজন "Generalization, not memorization" পুরো ডেটাসেট — N সারি (e.g. 100,000 examples) Train · ৭০% model gradient updates Val · ১৫% hyperparam Test · ১৫% final eval কোন ভাগে কী হয়? Train - gradient descent - weight updates - model "শেখে" Validation - learning rate? - model A vs B? - early stopping Test (পবিত্র) - only final number - never tune on this - "honest report" ⚠ Data Leakage — সবচেয়ে বড় বাগ Train ও Test দু'টোতেই ৯৯% accuracy! কিন্তু production-এ ৬০%। test data has secretly leaked into training একই user দু'জায়গায় user A in train AND test → group split দরকার Future → Past 2024 data in train, 2023 in test (wrong!) Target leak feature X = future of y "churned_last_month" Normalize before split use train mean only, not full data mean
Train শেখায়, Validation tune করে, Test শুধু একবারের জন্য — final honest number. Leakage মানেই trust ভঙ্গ।

কেন এই বিভাজন?

  • একই ডেটায় train ও test করলে — মডেল মুখস্থ করে ফেলে। আমরা চাই সাধারণীকরণ (generalization)।
  • Validation দিয়ে বিভিন্ন মডেল/hyperparameter তুলনা — কারণ test সেট-এ "তুলনা" করলে — সেটাও মুখস্থ হয়ে যায়।
  • Test set একদম পবিত্র — শুধু চূড়ান্ত মুহূর্তে।

সঠিকভাবে বিভাজন

  • Random shuffle: ডেটার ক্রম থেকে বায়াস না আসুক।
  • Stratified splitStratified Split / Stratified Samplingtrain/val/test প্রতিটি ভাগে ক্লাসের অনুপাত মূল ডেটাসেটের মতোই রাখা। imbalanced ডেটায় (যেমন ৫% রোগী) অপরিহার্য।: imbalancedImbalanced Datasetক্লাসগুলোর সংখ্যায় বড় ফারাক — যেমন ৯৯% সুস্থ, ১% রোগী। সাধারণ accuracy এখানে বিভ্রান্তিকর; class-weighting বা oversampling লাগে। classes-এ — প্রতিটি ভাগে ক্লাসের অনুপাত একই রাখুন।
  • Time-based split: Time series-এ — পুরোনো train, নতুন test. কারণ ভবিষ্যৎ পূর্বাভাস করতে চাই।
  • User/group split: একই ব্যবহারকারীর ডেটা train ও test দু'জায়গায় না হোক।

৬ · Cross-Validation — ছোট ডেটার জন্য

৫০০ row-এর মতো ছোট ডেটায় — শুধু ১৫% test = ৭৫ row. ভরসাযোগ্য মূল্যায়ন না।

K-Fold Cross-ValidationCross-Validationডেটা $K$ ভাগে ভাগ করে $K$ বার train-test rotate — সব ডেটাই একবার test হয়, গড় নেওয়া হয়। ছোট ডেটাসেটে ভরসাযোগ্য মূল্যায়নের জন্য।: ডেটা $K$ ভাগে ভাগ। প্রতিবার ১ ভাগ test, $K-1$ ভাগ train. $K$ বার চালান। গড় নিন। সাধারণত $K = 5$ বা $K = 10$।

সুবিধা — সব ডেটা একবার test হয়। অসুবিধা — $K$ গুণ বেশি সময়।

৭ · Data Leakage — সবচেয়ে বড় বাগ

Data leakageData LeakageTest set-এর তথ্য কোনোভাবে training-এ ঢুকে পড়া — পরীক্ষায় ৯৯%, production-এ ৬০% accuracy. ML-এর সবচেয়ে কুখ্যাত bug.: Test set-এর তথ্য কোনোভাবে train-এ ঢুকে যাওয়া। ফল — পরীক্ষায় চমৎকার, বাস্তবে ভয়াবহ।

সাধারণ leakage

  • একই ব্যবহারকারীর ডেটা train ও test দু'জায়গায়।
  • Future data train-এ (time series-এ)।
  • Target-related feature যা আসলে predict করার চেষ্টা করছেন তা পরোক্ষে দেয়।
  • Train-set-এর গড় দিয়ে test-set normalize.
Data leakage বের করতে — train ও test-এ accuracy ৯৯%! সবসময় সন্দেহ করুন। বাস্তব AI-প্রকৌশলীর সবচেয়ে বড় দক্ষতা — leakage শনাক্তকরণ।

৮ · বাংলাদেশী ডেটার সুনির্দিষ্ট চ্যালেঞ্জ

  • বাংলা NLP: ইংরেজির তুলনায় ১০x কম ডেটা।
  • মেডিকেল: পশ্চিমা ডেটায় train করা মডেল বাংলাদেশে কাজ করে কম।
  • মুখ-চেনা: South Asian মুখ underrepresented.
  • Privacy আইন: ২০২৩-এর Data Protection Act মেনে চলতে হবে।
  • সংস্কৃতি: বাংলাদেশী context-এ লেবেল করতে স্থানীয় annotators দরকার।

এই চ্যালেঞ্জগুলোই — বাংলাদেশী AI-প্রকৌশলীর জন্য সুযোগ। স্থানীয় ডেটা ও স্থানীয় AI বানাতে যিনি দক্ষ — তিনিই অগ্রগামী।

মনে রাখবেন: AI প্রকল্পের ৬০-৮০% সময়ই খরচ হয় ডেটা সংগ্রহ ও পরিষ্কারে। মডেল-প্রশিক্ষণ মাত্র ছোট অংশ।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ একটি hospital-এর জন্য ক্যান্সার-detection AI বানাচ্ছেন। ১,০০০ পেশেন্টের ডেটা — প্রতি পেশেন্টের ১০টি scan. কীভাবে split করবেন? কোথায় leakage হতে পারে?

এই ধরনের সমস্যায় classic mistake — random row-split. তাতে massive leakage হয় কারণ একই পেশেন্টের scan train ও test দু'জায়গায় চলে যায়।

(১) ভুল পদ্ধতি (Random Split):

  • ১০,০০০ scan random shuffle, ৭০/১৫/১৫।
  • পেশেন্ট A-র ৭টি scan train-এ, ৩টি test-এ।
  • মডেল train-এ A-র anatomy "শেখে"।
  • Test-এ A-র scan দেখে — anatomy চিনে ফেলে।
  • Result: ৯৮% accuracy in test, ৬০% in production!

(২) সঠিক পদ্ধতি (Patient-Level Split):

  • ৭০০ পেশেন্ট train-এ, ১৫০ val, ১৫০ test.
  • প্রতিটি পেশেন্ট শুধু একটি ভাগে।
  • Test-এ মডেল কখনো না-দেখা পেশেন্টের scan দেখে।
  • সত্যিকারের generalization measure.

(৩) আরও potential leakage:

  • Hospital leak: একই hospital-এর সব scan একই grouping নিতে হবে — কারণ machine signature, lighting আলাদা।
  • Time leak: পেশেন্ট A-র ২০২০-র scan train-এ, ২০২৩-এর test-এ — disease progression info leak.
  • Annotator leak: একই radiologist-এর label-এ train ও test — তার bias model শিখে।

(৪) Class imbalance:

  • মাত্র ২০% পেশেন্টের ক্যান্সার।
  • Stratified split — প্রতি ভাগে ২০% positive অনুপাত রাখুন।
  • Train-এ class weighting বা SMOTE-এর মতো oversampling.

(৫) Multi-site evaluation:

  • Best practice: একটি hospital-এ train, অন্য hospital-এ test.
  • "Out-of-distribution" performance বের হয়।
  • Real deployment-এ এই robustness critical.

(৬) Validation strategy:

  • Patient-level k-fold: $K$ বার patient-set rotate.
  • Grouped k-fold (sklearn-এ GroupKFold)।
  • Stratified group k-fold — best of both.

(৭) Practical pipeline:

from sklearn.model_selection import GroupShuffleSplit

splitter = GroupShuffleSplit(test_size=0.15, n_splits=1, random_state=42)
train_idx, test_idx = next(splitter.split(X, y, groups=patient_ids))
# এখানে patient_ids: প্রতিটি scan-এর পেশেন্ট ID

(৮) Real-world failure case:

  • ২০২০-র Nature paper retracted — covid-19 detection AI শুধু hospital signature মুখস্থ করেছিল।
  • Sick hospital-এর scan = positive, healthy hospital-এর = negative.
  • Random split-এ leakage detect হয়নি।

(৯) Clinical validation:

  • Hold-out test set শুধু একবার দেখুন।
  • Prospective study — নতুন পেশেন্ট-এর উপর deploy করে check.
  • FDA approval-এর জন্য external validation required.

(১০) Bangladesh medical context:

  • সরকারি বনাম বেসরকারি hospital — ডেটা distribution আলাদা।
  • Equipment vendor diversity — model robustness essential.
  • Privacy: পেশেন্ট ID anonymize, কিন্তু grouping জানতে হবে।

মূল উপলব্ধি: Medical AI-তে patient-level grouping non-negotiable. Random split = useless model. Senior data scientist প্রথমে জিজ্ঞেস করেন — "data-এর hidden hierarchy কী?" তারপর split.

প্র ০২ আপনার Bangla NLP project-এ মাত্র ৫,০০০ labeled sentence আছে। GPT-4-এর zero-shot vs custom train, vs synthetic data augmentation — কোনটি কখন? কীভাবে decide?

Low-resource language scenario — Bangla NLP-এর মূল চ্যালেঞ্জ। Strategy choice ROI-র উপর depend. প্রতিটির trade-off আলাদা।

(১) GPT-4 / Claude / Gemini Zero-shot:

  • কোনো training না। Just prompt + label space.
  • Test set-এ ৭০-৮৫% accuracy expected (task-নির্ভর)।
  • কখন ভাল: small data, common task (sentiment, classification)।
  • খরচ: API cost per inference.
  • Latency: ১-৩ second/call.
  • Privacy concern: data API-তে যাচ্ছে।

(২) GPT-4 Few-shot:

  • Prompt-এ ৫-২০টি labeled example.
  • Zero-shot-এর চেয়ে ৫-১০% better.
  • Cost বেশি (long prompt)।
  • ৫,০০০ example-এর ১% ব্যবহার — বাকি wasted!

(৩) Open-source LLM Fine-tuning:

  • Llama-3, Mistral — Bangla-aware models.
  • ৫,০০০ labels দিয়ে LoRA fine-tune সম্ভব।
  • Once trained — fast, cheap inference.
  • Privacy-friendly (on-prem deployment)।
  • Effort: GPU + ML expertise.

(৪) Classical ML (XGBoost on TF-IDF):

  • Surprising baseline — ৫০০০ data-এ competitive.
  • Fast, cheap, interpretable.
  • Bangla tokenization — important.
  • Bangla-BERT embeddings ব্যবহার আরও improve.

(৫) Synthetic Data Augmentation:

  • GPT-4 দিয়ে existing examples-এর variation generate.
  • Back-translation: Bangla → English → Bangla.
  • Paraphrase, word substitution.
  • ৫,০০০ → ২০,০০০ labels.
  • Risk: synthetic data noise বাড়ায়।

(৬) Active Learning:

  • Model uncertainty-এর উপর label priority.
  • সবচেয়ে confusing example human-এ label.
  • ৫,০০০-এর efficient use.
  • Iterative — model উন্নত হলে নতুন uncertain.

(৭) Decision Framework:

  • Quick prototype, low budget: GPT-4 zero/few-shot.
  • Production, high volume: Fine-tune open LLM.
  • Privacy-sensitive: On-prem fine-tune.
  • Interpretability needed: Classical ML.
  • More data needed: Synthetic + Active learning.

(৮) Evaluation Plan:

  • ৫,০০০-এর ৫০০ test set hold out.
  • সব approach-এ একই test.
  • Cost per inference + accuracy + latency table.
  • Production trade-off explicit.

(৯) Hybrid approach (often best):

  • GPT-4 দিয়ে weak labels generate (large unlabeled corpus)।
  • Weak labels + ৫,০০০ gold labels = teacher-student.
  • Smaller student model production-এ।
  • Cost-effective + privacy-preserving.

(১০) Bangla-specific considerations:

  • Tokenization: Bangla-aware (BPE)।
  • Code-mixing: Bangla + English very common.
  • Dialect: Dhaka, Chittagong, Sylheti.
  • Script: Bangla, Romanized Bangla — উভয়ের জন্য plan.

(১১) Common pitfalls:

  • "GPT-4 will solve it" — domain-specific terms-এ ফেল।
  • "Just train more" — labels-এর quality > quantity.
  • "Synthetic data is free" — quality control critical.

মূল উপলব্ধি: Low-resource setup-এ একটি technique-এ committed হবেন না। GPT-4 baseline → fine-tune comparison → synthetic augmentation — iterative. সবসময় cost vs accuracy trade-off measure.

প্র ০৩ আপনি একটি sentiment-detection মডেল train করেছেন — train accuracy ৯৮%, test accuracy ৯৬%। ভাল? নাকি leakage সন্দেহ? কীভাবে verify করবেন?

এই scenario প্রায় সব ML engineer-এর career-এ একবার আসে। ৯৬% সবসময় ভাল sign না — sometimes too good to be true.

(১) প্রথম reaction: সন্দেহ!

  • Sentiment-এ ৯৬% — published paper-এর state-of-art benchmark.
  • সাধারণ business data — ৮০-৮৫% সাধারণ accuracy.
  • ৯৬% হঠাৎ পেলে — প্রথমে leakage সন্দেহ।

(২) Sanity Check #1 — Random Baseline:

  • Class distribution দেখুন।
  • ৯০% positive, ১০% negative? "always positive" predictor = ৯০%।
  • Confusion matrix বের করুন।
  • Per-class accuracy — minority class কেমন?

(৩) Sanity Check #2 — Feature inspection:

  • Most important feature কী?
  • সরাসরি label-এর সাথে correlated?
  • "contains_word_excellent" feature predict positive — okay.
  • "customer_id" feature predict — leakage!

(৪) Sanity Check #3 — Train-Test Distribution:

  • Train এবং Test feature distribution similar?
  • KS-test বা PSI metric.
  • Test যদি train-এর subset — leakage.

(৫) Sanity Check #4 — Duplicates:

  • Exact duplicates train ও test-এ?
  • Near-duplicates (cosine sim > 0.95)?
  • Dedup pipeline চালান।

(৬) Sanity Check #5 — Time leakage:

  • Test row-এর timestamp train-এর সব row-এর পরে?
  • Random split-এ এটা হয় না — temporal split চাই।

(৭) Sanity Check #6 — Group leakage:

  • একই user/product/topic দু'জায়গায়?
  • Group-aware split পুনরায় করুন।
  • Accuracy কি কমলো? কতটা?

(৮) Sanity Check #7 — Permutation test:

  • Label random shuffle করুন।
  • মডেল train, test accuracy দেখুন।
  • ৫০%-এর কাছাকাছি? — ভাল।
  • ৭০%? — leakage!

(৯) Sanity Check #8 — External validation:

  • সম্পূর্ণ ভিন্ন source থেকে data.
  • Production user-এর live feedback.
  • Independent dataset.
  • Performance drop = generalization issue.

(১০) Common sentiment leakage:

  • "5 stars" mention text-এ — direct label leak.
  • Reviewer pattern — same person same sentiment.
  • Product-specific sentiment — same product overrepresented.
  • Time-of-day correlation.

(১১) Acceptable scenarios:

  • Movie review-এ ৯২-৯৫% achievable (IMDB benchmark)।
  • Customer support ticket — ৯০% common.
  • Tweet sentiment — ৭৫-৮৫%।
  • Domain difficulty matters.

(১২) Documentation:

  • সব leakage check document করুন।
  • Reviewer/peer-এর check necessary.
  • Production deploy-এর আগে stake-holder এ result honest present.

(১৩) Real example — Kaggle:

  • Many competitions-এ winning solution leakage exploit.
  • Subsequent disqualification.
  • "Trust nothing, verify everything"।

মূল উপলব্ধি: ৯৬% accuracy = সংশয়। Senior data scientist-এর instinct — too good to be true সাধারণত is. Leakage hunting এক art. প্রতিটি high accuracy claim-এ ১০টি sanity check করুন। যদি বেঁচে থাকে — তখনই trust.

প্র ০৪ "Synthetic Data" — GAN, diffusion, simulation দিয়ে কৃত্রিম data তৈরি। কোথায় কাজ করে, কোথায় না? Self-driving Tesla simulation থেকে শিখি কী?

Synthetic data — AI development-এর next frontier. Real data scarce/expensive/private হলে এই road. কিন্তু সব কাজে না — limitation আছে।

(১) Synthetic Data কী?

  • Computer-generated training data.
  • 3 ধরন: Simulated (physics), Generative (GAN/Diffusion), Augmented (real + transform)।
  • Goal: real data শেষ পর্যন্ত replace.

(২) Tesla Autopilot — সবচেয়ে বড় উদাহরণ:

  • Real driving footage — billions of miles.
  • Plus simulation: rare scenarios — pedestrian-এর hand sign, snow + heavy rain.
  • Edge cases — real world-এ ১ লক্ষে ১বার, simulation-এ controllable.
  • Andrej Karpathy: "Edge cases-ই বেশি important যেগুলো simulation-এ create"।

(৩) সফল ক্ষেত্র:

  • Robotics: Sim2Real — simulation-এ million hours, real-এ deploy.
  • Self-driving: Waymo, Tesla, Cruise — সবাই simulation-heavy.
  • Game AI: AlphaGo self-play — কোনো human game ছাড়াই superhuman.
  • Privacy-preserving: Medical imaging — synthetic patient data.
  • Rare events: Fraud, defects — augment scarce positives.

(৪) যেখানে fail করে:

  • Sim2Real gap: Simulation realistic না হলে — model real-এ ফেল।
  • Distribution shift: Synthetic-এ train, real-এ test — distribution mismatch.
  • Bias amplification: Generator যা শিখেছে সেটাই reproduce করে — bias বাড়ে।
  • Human nuance: Sentiment, sarcasm, humor — simulator capture কঠিন।
  • Long-tail: Generative model rare patterns reproduce-এ struggle.

(৫) Generative synthetic — pros & cons:

  • Pro: scalable, customizable, privacy-friendly.
  • Con: mode collapse, hallucination, distribution drift.
  • Best practice: real + synthetic mix.

(৬) Domain Randomization:

  • OpenAI Robot Hand — ১০,০০০ random simulations.
  • Texture, lighting, friction — সব vary.
  • Model "all situations"-এ robust.
  • Real robot-এ zero-shot deploy.

(৭) NLP-তে synthetic data:

  • GPT-4 দিয়ে label generate (data distillation)।
  • Self-instruct: model নিজেই training data generate.
  • Concern: model own bias amplify.
  • Anthropic's Constitutional AI — synthetic preference data.

(৮) Quality control:

  • Synthetic data validate — real samples-এর সাথে compare.
  • FID score (image): real vs synthetic distribution distance.
  • Downstream task-এ improvement check.
  • "Synthetic alone" never enough — real anchor needed.

(৯) Privacy use case:

  • Healthcare: synthetic patient records.
  • Finance: synthetic transactions.
  • Differential privacy guarantees.
  • "Data sharing without sharing"।

(১০) Bangladesh applications:

  • Bangla speech: limited recordings → synthetic voice + augmentation.
  • Document OCR: synthetic Bangla documents (font/layout vary)।
  • Agricultural disease: rare disease images via augmentation.
  • Medical: privacy-aware synthetic patient data.

(১১) Recent advances:

  • Stable Diffusion + DreamBooth: personalized synthetic images.
  • NeRF: 3D scene synthesis থেকে novel views.
  • LLM-generated tabular: realistic patient records.
  • Reinforcement learning from synthetic environments.

(১২) Future trends:

  • Foundation models trained mostly on synthetic data?
  • Recursive: model generates own training data — self-improvement.
  • Risk: model collapse — Shumailov et al. (২০২৩) দেখিয়েছেন।
  • Anchor-real-data critical.

মূল উপলব্ধি: Synthetic data — powerful supplement, never full replacement (yet)। Tesla model: real data ground truth + simulation edge cases + continuous validation. Hype-এ পড়বেন না — measurement-এ trust.

অনুশীলন

  1. খুঁজুন: Kaggle-এ "Bangladesh" search করুন। ৩টি ডেটাসেটের নাম, আকার ও সম্ভাব্য ব্যবহার লিখুন।

    উদাহরণ ৩টি বাংলাদেশী ডেটাসেট:

    • Bangladesh Floods Dataset: ভৌগোলিক বন্যার ডেটা — disaster prediction, climate modeling.
    • Bangla Handwritten Digits (BHaND): ৭০,০০০+ images — Bangla OCR, education tools.
    • Daraz Reviews Dataset: e-commerce reviews — sentiment analysis, product recommendation.

    প্রতিটির license check করুন (CC-BY, CC0 etc) এবং সম্ভাব্য bias সচেতনভাবে document করুন।

  2. চিন্তা করুন: বাংলাদেশের একটি AI স্টার্টআপ চাইছে — গ্রামীণ এলাকায় চিকিৎসা সহায়ক বানাতে। কী ধরনের ডেটা কোথায় পাবে? কী চ্যালেঞ্জ?

    Data sources:

    • সরকারি health database (DGHS) — anonymized records.
    • NGO-পরিচালিত clinic-এর partnership.
    • Local hospital collaboration (Dhaka Medical, BSMMU)।
    • Synthetic data — rare disease augmentation.
    • Symptom-checker app থেকে user-generated data.

    Challenges:

    • Rural connectivity — offline-first design.
    • Local language: Bangla + dialects.
    • Limited labeled medical data.
    • Privacy: ২০২৩ Data Protection Act compliance.
    • Bias: urban-skewed training data.
    • Trust: AI-suggestion + human doctor in loop.
    • Liability: ভুল diagnosis-এর legal risk.
  3. বিশ্লেষণ করুন: "একটি AI স্প্যাম ফিল্টার ৯৯% accuracy পাচ্ছে train-এ এবং test-এ।" — এটা সন্দেহজনক কেন? কী leakage হতে পারে?

    সন্দেহের কারণ: Spam filter সাধারণত ৯৫-৯৭% accuracy — ৯৯% in both = টায় সব। Possible leakages:

    • Duplicate emails: একই spam template train ও test দু'টোতে।
    • User leak: একই user-এর mail train ও test-এ।
    • Time leak: Random split — ভবিষ্যতের spam train-এ, পুরোনো test-এ।
    • Sender leak: Same sender domain দু'জায়গায়।
    • Header leak: "spam_score" header from spam-tool-as-feature — direct label leak.
    • Class imbalance: ৯৯% non-spam — sb negative predictor-ও ৯৯% accuracy দেবে।

    Verification steps:

    • Confusion matrix দেখুন — recall on spam class কেমন?
    • Feature importance — কোন feature dominate?
    • Group-level (sender/user) split চেষ্টা করুন।
    • Time-based split: পুরোনো train, নতুন test.
    • Production-এ deploy করে real performance measure.

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

প্রথমেই ডেটা দেখুন। Model বানানোর আগে — ১০ ঘণ্টা ডেটা explore করুন। Pandas-এ describe(), value_counts(), isnull() — মৌলিক sanity check. Senior data scientist-এর প্রথম কাজ — data understanding.
পূর্ববর্তী পাঠ
পাঠ ২৬ · বাস্তব সমস্যা থেকে AI