সরাসরি পর্বে যান
পর্ব ০৪ · ৭৯-এর মধ্যে · মডিউল ১

AI, ML, Deep Learning আর Generative AI — কে কার ভেতরে

AI, Machine Learning, Deep Learning and Generative AI — How They Nest

Taught in Bangla, this lesson maps AI, machine learning, deep learning and generative AI as nested circles and shows where the picture misleads. It covers Mitchell's E, T, P with a digits learning curve, supervised, unsupervised and reinforcement learning, learned features on XOR-like data, discriminative versus generative models with sampling, a character bigram generator, LLM next-token training, and narrow AI, AGI and data science.

এই পর্বে যা শিখবেন

  • AI, ML, deep learning আর generative AI-এর বৃত্তের ছবি, আর ছবিটি কোথায় ভুল বোঝায়
  • Mitchell-এর E, T, P দিয়ে যেকোনো কাজকে machine learning-এর ভাষায় লেখা
  • Supervised, unsupervised আর reinforcement learning-এর মূল পার্থক্য
  • Discriminative আর generative model একই ডেটায় হাতে-কলমে, আর generative model থেকে নমুনা তোলা
  • Foundation model, LLM, narrow AI, AGI, data science আর statistics — শব্দগুলোর সীমানা

১ · বৃত্তের ভেতরে বৃত্ত — আর ছবিটির সীমা

খবরের কাগজে একদিন লেখা “AI দিয়ে চলবে নতুন অ্যাপ”, পরদিন “machine learning-এ বিপ্লব”, তার পরদিন “generative AI সব বদলে দেবে।” অনেকে ধরে নেন তিনটি একই জিনিসের তিন নাম। আসলে এরা একে অপরের ভেতরে বসানো, অনেকটা ঠিকানার মতো: বাংলাদেশ → ঢাকা বিভাগ → ঢাকা জেলা → মিরপুর। মিরপুরের প্রতিটি বাড়ি ঢাকা বিভাগে, কিন্তু ঢাকা বিভাগের সব বাড়ি মিরপুরে নয়।

সবচেয়ে বড় বৃত্ত artificial intelligence (AI): যন্ত্র দিয়ে এমন কাজ করানো, যেটি মানুষ করলে আমরা বুদ্ধির কাজ বলতাম — পথ খোঁজা, সিদ্ধান্ত নেওয়া, ভাষা বোঝার মতো আচরণ, ছবি চেনা। পর্ব ১-এ এই সংজ্ঞা নিয়ে বিস্তারিত কথা হয়েছে। তার ভেতরে machine learning (ML): নিয়ম হাতে না লিখে ডেটা থেকে নিয়ম শেখা। তার ভেতরে deep learning (DL): অনেক স্তরের neural network দিয়ে শেখা। আর আজ যাকে generative AI বলা হয়, তার বড় অংশ deep learning-এর ভেতরে বসে — যে model নতুন লেখা, ছবি, শব্দ বা কোড তৈরি করে।

AI-এর মানচিত্র — বৃত্ত, আর বৃত্তের বাইরের অংশ

Nested circles, plus the overlaps the simple picture hides

AI, ML, Deep Learning, Generative AI-এর বৃত্ত আর data science ও statistics-এর আংশিক মিল AI search, logic, planning, নিয়মভিত্তিক system Machine learning ডেটা থেকে শেখা: regression, tree, kNN Deep learning অনেক স্তরের neural network Generative AI LLM, ছবি, শব্দ, কোড পুরোনো generative: n-gram, NB Data science Statistics — ML-এর সঙ্গে অনেকটা মেশে
ছবি ৪.১ — নীল AI, সবুজ ML, বেগুনি deep learning, কমলা generative AI. ডোরাকাটা রেখা মনে করিয়ে দেয়: generative model deep learning-এর চেয়ে পুরোনো, আর data science ও statistics এই বৃত্তগুলোর ভেতরে পুরোপুরি বসে না।

ছবিটি মনে রাখার জন্য চমৎকার। কিন্তু তিনটি জায়গায় এটি ভুল ধারণা দিতে পারে:

  • সব AI মানে ML নয়। map-এ সবচেয়ে ছোট পথ খোঁজা (পর্ব ৪১-এর A* search), দাবার চাল বাছাই (পর্ব ৪২), রুটিন বানানো (পর্ব ৪৩) — এখানে ডেটা থেকে শেখা নেই; আছে খোঁজা আর যুক্তি। নীল বৃত্তের যে অংশ সবুজের বাইরে, সেটি ফাঁকা নয়।
  • Generative মানেই deep learning নয়। Naive Bayes বা n-gram ভাষা model-ও generative, অথচ এদের ভেতরে কোনো neural network নেই। “Generative AI” শব্দটি আজ সাধারণত বড় neural model বোঝায়, তবে ধারণাটি পুরোনো।
  • Data science আর statistics এই বৃত্তের ভেতরে বসে না। জেলাভিত্তিক বিক্রির chart data science-এর কাজ, কিন্তু সেখানে কোনো AI নেই। আবার linear ও logistic regression আগে statistics-এর বইয়েই ছিল। এরা আংশিক মেশে, একটি আরেকটির ভেতরে নয়।

এবার কয়েকটি বাস্তব কাজ নিয়ে দেখি, কোনটি কোন বৃত্তে বসে। প্রতিটি ধাপে ডান দিকের তিনটি প্রশ্ন খেয়াল করুন — উত্তরগুলোই কাজটির ঠিকানা বলে দেয়।

রিকশার পথ খোঁজাmap-এ A* search
বাংলা SMS spam ছাঁকাNaive Bayes
ধানপাতার ছবিতে রোগ চেনাঅনেক স্তরের network
পণ্যের বিবরণ লেখাLLM
ডেলিভারি চার্জ হিসাবif-else নিয়ম
জেলাভিত্তিক বিক্রির chartgroupby আর plot
AI
Machine learning
Deep learning
Generative AI
AI নয় — সাধারণ প্রোগ্রাম
Data science (AI নয়)
তিনটি প্রশ্ন
ডেটা থেকে শেখে?
অনেক স্তরের network?
নতুন কিছু তৈরি করে?
  1. রিকশার পথ খোঁজা। ঢাকার রাস্তার map একটি graph; A* search সবচেয়ে ছোট পথ খোঁজে একটি অনুমান-ফাংশনের সাহায্যে। কাজটি বুদ্ধির, তাই AI. কিন্তু কিছুই ডেটা থেকে শেখা হয়নি, তাই এটি ML-এর বাইরে, AI-এর নিজস্ব অংশে।
  2. বাংলা SMS spam ছাঁকা। হাজারখানেক লেবেল দেওয়া SMS দেখে Naive Bayes শব্দের সম্ভাবনা শেখে (পর্ব ৫১). ডেটা থেকে শেখে, তাই ML. কিন্তু অনেক স্তরের network নেই, তাই deep learning নয়।
  3. ধানপাতার ছবিতে রোগ চেনা। ছবির pixel থেকে অনেক স্তরের network ধাপে ধাপে দাগ, আকার আর রঙের ছাপ শেখে। ডেটা থেকে শেখে এবং অনেক স্তর আছে, তাই deep learning. তবে এটি শুধু লেবেল দেয় — “রোগ আছে” বা “নেই” — নতুন ছবি বানায় না, তাই generative নয়।
  4. পণ্যের বিবরণ লেখা। একটি LLM “৫০০ গ্রাম সুগন্ধি চাল” পেয়ে কয়েক লাইনের বিবরণ লিখে দেয়। তিনটি প্রশ্নের উত্তরই “হ্যাঁ”, তাই এটি সবচেয়ে ভেতরের বৃত্তে: generative AI. মনে রাখুন, লেখাটি বিশ্বাসযোগ্য শোনালেও ভুল তথ্য থাকতে পারে।
  5. ডেলিভারি চার্জ হিসাব। “ঢাকার ভেতরে ৬০ টাকা, বাইরে ১২০ টাকা” — দুটি if-else. কোনো খোঁজা নেই, শেখা নেই, অনিশ্চয়তা নেই। এটি সাধারণ প্রোগ্রাম। বিজ্ঞাপনে কেউ একে “AI-চালিত” বললে প্রশ্ন করার অধিকার আপনার আছে।
  6. জেলাভিত্তিক বিক্রির chart. pandas-এ groupby করে জেলা অনুযায়ী মোট বিক্রি, তারপর একটি bar chart (পর্ব ২৪, ২৮). এটি খাঁটি data science ও statistics-এর কাজ, অথচ AI-এর কোনো বৃত্তেই নেই। একই দল পরে এই ডেটা দিয়ে চাহিদার পূর্বাভাসের model বানালে তখন কাজটি ML-এ ঢুকবে।
মূল ধারণা

একটি কাজের ঠিকানা বের করতে তিনটি প্রশ্নই যথেষ্ট: ডেটা থেকে শেখে কি? (না হলে ML নয়) অনেক স্তরের neural network আছে কি? (না হলে deep learning নয়) নতুন ডেটা তৈরি করে কি? (না হলে generative নয়)। আর প্রথম প্রশ্নের আগে একটি শূন্য নম্বর প্রশ্ন: কাজটিতে আদৌ কোনো বুদ্ধির আচরণ আছে, নাকি এটি কয়েকটি নির্দিষ্ট নিয়ম?

২ · Machine learning আসলে কী — Mitchell-এর E, T আর P

“যন্ত্র শেখে” কথাটি শুনতে রহস্যময়। ১৯৯৭ সালে Tom M. Mitchell তাঁর পাঠ্যবই Machine Learning-এ একটি সংজ্ঞা দেন, যা আজও সবচেয়ে বেশি উদ্ধৃত সংজ্ঞাগুলোর একটি। বাংলায় মোটামুটি এভাবে বলা যায়:

একটি প্রোগ্রাম কোনো কাজ T-এর ব্যাপারে, মাপকাঠি P অনুযায়ী, অভিজ্ঞতা E থেকে শেখে —
যদি E বাড়ার সঙ্গে P দিয়ে মাপা T-এর ফল ভালো হয়।

এখানে T (task) হলো কাজ, যেমন হাতে লেখা অঙ্ক চেনা। P (performance measure) হলো ফল মাপার উপায়, যেমন কত শতাংশ ছবি ঠিক চিনল (accuracy). আর E (experience) হলো অভিজ্ঞতা — সাধারণত training data, অর্থাৎ যে উদাহরণগুলো দেখে model শেখে। সংজ্ঞার সবচেয়ে গুরুত্বপূর্ণ শব্দ “উন্নতি”: শেখা মানে মুখস্থ নয়, আগে না-দেখা উদাহরণে ভালো করা।

পরীক্ষার খাতা দেখার কথা ভাবুন। একজন নতুন শিক্ষক প্রথম দিন খাতা দেখতে অনেক সময় নেন, নম্বরও এদিক-ওদিক হয়। একশো খাতা দেখার পর তিনি দ্রুত ও ধারাবাহিক হন। কাজ T = খাতায় নম্বর দেওয়া, অভিজ্ঞতা E = দেখা খাতার সংখ্যা, মাপকাঠি P = অভিজ্ঞ শিক্ষকের দেওয়া নম্বরের সঙ্গে মিল। মিল বাড়লে আমরা বলি তিনি “শিখেছেন”।

কাজ (T)অভিজ্ঞতা (E)মাপকাঠি (P)
বাংলা SMS-কে spam বা ham বলালেবেলসহ পুরোনো SMSনতুন SMS-এ সঠিক বলার হার, spam ধরার হার
বাজারঘরের পণ্যের দাম অনুমানআগের বিক্রির তথ্যঅনুমান আর আসল দামের গড় পার্থক্য
ডেলিভারি দেরি হবে কি না বলাদূরত্ব, ওজন, জেলা আর ফলাফলসহ পুরোনো অর্ডারদেরির অর্ডার কতটা আগে ধরা গেল
লুডু বা দাবা খেলানিজের সঙ্গে খেলা হাজার হাজার খেলাজয়ের হার

এবার সংজ্ঞাটি নিজের চোখে দেখুন। নিচের কোডে T = ৮×৮ pixel-এর হাতে লেখা অঙ্ক চেনা (scikit-learn-এর সঙ্গে আসা load_digits ডেটাসেট, যা Pyodide নিজের ভেতর থেকেই পড়ে, ইন্টারনেট লাগে না)। আমরা model-কে প্রথমে ১০টি, তারপর ৩০, ১০০, ৩০০ আর ১০০০টি উদাহরণ দেখাব, আর প্রতিবার একই আলাদা test সেটে accuracy মাপব। একটি নোট: এই পাতায় scikit-learn প্রথমবার ব্যবহারে প্যাকেজ নামাতে প্রায় ১০ সেকেন্ড লাগতে পারে; পরের run দ্রুত।

import numpy as np
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

# T (task): 8x8 পিক্সেলের হাতে লেখা অঙ্ক চেনা (scikit-learn-এর load_digits)
X, y = load_digits(return_X_y=True)
X_tr, X_te, y_tr, y_te = train_test_split(
    X, y, test_size=0.3, random_state=42, stratify=y)
print("train:", X_tr.shape, " test:", X_te.shape)

# E (experience): কতগুলো লেবেলসহ ছবি দেখল; P (performance): test accuracy
for n in [10, 30, 100, 300, 1000]:
    model = KNeighborsClassifier(n_neighbors=3, algorithm="kd_tree")
    model.fit(X_tr[:n], y_tr[:n])
    acc = model.score(X_te, y_te)
    print(f"E = {n:4d} examples  ->  P = {acc:.3f}")

পাতায় চালানো আউটপুট (Pyodide-এর scikit-learn 1.8.0):

train: (1257, 64)  test: (540, 64)
E =   10 examples  ->  P = 0.267
E =   30 examples  ->  P = 0.544
E =  100 examples  ->  P = 0.889
E =  300 examples  ->  P = 0.959
E = 1000 examples  ->  P = 0.985

(1257, 64) মানে ১২৫৭টি ছবি, প্রতিটিতে ৬৪টি সংখ্যা (৮×৮ pixel). মাত্র ১০টি উদাহরণ দেখে model ৫৪০টি নতুন ছবির প্রায় ২৭% চিনল — দশটি অঙ্কের সব কটির উদাহরণও হয়তো সে দেখেনি। ১০০০টি দেখার পর প্রায় ৯৮.৫%. ঠিক এটাই Mitchell-এর সংজ্ঞা: E বাড়ল, একই T-এ P ভালো হলো। এখানে KNeighborsClassifier (পর্ব ৫৭) নতুন ছবির সবচেয়ে কাছের ৩টি পুরোনো ছবি দেখে ভোট নেয় (algorithm="kd_tree" শুধু কাছের ছবি খোঁজার একটি গোছানো উপায়); মডেলটি সরল রাখা হয়েছে যাতে মূল বিষয় — অভিজ্ঞতার সঙ্গে উন্নতি — পরিষ্কার থাকে। সংখ্যাগুলো একটি নির্দিষ্ট ভাগের (random_state=42) ফল, সব ডেটায় একই হবে এমন নয়।

“Machine learning” নামটি জনপ্রিয় হয় IBM-এর Arthur Samuel-এর কাজ থেকে; ১৯৫৯ সালে তিনি এমন একটি checkers (চেকার্স) খেলার প্রোগ্রাম নিয়ে প্রবন্ধ প্রকাশ করেন, যা নিজের সঙ্গে খেলে খেলে উন্নতি করত। “স্পষ্টভাবে প্রোগ্রাম না করেও শেখার ক্ষমতা” — এই বহুল প্রচলিত উক্তিটি প্রায়ই Samuel-এর নামে চলে, তবে হুবহু এই বাক্য তাঁর ১৯৫৯ সালের প্রবন্ধে পাওয়া যায় না বলে অনেকে উল্লেখ করেন; তাই একে তাঁর চিন্তার সারাংশ হিসেবে দেখাই নিরাপদ। Mitchell-এর ১৯৯৭ সালের সংজ্ঞা বেশি নির্দিষ্ট, কারণ এটি মাপার উপায় দাবি করে।

৩ · শেখার তিন ধরন — supervised, unsupervised আর reinforcement

E অর্থাৎ অভিজ্ঞতা কী রকম, তার ওপর ভিত্তি করে machine learning-কে সাধারণত তিন ভাগে ভাগ করা হয়। এখানে শুধু পরিচয়; পর্ব ৫৫-এ এগুলো হাতে-কলমে বিস্তারিত আসবে।

Supervised learning — উত্তরসহ উদাহরণ থেকে শেখা। প্রতিটি উদাহরণে ইনপুট (feature) আর সঠিক উত্তর (label) দুটোই থাকে। যেমন একটি SMS আর তার পাশে “spam” লেখা, বা একটি বাড়ির আয়তন আর তার আসল দাম। Model ইনপুট থেকে উত্তরে যাওয়ার একটি ফাংশন শেখে। উত্তর যদি শ্রেণি হয় (spam/ham, রোগ আছে/নেই), কাজটিকে বলে classification; উত্তর যদি সংখ্যা হয় (দাম, দিন), বলে regression. ওপরের অঙ্ক চেনার কোড supervised learning-এর উদাহরণ। এর দুর্বলতা হলো label জোগাড় করা: হাজার হাজার ছবিতে মানুষকে দিয়ে উত্তর লেখানো ব্যয়বহুল ও সময়সাপেক্ষ, আর label-এর ভুল সরাসরি model-এ ঢোকে।

Unsupervised learning — উত্তর ছাড়া গঠন খোঁজা। এখানে শুধু ইনপুট আছে, কোনো label নেই। Model নিজেই ডেটার ভেতরের গঠন খোঁজে: কোন গ্রাহকেরা একই রকম কেনাকাটা করেন (clustering), বা ৬৪টি pixel-কে ২টি সংখ্যায় এনে কতটা তথ্য রাখা যায় (dimensionality reduction, পর্ব ৬৫)। বাজারঘর হয়তো দেখবে একদল গ্রাহক শুধু ঈদের আগে বড় অর্ডার দেন, আরেকদল প্রতি সপ্তাহে ছোট ছোট। কেউ আগে থেকে এই দল বলে দেয়নি। সমস্যা হলো, “ঠিক উত্তর” নেই বলে ফল ভালো হলো কি না মাপা কঠিন; পাওয়া দলগুলোর অর্থ মানুষকেই বিচার করতে হয়।

Reinforcement learning — পুরস্কার ও শাস্তি থেকে শেখা। এখানে একটি agent কোনো পরিবেশে একের পর এক কাজ করে, আর মাঝে মাঝে একটি সংখ্যা পায় — পুরস্কার (reward). কোন কাজটি ঠিক ছিল তা কেউ বলে দেয় না; শুধু শেষে জানা যায় খেলায় জিতল কি না। Agent চেষ্টা আর ভুলের মধ্য দিয়ে এমন নীতি শেখে, যাতে মোট পুরস্কার বাড়ে। সাইকেল চালানো শেখার মতো: কেউ প্রতিটি মুহূর্তে হ্যান্ডেল কত ডিগ্রি ঘোরাতে হবে বলে দেয় না, পড়ে যাওয়াটাই শিক্ষা। খেলা, robot নিয়ন্ত্রণ আর কিছু সিদ্ধান্তের সমস্যায় এটি ব্যবহৃত হয়; ভাষা model-কে মানুষের পছন্দমতো উত্তর দিতে প্রশিক্ষণের একটি ধাপেও এর একটি রূপ ব্যবহার হয়েছে। পর্ব ৫৪-এ MDP দিয়ে এর গাণিতিক কাঠামো দেখবেন।

বাস্তবে সীমারেখা ঝাপসা। আজকের ভাষা model-এর মূল প্রশিক্ষণকে প্রায়ই self-supervised বলা হয়: label মানুষ লেখে না, লেখার ভেতর থেকেই আসে — একটি বাক্যের পরের শব্দটিই হলো “উত্তর”। আবার অল্প label আর অনেক label-ছাড়া ডেটা মিলিয়ে শেখাকে বলে semi-supervised. তিন ভাগ তাই মানচিত্র, কঠোর দেয়াল নয়।

৪ · Deep learning — অনেক স্তর, নিজে শেখা feature

সাধারণ machine learning-এ একটি বড় কাজ মানুষ করেন: কোন feature দেবেন তা ঠিক করা। ডেলিভারি দেরির model-এ কেউ ভাবলেন “দূরত্ব”, “ওজন”, “বৃষ্টির দিন কি না” — এগুলো হাতে বানানো feature. ছবির ক্ষেত্রে এটি খুব কঠিন: ধানপাতার রোগের দাগ কোন pixel-এর কোন নকশায় থাকে, তা নিয়ম লিখে বলা প্রায় অসম্ভব।

Deep learning-এর মূল চিন্তা হলো feature-ও ডেটা থেকে শেখা (feature learning). একটি neural network-এ অনেকগুলো স্তর (layer) থাকে। প্রথম স্তর কাঁচা ইনপুট নেয়, প্রতিটি hidden layer আগের স্তরের সংখ্যাগুলো মিশিয়ে নতুন সংখ্যা বানায়, আর শেষ স্তর উত্তর দেয়। ছবি চেনার network-এ প্রথম দিকের স্তর প্রায়ই সরল দাগ আর রঙের পরিবর্তন ধরে, পরের স্তর সেগুলো মিলিয়ে আকার, আরও পরের স্তর বস্তুর অংশ। “Deep” মানে স্তরের সংখ্যা বেশি — গভীর অর্থ বা গভীর বোঝাপড়া নয়।

Neural network-এর স্তর — কাঁচা ইনপুট থেকে শেখা feature, তারপর উত্তর

Layers turn raw inputs into learned features

তিন ইনপুট, দুটি hidden layer আর একটি output-এর ছোট neural network ইনপুট pixel hidden layer ১ ও ২ দাগ, রং আকার, দাগের নকশা output রোগ?
ছবি ৪.২ — প্রতিটি রেখা একটি সংখ্যা (weight), যা প্রশিক্ষণে ঠিক হয়। মাঝের স্তরগুলোর মান মানুষ বলে দেয় না; network নিজেই এমন feature শেখে যা উত্তর দিতে কাজে লাগে। নিচের “দাগ, রং” লেবেলগুলো সাধারণ প্রবণতার বর্ণনা, প্রতিটি network-এ হুবহু এমন হবে না।

একটি ছোট পরীক্ষায় feature শেখার মূল্য দেখা যায়। XOR-এর মতো ডেটা নিন: দুটি সংখ্যা x1, x2; দুটির চিহ্ন একই হলে (দুটিই ধনাত্মক বা দুটিই ঋণাত্মক) উত্তর 1, ভিন্ন হলে 0. কাগজে আঁকলে উত্তর 1-এর বিন্দুগুলো কোনাকুনি দুই কোণে, 0-এর বিন্দু অন্য দুই কোণে। একটি সরলরেখা দিয়ে এদের আলাদা করা যায় না, তাই একটি linear model (যেমন logistic regression) এখানে প্রায় আন্দাজের সমান ফল দেবে। এবার দেখি ৪টি hidden unit-এর ছোট network কী করে, আর তার শেখা hidden layer-কে feature হিসেবে দিলে সেই একই linear model কী করে।

import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.neural_network import MLPClassifier

# XOR-এর মতো ডেটা: x1 আর x2-এর চিহ্ন একই হলে 1, ভিন্ন হলে 0
rng = np.random.default_rng(42)
def make(n):
    X = rng.uniform(-1, 1, size=(n, 2))
    return X, (X[:, 0] * X[:, 1] > 0).astype(int)
X, y = make(200)          # শেখার ডেটা
X_te, y_te = make(200)    # আলাদা test ডেটা

raw = LogisticRegression(C=1000).fit(X, y)
print("linear model on raw x1, x2   :", round(raw.score(X_te, y_te), 3))

mlp = MLPClassifier(hidden_layer_sizes=(4,), activation="tanh",
                    solver="lbfgs", max_iter=2000, random_state=42).fit(X, y)
print("MLP with 4 hidden units      :", round(mlp.score(X_te, y_te), 3))

# MLP-র শেখা hidden layer = নতুন feature; তার ওপর আবার সরল linear model
hidden = lambda A: np.tanh(A @ mlp.coefs_[0] + mlp.intercepts_[0])
print("hidden features shape        :", hidden(X).shape)
lin_h = LogisticRegression(C=1000).fit(hidden(X), y)
print("linear model on learned H    :", round(lin_h.score(hidden(X_te), y_te), 3))

# মানুষের হাতে বানানো feature x1*x2 দিলেও কাজ হয়
hand = lambda A: np.c_[A, A[:, 0] * A[:, 1]]
lin_x = LogisticRegression(C=1000).fit(hand(X), y)
print("linear model on x1, x2, x1*x2:", round(lin_x.score(hand(X_te), y_te), 3))

পাতায় চালানো আউটপুট (Pyodide-এর scikit-learn 1.8.0):

linear model on raw x1, x2   : 0.495
MLP with 4 hidden units      : 0.94
hidden features shape        : (200, 4)
linear model on learned H    : 0.94
linear model on x1, x2, x1*x2: 1.0

সবগুলো সংখ্যা আলাদা ২০০টি test বিন্দুতে মাপা, যে বিন্দু model শেখার সময় দেখেনি। কাঁচা x1, x2-তে linear model পেল ০.৪৯৫ — দুই শ্রেণির ডেটায় আন্দাজে বলার মতোই। ৪ hidden unit-এর network পেল ০.৯৪. তৃতীয় আর চতুর্থ লাইন আসল শিক্ষা: network-এর hidden layer থেকে বের করা ২০০×৪ মাপের নতুন feature দিলে সেই একই linear model-ও ০.৯৪ পায়। অর্থাৎ network-এর কাজ ছিল ডেটাকে এমন নতুন রূপে আনা, যেখানে সরলরেখাই যথেষ্ট। শেষ লাইনটি সৎ তুলনা: মানুষ যদি আগেই জানেন x1×x2 গুণফলটাই আসল কথা, সেই একটি হাতে বানানো feature দিয়ে linear model পুরো ১.০ পায়। Deep learning-এর সুবিধা তখনই বড়, যখন ঠিক feature কী হবে আমরা জানি না — যেমন ছবি, শব্দ আর ভাষায়। সংখ্যাগুলো এই এক seed-এর একটি run; অন্য seed-এ সামান্য বদলাতে পারে।

Deep learning ২০১০-এর দশকে কেন হঠাৎ এগিয়ে গেল

Neural network-এর ধারণা নতুন নয় (perceptron ১৯৫৮, backpropagation জনপ্রিয় হয় ১৯৮৬ সালে)। ২০১২ সালের দিকে যা বদলাল, তার জন্য সাধারণত তিনটি কারণ একসঙ্গে বলা হয়, যদিও কোনটির ভূমিকা কত বড় তা নিয়ে মতভেদ আছে:

  • ডেটা: ImageNet-এর মতো বিশাল লেবেলসহ ডেটাসেট; এর প্রতিযোগিতায় ২০১২ সালে AlexNet আগের পদ্ধতিগুলোর চেয়ে স্পষ্টভাবে কম ভুল করে।
  • গণনার শক্তি: GPU একসঙ্গে হাজার হাজার গুণ-যোগ করতে পারে, যা neural network-এর হিসাবের সঙ্গে মিলে যায়।
  • ভালো পদ্ধতি: ReLU, dropout আর পরে Transformer (২০১৭)-এর মতো গঠন অনেক স্তরের network-কে প্রশিক্ষণযোগ্য করে তোলে।

পর্ব ২-এ এই ইতিহাসের বিস্তারিত আছে, আর পর্ব ৬৮-এ আপনি NumPy দিয়ে নিজেই একটি ছোট network বানাবেন।

৫ · Discriminative বনাম generative — লেবেল অনুমান, নাকি ডেটার গল্প

Generative AI বোঝার আগে model-এর দুটি মৌলিক ধরন — discriminative আর generative model — পরিষ্কার হওয়া দরকার। ধরুন বাজারঘরের প্রতিটি অর্ডারের জন্য আছে x = দূরত্ব (km), আর আমরা জানতে চাই y = অর্ডার দেরিতে পৌঁছাবে কি না।

🎯 Discriminative model

সরাসরি শেখে P(y∣x): “এই দূরত্বে দেরির সম্ভাবনা কত?” দুই শ্রেণির মাঝের সীমারেখাটাই তার আগ্রহ। ডেটা কেমন দেখতে, তা নিয়ে সে মাথা ঘামায় না।

logistic regression, SVM, বেশিরভাগ classifier network

🧪 Generative model

শেখে P(x∣y) আর P(y): “দেরির অর্ডারের দূরত্ব সাধারণত কেমন ছড়ানো, আর মোট অর্ডারের কত ভাগ দেরির?” এই গল্প জানা থাকলে Bayes-এর নিয়মে P(y∣x) বের করা যায় — আবার নতুন ডেটাও তৈরি করা যায়।

Naive Bayes, Gaussian model, n-gram, LLM, diffusion

এখানে চিহ্নগুলো এমন: P(y∣x) পড়ুন “x জানা থাকলে y-এর সম্ভাবনা” (conditional probability); P(x∣y) মানে “শ্রেণি y হলে x-এর সম্ভাবনা”; P(y) হলো কিছু দেখার আগেই শ্রেণিটির সাধারণ হার (prior). দুটিকে যুক্ত করে Bayes-এর উপপাদ্য (পর্ব ৫০):

P(y∣x) = P(x∣y) · P(y) / P(x)

যেখানে P(x) হলো সব শ্রেণির P(x∣y)·P(y)-এর যোগফল, যাতে মোট সম্ভাবনা ১ হয়। ডাক্তারের রোগনির্ণয়ের মতো: discriminative ডাক্তার শুধু শিখেছেন “এই লক্ষণ দেখলে এই রোগ”; generative ডাক্তার জানেন প্রতিটি রোগে সাধারণত কী কী লক্ষণ দেখা দেয় আর এলাকায় রোগটি কত সাধারণ — তাই তিনি একটি সাধারণ রোগীর লক্ষণ কেমন হবে তা বর্ণনাও করতে পারেন।

নিচের stepper-এ একই অর্ডারে দুই পথে উত্তর বের করা হয়েছে। Generative model ধরে নিয়েছে: সময়মতো পৌঁছানো অর্ডারের দূরত্ব গড় ৩ km, ছড়ানো (standard deviation σ) ১ km, আর এরা মোট অর্ডারের ৬০%; দেরির অর্ডারের দূরত্ব গড় ৬ km, σ = ১ km, ৪০%. এখানে μ (মিউ) মানে গড়, σ (সিগমা) মানে ছড়ানো।

x = 5 km · Discriminative (logistic)
শেখাw = 3, b = −13.91
z = w·x + b
P(দেরি∣x)
নতুন x
x = 5 km · Generative (Gaussian + prior)
সময়মতোμ=3, σ=1, হার 0.6
দেরিμ=6, σ=1, হার 0.4
p(x∣সময়মতো)
p(x∣দেরি)
× হার
P(দেরি∣x)
নতুন x
  1. দুই model, দুই রকম জ্ঞান। Discriminative model শিখেছে মাত্র দুটি সংখ্যা: ঢাল w = 3 আর ধ্রুবক b = −13.91. Generative model শিখেছে প্রতিটি শ্রেণির গড়, ছড়ানো আর হার — মোট পাঁচটি সংখ্যা (দুটি গড়, একটি σ, দুটি হার)। প্রশ্ন: ৫ km দূরের অর্ডার দেরিতে পৌঁছাবে কি?
  2. Discriminative, ধাপ ১। একটি স্কোর z = w·x + b = 3 × 5 − 13.91 = 1.09. ধনাত্মক স্কোর মানে দেরির দিকে ঝোঁক।
  3. Discriminative, ধাপ ২। Sigmoid ফাংশন σ(z) = 1 / (1 + e−z) যেকোনো স্কোরকে ০ থেকে ১-এর মধ্যে আনে: σ(1.09) ≈ 0.749. সম্ভাবনা ০.৫-এর বেশি, তাই উত্তর “দেরি”। মাত্র দুই ধাপেই কাজ শেষ — এটাই discriminative model-এর সরলতা (পর্ব ৫৯)।
  4. Generative, ধাপ ১ — likelihood. Normal distribution-এর সূত্রে x = 5 কতটা “স্বাভাবিক”: সময়মতো শ্রেণিতে (গড় ৩ থেকে ২ σ দূরে) ঘনত্ব 0.054, দেরির শ্রেণিতে (গড় ৬ থেকে ১ σ দূরে) 0.242. অর্থাৎ ৫ km দূরত্ব দেরির অর্ডারে বেশি দেখা যায়।
  5. Generative, ধাপ ২ — prior দিয়ে গুণ, তারপর ভাগ। 0.6 × 0.054 = 0.0324 আর 0.4 × 0.242 = 0.0968. যোগফল 0.1292. তাই P(দেরি∣x) = 0.0968 / 0.1292 ≈ 0.749 — হুবহু একই উত্তর! কাকতালীয় নয়: দুই শ্রেণির σ সমান হলে Bayes-এর হিসাব ঠিক একটি logistic ফাংশন হয়ে যায়, যার w = (6 − 3)/1² = 3 আর b = (3² − 6²)/2 + ln(0.4/0.6) ≈ −13.91.
  6. যা শুধু generative পারে। Generative model জানে দেরির অর্ডারের দূরত্ব কেমন ছড়ানো, তাই সেখান থেকে নতুন দূরত্ব “বানাতে” পারে: NumPy-র default_rng(42) দিয়ে N(6, 1) থেকে তোলা তিনটি নমুনা 6.30, 4.96, 6.75 km. Discriminative model-এর কাছে শুধু সীমারেখা আছে, ডেটার গল্প নেই — সে নতুন x তৈরি করতে পারে না। Generative AI এই দ্বিতীয় ক্ষমতাটিকেই বিশাল আকারে কাজে লাগায়।

এবার একই ধারণা দুই-মাত্রার ডেটায়, আসল scikit-learn দিয়ে। দুটি feature: দূরত্ব আর পার্সেলের ওজন। LogisticRegression discriminative, GaussianNB (Gaussian Naive Bayes, পর্ব ৫১) generative. শেষে generative model-এর শেখা গড় আর variance থেকে আমরা “দেরি” শ্রেণির ৫টি নতুন অর্ডার তৈরি করব, আর ছবিতে দেখাব।

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB

rng = np.random.default_rng(42)
X0 = rng.normal([3, 2], 1.0, size=(40, 2))   # class 0: সময়মতো পৌঁছেছে
X1 = rng.normal([6, 5], 1.0, size=(40, 2))   # class 1: দেরিতে পৌঁছেছে
X = np.vstack([X0, X1])
y = np.array([0] * 40 + [1] * 40)

disc = LogisticRegression().fit(X, y)   # শেখে P(y | x)
gen = GaussianNB().fit(X, y)            # শেখে P(x | y) আর P(y)

p = np.array([[4.5, 3.5]])
print("discriminative P(late | x):", disc.predict_proba(p)[0, 1].round(3))
print("generative     P(late | x):", gen.predict_proba(p)[0, 1].round(3))
print("GaussianNB class means:\n", gen.theta_.round(2))
print("GaussianNB class variances:\n", gen.var_.round(2))

# generative model থেকে class 1-এর নতুন নমুনা তোলা
new = rng.normal(gen.theta_[1], np.sqrt(gen.var_[1]), size=(5, 2))
print("5 new points sampled for class 1:\n", new.round(2))

fig, ax = plt.subplots(figsize=(5.5, 4.2))
ax.scatter(*X0.T, alpha=0.6, label="class 0 (real)")
ax.scatter(*X1.T, alpha=0.6, label="class 1 (real)")
ax.scatter(*new.T, c="k", marker="x", s=80, label="sampled from GaussianNB")
w, b = disc.coef_[0], disc.intercept_[0]
xs = np.linspace(0, 9, 50)
ax.plot(xs, -(w[0] * xs + b) / w[1], "r--", label="logistic boundary")
ax.set(xlim=(0, 9), ylim=(-1, 8), xlabel="x1: distance (km)",
       ylabel="x2: parcel weight (kg)", title="Discriminative vs generative")
ax.legend(fontsize=8, loc="lower right")

পাতায় চালানো আউটপুট (Pyodide-এর scikit-learn 1.8.0), সঙ্গে নিচে একটি ছবি আসবে:

discriminative P(late | x): 0.632
generative     P(late | x): 0.782
GaussianNB class means:
 [[3.04 2.01]
 [5.85 4.85]]
GaussianNB class variances:
 [[0.68 0.5 ]
 [0.84 0.91]]
5 new points sampled for class 1:
 [[4.97 4.16]
 [7.81 4.07]
 [6.62 3.99]
 [6.71 5.22]
 [5.71 4.81]]

মাঝামাঝি একটি অর্ডারে (৪.৫ km, ৩.৫ kg) দুই model দেরির সম্ভাবনা বলল ০.৬৩২ আর ০.৭৮২ — দুজনেই “দেরি” বলছে, তবে আত্মবিশ্বাস আলাদা, কারণ তাদের ধরে নেওয়া কাঠামো আলাদা। theta_ হলো প্রতিটি শ্রেণির প্রতিটি feature-এর শেখা গড়: আমরা ডেটা বানিয়েছিলাম (3, 2) আর (6, 5) কেন্দ্রে, model ৮০টি বিন্দু দেখে কাছাকাছি (3.04, 2.01) আর (5.85, 4.85) পেয়েছে। var_ হলো ছড়ানোর মাপ। এই দুই সারণি দিয়েই ৫টি নতুন “দেরির অর্ডার” তৈরি হলো — ছবিতে কালো × চিহ্ন, যেগুলো আসল কমলা বিন্দুর ভিড়ের মধ্যেই পড়েছে। লাল ড্যাশ রেখাটি logistic regression-এর সীমারেখা; এটিই discriminative model-এর পুরো জ্ঞান। খেয়াল করুন, Naive Bayes ধরে নেয় দুই feature একে অপরের থেকে স্বাধীন — এই অনুমান ভুল হলে তার তৈরি নমুনাও বাস্তবের মতো হবে না।

৬ · Generative AI — লেখা, ছবি, শব্দ আর কোড

আজকের generative AI একই চিন্তার বিশাল রূপ: বিপুল ডেটা থেকে তার সম্ভাবনার গঠন শেখা, তারপর সেখান থেকে sampling করে নতুন কিছু তৈরি করা। মোটা দাগে চারটি এলাকা:

✍️ লেখা

বড় ভাষা model পরের token অনুমান করে করে লেখা তৈরি করে: উত্তর, সারাংশ, অনুবাদ, চিঠির খসড়া।

Transformer-ভিত্তিক LLM

🖼️ ছবি

অনেক ছবি-তৈরির model শুরু করে এলোমেলো noise থেকে, তারপর ধাপে ধাপে noise সরিয়ে লেখার বর্ণনা মেনে ছবি বানায়।

diffusion model; আগে GAN

🔊 শব্দ

লেখা থেকে কথা (text-to-speech), গান বা শব্দের টুকরো; কথাকে লেখায় আনা (speech recognition) অবশ্য সাধারণত discriminative কাজ।

audio token বা diffusion

💻 কোড

কোডও এক রকম লেখা, তাই ভাষা model কোড লিখতে, ব্যাখ্যা করতে ও ভুল খুঁজতে পারে। চালিয়ে পরীক্ষা না করলে এর ফল বিশ্বাসযোগ্য নয়।

কোডে প্রশিক্ষিত LLM

“পরের token sample করে লেখা তৈরি” কথাটি সবচেয়ে ছোট আকারে নিজে চালিয়ে দেখা যায়। নিচের কোড কয়েকটি ইংরেজি অক্ষরে লেখা বাংলা বাক্য পড়ে একটি অক্ষর-স্তরের bigram model বানায়: প্রতিটি অক্ষরের পরে কোন অক্ষর কতবার এসেছে, শুধু সেটুকু গোনে। তারপর সেই গোনা থেকে সম্ভাবনা অনুযায়ী একটি একটি করে পরের অক্ষর বেছে নতুন লেখা তৈরি করে। এখানে কোনো package লাগে না, তাই এটি দ্রুত চলে।

import random
from collections import Counter, defaultdict

text = ("ami bhat khai. ami cha khai. baba bajare jay. "
        "ma cha banay. ami boi pori. baba boi pore. ")

# শেখা = গোনা: প্রতিটি অক্ষরের পরে কোন অক্ষর কতবার এসেছে
counts = defaultdict(Counter)
for a, b in zip(text, text[1:]):
    counts[a][b] += 1

print("after 'a':", dict(counts["a"].most_common()))
total = sum(counts["a"].values())
print("P(next | 'a'):", {c: round(n / total, 2) for c, n in counts["a"].most_common(3)})

# তৈরি করা = পরের অক্ষর একটি একটি করে sample করা
rng = random.Random(42)
def generate(start, n):
    out = start
    for _ in range(n):
        nxt = counts[out[-1]]
        out += rng.choices(list(nxt), weights=list(nxt.values()))[0]
    return out

for _ in range(3):
    print("generated:", repr(generate("a", 30)))

পাতায় চালানো আউটপুট:

after 'a': {' ': 5, 'm': 3, 'i': 2, 'b': 2, 'y': 2, 't': 1, 'j': 1, 'r': 1, 'n': 1}
P(next | 'a'): {' ': 0.28, 'm': 0.17, 'i': 0.11}
generated: 'abhai. poi bami. bare. banami. '
generated: 'ari pori mi. bami ba bai. at ba'
generated: 'ana chai bat mi. poi ai poi. bh'

প্রথম লাইন: লেখায় ‘a’-এর পরে ১৮ বার কিছু এসেছে; তার ৫ বার ফাঁকা জায়গা, ৩ বার ‘m’ (তিনবার “ami”). দ্বিতীয় লাইনে এগুলো সম্ভাবনায়: ৫/১৮ ≈ ০.২৮, ৩/১৮ ≈ ০.১৭. তৈরি করা লেখাগুলো দেখুন: “poi”, “bami”, “chai” — শব্দের মতো দেখায়, কোথাও কোথাও আসল শব্দও (“pori”), কিন্তু বাক্যের কোনো অর্থ নেই। কারণ model শুধু আগের একটি অক্ষর দেখে। তবু প্রক্রিয়াটি আজকের LLM-এর মতোই: প্রশিক্ষণ মানে “পরে কী আসে” তার সম্ভাবনা শেখা, তৈরি মানে বারবার sample করে জুড়ে যাওয়া। LLM-এর পার্থক্য আকারে ও প্রেক্ষাপটে: সে হাজার হাজার token পেছনে তাকায়, আর গোনার বদলে বিশাল neural network দিয়ে সম্ভাবনা হিসাব করে। random.Random(42)-এর কারণে প্রতিবার একই লেখা আসে; seed বদলালে লেখাও বদলাবে।

শব্দ-স্তরে একই কাজ আরও পরিষ্কার দেখা যায়। ধরুন model শিখেছে মাত্র চারটি বাক্য থেকে: “আমি ভাত খাই”, “আমি চা খাই”, “মা চা বানায়”, “মা ভাত রাঁধে”। প্রতিটি বাক্যের শুরুতে [শুরু] আর শেষে [শেষ] চিহ্ন ধরা হলো। প্রতিটি ধাপে model শুধু আগের একটি শব্দ দেখে, সম্ভাব্য পরের শব্দগুলোকে লেখা ক্রমে ০ থেকে ১-এর ভাগে সাজায়, আর একটি এলোমেলো সংখ্যা r যে ভাগে পড়ে সেটি বেছে নেয়।

শেখার ডেটা:  আমি ভাত খাই │ আমি চা খাই │ মা চা বানায় │ মা ভাত রাঁধে
Sampling-এর অবস্থা
আগের শব্দ
সম্ভাব্য পরের শব্দ
এলোমেলো r
বেছে নেওয়া
তৈরি বাক্য
  1. শেখা মানে গোনা। চার বাক্য থেকে জোড়া গোনা হলো: [শুরু]-এর পরে “আমি” ২ বার আর “মা” ২ বার; “মা”-র পরে “চা” ১, “ভাত” ১; “ভাত”-এর পরে “খাই” ১, “রাঁধে” ১; “খাই”-এর পরে দুবারই [শেষ]। এটুকুই পুরো model.
  2. প্রথম শব্দ। আগের চিহ্ন [শুরু]. সম্ভাবনা: আমি ২/৪ = ০.৫০, মা ২/৪ = ০.৫০. ক্রম অনুযায়ী আমি = [0, 0.5), মা = [0.5, 1). r = 0.71 পড়ল দ্বিতীয় ভাগে, তাই বেছে নেওয়া হলো “মা”।
  3. দ্বিতীয় শব্দ। এখন model শুধু “মা” দেখছে। চা = [0, 0.5), ভাত = [0.5, 1). r = 0.64, তাই “ভাত”। বাক্য এখন “মা ভাত”।
  4. তৃতীয় শব্দ। “ভাত”-এর পরে খাই = [0, 0.5), রাঁধে = [0.5, 1). r = 0.23 পড়ল প্রথম ভাগে, তাই “খাই”। খেয়াল করুন, model ভুলে গেছে বাক্যটি “মা” দিয়ে শুরু — সে শুধু “ভাত” দেখছে।
  5. শেষ চিহ্ন। “খাই”-এর পরে একমাত্র সম্ভাবনা [শেষ], সম্ভাবনা ১.০০, তাই r = 0.90 যা-ই হোক, বাক্য শেষ: “মা ভাত খাই।”
  6. নতুন, কিন্তু ভুল। “মা ভাত খাই” শেখার চার বাক্যের কোনোটি নয় — model সত্যিই নতুন বাক্য বানিয়েছে। কিন্তু বাংলায় হওয়া উচিত “মা ভাত খায়”। আগের একটি শব্দ দেখে কর্তা আর ক্রিয়ার মিল রাখা যায় না। বড় ভাষা model অনেক লম্বা প্রেক্ষাপট দেখে বলে এমন ভুল কম করে, কিন্তু মূল কৌশল একই: সম্ভাবনা অনুযায়ী পরের token বাছা। সাবলীল শোনানো আর সঠিক হওয়া তাই এক জিনিস নয়।

৭ · Foundation model আর LLM — পরের token অনুমান মানে কী, আর কী নয়

Foundation model শব্দটি ২০২১ সালে Stanford-এর একদল গবেষকের একটি দীর্ঘ প্রতিবেদন (Bommasani ও সহলেখক, “On the Opportunities and Risks of Foundation Models”) থেকে ছড়ায়। তাঁরা এমন model বোঝাতে শব্দটি ব্যবহার করেন, যা বিশাল ও বিচিত্র ডেটায় একবার প্রশিক্ষিত হয়, তারপর অনেক রকম কাজে খাপ খাইয়ে নেওয়া যায়। শব্দটি নিয়ে আপত্তিও আছে — কেউ কেউ বলেন “foundation” নাম শুনে মনে হয় এরা মজবুত ভিত্তি, অথচ এদের দুর্বলতা ভালোভাবে বোঝা যায়নি। তাই একে একটি প্রচলিত লেবেল হিসেবে দেখুন, প্রশংসা হিসেবে নয়।

Large language model (LLM) হলো লেখার foundation model. “Large” মানে অনেক parameter (শেখা সংখ্যা) আর বিপুল লেখা দিয়ে প্রশিক্ষণ; কতটা বড় হলে “large” বলা যাবে, তার কোনো নির্দিষ্ট সীমা নেই। একটি LLM-এর জীবন সাধারণত দুই পর্যায়ে:

  1. Pretraining: বিপুল লেখার ভেতরে প্রতিটি জায়গায় আগের token দেখে পরের token-এর সম্ভাবনা অনুমান করা। Token হলো লেখার টুকরো — কখনো পুরো শব্দ, কখনো শব্দের অংশ, কখনো একটি চিহ্ন। Model-এর অনুমান আসল পরের token থেকে যত দূরে, তত বেশি ভুল ধরা হয়, আর সেই ভুল কমাতে parameter একটু একটু করে বদলানো হয় (পর্ব ৩৪-এর gradient descent, পর্ব ৩৮-এর cross-entropy).
  2. পরের প্রশিক্ষণ (fine-tuning): প্রশ্ন-উত্তরের উদাহরণ আর মানুষের পছন্দ-অপছন্দের তথ্য দিয়ে model-কে সহায়কের মতো আচরণ করতে শেখানো। এতেই সাধারণ “লেখা চালিয়ে যাওয়া” model একটি chat সহকারীর মতো আচরণ করে।
এই প্রশিক্ষণ যা বোঝায়এই প্রশিক্ষণ যা বোঝায় না
ভালোভাবে পরের token অনুমান করতে গিয়ে model ব্যাকরণ, শব্দের সম্পর্ক, প্রচলিত তথ্য আর লেখার ধরনের অনেক নিয়মিততা ধরে ফেলে।উত্তরটি সত্য — model “সম্ভাব্য” লেখা দেয়, যাচাই করা লেখা নয়।
একই model অনুবাদ, সারাংশ, কোড ও প্রশ্নোত্তরের মতো নানা কাজে কিছুটা কাজে লাগে, কারণ সবই লেখা।Model-এর কাছে একটি তথ্যভান্ডার আছে যেখান থেকে সে খুঁজে আনে — সাধারণভাবে সে সূত্র মনে রেখে উদ্ধৃত করে না।
প্রশ্ন বা প্রেক্ষাপট বদলালে উত্তর বদলায়; sampling-এর কারণে একই প্রশ্নে আলাদা উত্তরও আসতে পারে।Model মানুষের মতো “বোঝে” বা “ভাবে” — এটি একটি বিতর্কিত দার্শনিক প্রশ্ন, প্রমাণিত সত্য নয়।
প্রশিক্ষণের ডেটার মান, ভাষা আর পক্ষপাত সরাসরি ফলে প্রভাব ফেলে; যে ভাষায় লেখা কম, সেখানে ফল সাধারণত দুর্বল হতে পারে।প্রশিক্ষণের পরের ঘটনা model জানে — বাইরের খোঁজার ব্যবস্থা না থাকলে তার জ্ঞান একটি সময়ে থেমে থাকে।

LLM অনেক সময় আত্মবিশ্বাসের সঙ্গে এমন তথ্য, উদ্ধৃতি বা function-এর নাম লেখে, যা বাস্তবে নেই। একে বলা হয় hallucination. এটি কোনো বিরল bug নয়; “সম্ভাব্য পরের token” বেছে নেওয়ার স্বাভাবিক ফল, কারণ শুনতে ঠিক লাগা আর ঠিক হওয়া আলাদা। তাই LLM-এর দেওয়া তথ্য, সংখ্যা ও কোড সবসময় মূল সূত্রে বা চালিয়ে যাচাই করতে হয়। পর্ব ৭০-এ token আর এই সীমাগুলো হাতে-কলমে দেখবেন, পর্ব ৭১-এ ছোট খোলা লাইসেন্সের pretrained model নিজের কম্পিউটারে চালাবেন।

৮ · Narrow AI, AGI, data science আর statistics — শব্দের সীমানা

Narrow AI (দুর্বল বা সংকীর্ণ AI) বলতে বোঝায় এমন system, যা একটি নির্দিষ্ট কাজ বা কাজের ছোট পরিসরে ভালো: spam ছাঁকা, দাবা খেলা, ছবিতে রোগ খোঁজা। আজকের ব্যবহৃত প্রায় সব AI এই অর্থে সংকীর্ণ — বড় ভাষা model অনেক কাজ পারলেও তার সীমা ও ভুলের ধরন ওপরে দেখেছেন। AGI (artificial general intelligence) বলতে বোঝানো হয় এমন কাল্পনিক system, যা মানুষের মতো বা তার চেয়ে বেশি পরিসরের কাজে নতুন পরিস্থিতিতে শিখে মানিয়ে নিতে পারে। শব্দটি ২০০০-এর দশকের শুরু থেকে কিছু গবেষকের লেখায় জনপ্রিয় হয়। এর কোনো সর্বসম্মত সংজ্ঞা বা মাপার পরীক্ষা নেই; কে কখন AGI “এসে গেছে” বলবেন, তা অনেকটাই সংজ্ঞার ওপর নির্ভর করে। এই কোর্স কোনো তারিখের ভবিষ্যদ্বাণী করে না, আর খবরে এমন ভবিষ্যদ্বাণী দেখলে সেটিকে মতামত হিসেবেই পড়ুন।

এবার পাশের দুটি ক্ষেত্র। Data science ডেটা থেকে প্রশ্নের উত্তর ও সিদ্ধান্তের ভিত্তি বের করার পুরো কাজ: ডেটা জোগাড়, পরিষ্কার, বিশ্লেষণ, chart, কখনো ML model, আর ফল মানুষকে বোঝানো। Statistics হলো অনিশ্চয়তার মধ্যে ডেটা থেকে সিদ্ধান্ত টানার গাণিতিক বিজ্ঞান: নমুনা থেকে পুরো জনগোষ্ঠী সম্পর্কে বলা, অনুমান কতটা নির্ভরযোগ্য তা মাপা। ML-এর সঙ্গে statistics-এর পার্থক্য প্রায়ই জোর দেওয়ার জায়গায়: statistics প্রায়ই জানতে চায় “কোন কারণ কতটা প্রভাব ফেলছে, আর আমরা কতটা নিশ্চিত”; ML প্রায়ই জানতে চায় “নতুন ডেটায় অনুমান কতটা ভালো”। একই logistic regression দুই জগতেই আছে। ২০০১ সালে statistician Leo Breiman-এর “Statistical Modeling: The Two Cultures” প্রবন্ধ এই দুই সংস্কৃতির পার্থক্য নিয়ে বিখ্যাত আলোচনা।

এক নজরে তুলনা — শব্দকোষের মতো সারণি

শব্দমূল প্রশ্নসাধারণ কৌশলবাজারঘরে উদাহরণএই কোর্সে
AIযন্ত্র কি বুদ্ধির মতো আচরণ করতে পারে?search, logic, planning, MLডেলিভারি ভ্যানের সবচেয়ে ছোট রুটপর্ব ১, ৩৯–৫৪
Machine learningডেটা থেকে নিয়ম শেখা যায় কি?regression, tree, kNN, Naive Bayesডেলিভারি দেরি হবে কি নাপর্ব ৫৫–৬৭
Deep learningঅনেক স্তরে feature নিজে শেখা যায় কি?বহুস্তর neural networkপণ্যের ছবি থেকে শ্রেণি চেনাপর্ব ৬৮
Generative AIডেটার মতো নতুন ডেটা তৈরি করা যায় কি?LLM, diffusion, ছোট পরিসরে n-gramপণ্যের বিবরণের খসড়াপর্ব ৭০–৭১
Foundation model / LLMএকটি বড় model কি অনেক কাজে খাপ খায়?pretraining, তারপর fine-tuningবাংলা রিভিউর সারাংশপর্ব ৬৯–৭১
Data scienceডেটা থেকে কী সিদ্ধান্ত নেওয়া যায়?pandas, chart, পরিসংখ্যান, কখনো MLকোন জেলায় বিক্রি কমছেপর্ব ২০–৩২, ৬২
Statisticsঅনিশ্চয়তা কতটা, প্রভাব কতটা?অনুমান, পরীক্ষা, regressionনতুন ডেলিভারি নিয়মে কি সত্যিই সময় কমলপর্ব ৩৫–৩৭

চাকরির বিজ্ঞাপন আর খবরে যেসব গোলমাল প্রায়ই চোখে পড়ে

  • “AI-চালিত” লেবেল: কিছু পণ্যে ভেতরে শুধু কয়েকটি নির্দিষ্ট নিয়ম থাকে। প্রশ্ন করুন: কী ডেটা থেকে শেখে, আর ফল কীভাবে মাপা হয়?
  • “AI engineer” পদ: কোথাও এর মানে নতুন model প্রশিক্ষণ, কোথাও তৈরি LLM-কে API দিয়ে কোনো অ্যাপে জোড়া, কোথাও ডেটা পরিষ্কার আর dashboard. বিজ্ঞাপনের দায়িত্বের তালিকাই আসল পরিচয়, পদের নাম নয়।
  • খবরের শিরোনাম: “AI নিজে শিখে ফেলেছে” বা “AI বুঝে গেছে” ধরনের বাক্য সাধারণত একটি নির্দিষ্ট পরীক্ষার ফলকে বড় করে দেখায়। মূল প্রবন্ধে কোন কাজ, কোন ডেটা আর কোন মাপকাঠি — Mitchell-এর T, E, P — খুঁজে দেখুন।
  • “ChatGPT = AI” ধরে নেওয়া: chat সহকারী generative AI-এর একটি পণ্য মাত্র; রাস্তার রুট, ব্যাংকের জালিয়াতি ধরা বা ফসলের রোগ চেনার AI একেবারে অন্য রকম।

আরও গভীরে: discriminative আর generative classifier-এর তুলনায় সবচেয়ে উদ্ধৃত প্রবন্ধগুলোর একটি Andrew Ng ও Michael Jordan-এর ২০০১ সালের “On Discriminative vs. Generative Classifiers: A comparison of logistic regression and naive Bayes” (NIPS). তাঁদের বিশ্লেষণ অনুযায়ী Naive Bayes সাধারণত কম ডেটায় নিজের সেরা ফলের কাছে দ্রুত পৌঁছায়, আর logistic regression-এর শেষ পর্যন্ত ভুল সাধারণত কম হয় — তাই ডেটা কম হলে generative, বেশি হলে discriminative ভালো হতে পারে, যদিও পরে অন্য গবেষকেরা এই সাধারণীকরণের সীমাও দেখিয়েছেন। Foundation model শব্দের উৎস আর ঝুঁকির আলোচনার জন্য Bommasani ও সহলেখকদের ২০২১ সালের প্রতিবেদন, আর ML বনাম statistics বিতর্কের জন্য Breiman (২০০১) পড়ার মতো।

পরীক্ষা ও ইন্টারভিউতে: বিশ্ববিদ্যালয়, চাকরি বা ইন্টারভিউর পরীক্ষায় এই ধরনের প্রশ্ন প্রায়ই আসে —

  • AI, ML আর DL-এর পার্থক্য কী? — AI বড় লক্ষ্য; ML ডেটা থেকে শেখা তার একটি পথ; DL বহুস্তর neural network দিয়ে ML.
  • Mitchell-এর সংজ্ঞা লিখুন, একটি উদাহরণসহ। — E থেকে শিখে P দিয়ে মাপা T-এর ফল ভালো হলে শেখা; যেমন spam ছাঁকা।
  • Supervised আর unsupervised-এর একটি করে উদাহরণ দিন। — লেবেলসহ SMS-এ spam ধরা; লেবেল ছাড়া গ্রাহকের দল খোঁজা।
  • Discriminative আর generative model-এর পার্থক্য? — প্রথমটি P(y∣x) শেখে; দ্বিতীয়টি P(x∣y) ও P(y) শেখে, তাই নমুনা তৈরি করতে পারে।
  • LLM কী শিখতে প্রশিক্ষিত হয়? — আগের token দেখে পরের token-এর সম্ভাবনা অনুমান; তারপর সহায়কের আচরণের জন্য fine-tuning.

৯ · AI-এর যুগে — AI সহকারী দিয়ে ডেটা ও AI-এর কাজ

এই কোর্সে আপনি নিশ্চয়ই AI সহকারীর সাহায্য নেবেন — কোড লেখাতে, ধারণা ব্যাখ্যা করাতে, ভুল খোঁজাতে। এটি ভালো অভ্যাস, যদি আপনি জানেন AI সহকারী নিজেই একটি generative model: সে সম্ভাব্য লেখা দেয়, যাচাই করা লেখা নয়। ডেটা ও AI-এর কাজে এর কয়েকটি চেনা ভুল আছে:

AI সহকারীর ভুলকীভাবে ধরবেন
পুরোনো API দেয়, যেমন pandas-এর DataFrame.append বা np.floatনিজের version-এর অফিসিয়াল docs দেখুন, কোড চালান
অস্তিত্বহীন function বা parameter বানায়help() বা docs-এ নামটি খুঁজুন
Test ডেটার তথ্য training-এ ঢুকিয়ে দেয় (data leakage)সবকিছুর আগে ডেটা ভাগ করুন (পর্ব ৫৬)
Training ডেটাতেই accuracy মেপে বড় সংখ্যা দেখায়আলাদা test সেটে মাপুন, সরল baseline-এর সঙ্গে তুলনা করুন
Warning বা error চেপে রাখে (warnings.filterwarnings("ignore"))Warning পড়ুন, কারণ বুঝুন
বিশ্বাসযোগ্য কিন্তু ভুল পরিসংখ্যান বা উদ্ধৃতি দেয়নিজে হিসাব করুন, মূল সূত্র খুলে দেখুন

কোনো কাজ বা খবরের শিরোনাম নিয়ে AI সহকারীকে প্রশ্ন করার সময় তাকে E, T, P আর বৃত্তের ভাষায় উত্তর দিতে বলুন, আর অনিশ্চিত হলে সেটা স্বীকার করতে বলুন:

আমি AI শিখছি। নিচের কাজটি AI, machine learning, deep learning না generative AI — কোন বৃত্তে পড়ে, নাকি কোনোটিতেই নয়, বলো: [এখানে কাজ বা বিজ্ঞাপনের বর্ণনা পেস্ট করুন] ১. কাজ (T), অভিজ্ঞতা বা ডেটা (E) আর মাপকাঠি (P) কী, আলাদা করে লেখো। বর্ণনায় না থাকলে "উল্লেখ নেই" লেখো, আন্দাজ কোরো না। ২. এটি discriminative না generative কাজ, এক লাইনে কারণসহ বলো। ৩. কোনো লাইব্রেরি বা function-এর নাম বললে তার অফিসিয়াল docs-এর পাতার নাম দাও, যাতে আমি যাচাই করতে পারি। ৪. যে অংশে তুমি নিশ্চিত নও, সেটি স্পষ্ট করে বলো।

AI-এর দেওয়া উত্তর বা কোড হাতে পেলে — যাচাইয়ের চেকলিস্ট

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

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

প্র ০১আজ AI বললেই সবাই machine learning বোঝেন। তাহলে “সব AI-ই ML” ধরে নেওয়া কেন ভুল, আর এতে ক্ষতি কী?

ইতিহাসের দিক থেকে AI-এর বয়স ML-এর জনপ্রিয়তার চেয়ে অনেক বেশি। ১৯৫৬ সালের Dartmouth কর্মশালায় “artificial intelligence” নামটি প্রতিষ্ঠিত হয়, আর পরের কয়েক দশক AI গবেষণার বড় অংশ ছিল প্রতীক আর নিয়ম নিয়ে: যুক্তির নিয়ম দিয়ে উপপাদ্য প্রমাণ, search দিয়ে খেলা, আর বিশেষজ্ঞের জ্ঞান হাতে লিখে expert system. ১৯৭০-এর দশকে রক্তের সংক্রমণের ওষুধ সুপারিশের জন্য তৈরি MYCIN-এর মতো system শত শত হাতে লেখা নিয়মের ওপর চলত; ডেটা থেকে শেখা নয়। ১৯৯৭ সালে Garry Kasparov-কে হারানো IBM-এর Deep Blue মূলত বিশেষ hardware-এ বিশাল search আর বিশেষজ্ঞদের নকশা করা মূল্যায়ন-ফাংশনের ওপর নির্ভর করত বলে বর্ণনা আছে, যদিও কিছু parameter পুরোনো খেলার ডেটা দেখে ঠিক করা হয়েছিল বলেও উল্লেখ পাওয়া যায়।

আজও এই অংশ জীবন্ত। Map অ্যাপের পথ খোঁজা মূলত graph search; বিমান সংস্থার ক্রু-রুটিন, কারখানার শিফট আর পরীক্ষার হলের আসন বিন্যাস constraint satisfaction ও optimization; chip-এর নকশা যাচাইয়ে logic-ভিত্তিক পদ্ধতি। অনেক আধুনিক system দুটো মেশায় — দাবার শক্তিশালী প্রোগ্রাম neural network দিয়ে অবস্থার মূল্য অনুমান করে, আবার search দিয়ে চাল খোঁজে।

“সব AI = ML” ধরলে তিনটি ক্ষতি। প্রথমত, যেখানে কয়েকটি স্পষ্ট নিয়ম বা একটি search যথেষ্ট, সেখানে ডেটা জোগাড় করে model বানাতে গিয়ে সময়, টাকা আর ব্যাখ্যাযোগ্যতা নষ্ট হয়। দ্বিতীয়ত, ML-এর নিজস্ব ঝুঁকি — ডেটার পক্ষপাত, অনিশ্চিত ফল — অকারণে ডেকে আনা হয়। তৃতীয়ত, ইন্টারভিউ বা পরীক্ষায় search, logic আর planning-এর প্রশ্নে অপ্রস্তুত থাকা; এই কোর্সের মডিউল ৭ থেকে ৯ ঠিক এগুলো নিয়েই।

মূল উপলব্ধি: ML হলো AI-এর সবচেয়ে বড় ও দ্রুত বাড়তে থাকা শাখা, পুরো AI নয়। সমস্যাটি আগে বুঝুন, তারপর ঠিক করুন খোঁজা, যুক্তি, শেখা — নাকি এদের মিশ্রণ — কোনটি লাগবে।

প্র ০২Neural network-এর ধারণা ১৯৫০-এর দশকের। তাহলে deep learning ২০১০-এর দশকে এসে কেন হঠাৎ এত সফল হলো?

গল্পটি ধীরে জমা হওয়া শর্তের, হঠাৎ আবিষ্কারের নয়। ১৯৫৮ সালে Frank Rosenblatt perceptron প্রস্তাব করেন, যা নিয়ে তখন বড় প্রত্যাশা তৈরি হয়। ১৯৬৯ সালে Marvin Minsky ও Seymour Papert-এর Perceptrons বইয়ে একস্তর perceptron-এর সীমা (যেমন XOR না পারা) গাণিতিকভাবে দেখানো হয়, আর অনেকের মতে এরপর এই ধারার গবেষণায় উৎসাহ কমে যায় — যদিও বইটির প্রভাব কতটা ছিল তা নিয়ে ইতিহাসবিদদের মধ্যে মতভেদ আছে। ১৯৮৬ সালে Rumelhart, Hinton ও Williams-এর প্রবন্ধ backpropagation দিয়ে বহুস্তর network প্রশিক্ষণকে জনপ্রিয় করে; ধারণাটির আগের রূপ অন্যরাও লিখেছিলেন। ১৯৯০-এর দশকে LeCun ও সহকর্মীদের convolutional network চেক ও ডাকের হাতে লেখা অঙ্ক পড়তে বাস্তবে ব্যবহৃত হয়।

তবু বহু বছর ধরে অনেক কাজে support vector machine বা হাতে নকশা করা feature-এর পদ্ধতি সমান বা বেশি ভালো ছিল। ২০০৬ সালের দিকে Hinton ও সহকর্মীদের deep belief network নিয়ে কাজ “deep learning” নামটিকে নতুন করে আলোচনায় আনে। মোড় ঘোরে ২০১২ সালে: ImageNet প্রতিযোগিতায় Krizhevsky, Sutskever ও Hinton-এর AlexNet আগের সেরা পদ্ধতির চেয়ে স্পষ্টভাবে কম ভুল করে। এর পেছনে ছিল তিনটি জিনিস একসঙ্গে — Fei-Fei Li ও সহকর্মীদের তৈরি বিশাল লেবেলসহ ImageNet ডেটাসেট, GPU-তে প্রশিক্ষণ, আর ReLU ও dropout-এর মতো কৌশল।

এরপর একটি স্বনির্ভর চক্র তৈরি হয়: ফল ভালো হওয়ায় বিনিয়োগ বাড়ে, বিনিয়োগে বড় hardware ও ডেটা আসে, খোলা উৎসের library আর প্রকাশিত কোড নতুন ধারণা দ্রুত ছড়ায়। ২০১৭ সালের Transformer গঠন ভাষার কাজে এই প্রবণতাকে আরও জোরালো করে, আর পরে বড় ভাষা model-এর পথ খোলে। কোন উপাদানের অবদান কত, তা মাপা কঠিন; কেউ ডেটা আর গণনাকে বেশি গুরুত্ব দেন, কেউ পদ্ধতির উন্নতিকে।

মূল উপলব্ধি: একটি ধারণা সঠিক হলেও সফল হতে তার সময়ের শর্ত লাগে — যথেষ্ট ডেটা, যথেষ্ট গণনা আর প্রশিক্ষণের কৌশল। নতুন কোনো AI খবর পড়লে জিজ্ঞেস করুন: এখানে নতুন কী — ধারণা, ডেটা, না গণনা?

প্র ০৩LLM “শুধু পরের token অনুমান করে” — তাহলে কি এটি একটি বড় autocomplete মাত্র? দুই পক্ষের যুক্তি কী?

প্রশিক্ষণের লক্ষ্যের দিক থেকে বর্ণনাটি সঠিক: pretraining-এ model-কে একটাই কাজ দেওয়া হয় — আগের token দেখে পরের token-এর সম্ভাবনা দেওয়া। ফোনের keyboard-এর পরের শব্দের পরামর্শও একই ধরনের কাজ। তাহলে পার্থক্য কোথায়?

“এটি autocomplete-ই” পক্ষের যুক্তি: ২০২১ সালে Emily Bender, Timnit Gebru ও সহলেখকেরা “On the Dangers of Stochastic Parrots” প্রবন্ধে যুক্তি দেন, ভাষা model লেখার আকার শেখে, অর্থের সঙ্গে তার সংযোগ নেই; তাই সাবলীল লেখা দেখে বুদ্ধি ধরে নেওয়া বিপজ্জনক। hallucination, সহজ হিসাবে মাঝে মাঝে ভুল, প্রশ্নের ভাষা সামান্য বদলালে উত্তর বদলে যাওয়া — এগুলো এই দৃষ্টিভঙ্গির পক্ষে উদাহরণ হিসেবে দেখানো হয়।

“লক্ষ্য সরল, শেখা জিনিস সরল নয়” পক্ষের যুক্তি: বিপুল ও বিচিত্র লেখায় পরের token ভালোভাবে অনুমান করতে হলে ব্যাকরণ, তথ্য, কোডের গঠন, এমনকি যুক্তির কিছু ধরনও ধরতে হয়। কিছু গবেষণায় model-এর ভেতরের অবস্থা থেকে খেলার বোর্ডের অবস্থা বা অন্য গঠন খুঁজে পাওয়ার দাবি এসেছে, যা নিয়ে আলোচনা চলছে। এছাড়া chat সহকারী শুধু pretraining নয়; fine-tuning আর মানুষের পছন্দের তথ্য দিয়েও তাকে বদলানো হয়।

কোন পক্ষ ঠিক, তা আংশিকভাবে “বোঝা” শব্দের সংজ্ঞার ওপর নির্ভর করে — এটি এখনো খোলা প্রশ্ন। ব্যবহারিক সিদ্ধান্তের জন্য অবশ্য এই বিতর্ক মীমাংসা করার দরকার নেই: দুই পক্ষই মানেন যে LLM-এর লেখা ভুল হতে পারে, আর ভুলগুলো প্রায়ই আত্মবিশ্বাসী শোনায়।

মূল উপলব্ধি: “কীভাবে প্রশিক্ষিত” আর “কী শিখেছে” আলাদা প্রশ্ন। প্রথমটি সরল ও জানা; দ্বিতীয়টি নিয়ে গবেষণা চলছে। তাই LLM-কে অবহেলাও নয়, অন্ধ বিশ্বাসও নয় — প্রতিটি দরকারি উত্তর যাচাই করাই পেশাদার পথ।

প্র ০৪একই কাজে discriminative আর generative — দুই ধরনের model পাওয়া গেলে কোনটি বেছে নেবেন?

Statistical learning theory-র পথিকৃৎ Vladimir Vapnik-এর একটি পরিচিত পরামর্শ মোটামুটি এমন: যে সমস্যা সমাধান করতে চান, তার চেয়ে কঠিন একটি সমস্যা মাঝপথে সমাধান করতে যাবেন না। শুধু লেবেল দরকার হলে পুরো ডেটার বণ্টন P(x∣y) শেখা কঠিনতর কাজ — অনেক বেশি জিনিস অনুমান করতে হয়, আর অনুমানে ভুল হলে (যেমন Naive Bayes-এর “feature-গুলো স্বাধীন” ধরে নেওয়া) সেই ভুল উত্তরেও ঢোকে। এই যুক্তিতে শুধু classification-এর জন্য discriminative model প্রায়ই প্রথম পছন্দ।

কিন্তু ছবিটা একপেশে নয়। ২০০১ সালে Andrew Ng ও Michael Jordan logistic regression আর Naive Bayes তুলনা করে দেখান, generative model সাধারণত কম ডেটায় নিজের সেরা ফলের কাছাকাছি দ্রুত পৌঁছায়, আর discriminative model-এর শেষ পর্যন্ত ভুল সাধারণত কম। অর্থাৎ ডেটা খুব কম হলে generative জিততে পারে, ডেটা বাড়লে discriminative এগিয়ে যায় — যদিও পরের গবেষণায় এই সাধারণ চিত্রের ব্যতিক্রমও দেখানো হয়েছে।

আরও কিছু বিবেচনা আছে। Generative model অনুপস্থিত feature সামলাতে পারে (যে feature নেই, তা বাদ দিয়ে হিসাব), অস্বাভাবিক ডেটা ধরতে পারে (যে x-এর সম্ভাবনা খুব কম, সেটি সন্দেহজনক — জালিয়াতি ধরায় কাজে লাগে), আর অবশ্যই নতুন নমুনা তৈরি করতে পারে। আবার discriminative model-এ নানা রকম feature যোগ করা সহজ, আর বণ্টন নিয়ে কম অনুমান করতে হয়। বাংলা SMS spam-এর মতো কাজে অল্প ডেটা নিয়ে শুরু করলে Naive Bayes একটি শক্ত baseline (পর্ব ৫১), পরে ডেটা বাড়লে logistic regression বা অন্য model তুলনা করা যায় (পর্ব ৫৯, ৬৬)।

মূল উপলব্ধি: “কোনটি ভালো” প্রশ্নের উত্তর নির্ভর করে লক্ষ্য (শুধু লেবেল, নাকি তৈরি বা অস্বাভাবিকতা ধরা), ডেটার পরিমাণ আর অনুমানগুলো কতটা সত্য তার ওপর। দুটিই চালিয়ে আলাদা test সেটে তুলনা করাই শেষ কথা।

প্র ০৫কোনো কাজ যন্ত্র পারতে শুরু করলেই অনেকে বলেন “ওটা তো আসল AI না।” AGI নিয়ে আলোচনায় এই প্রবণতার শিক্ষা কী?

এই প্রবণতাকে অনেকে “AI effect” বলেন। এর সঙ্গে প্রায়ই একটি উক্তি জোড়া হয় — “AI হলো যা এখনো করা হয়নি” — যা সাধারণত Larry Tesler-এর নামে চলে, যদিও তিনি নিজে বলেছিলেন তাঁর আসল কথা ছিল কিছুটা আলাদা; উক্তির উৎস তাই সাবধানে উল্লেখ করা ভালো। উদাহরণ চারপাশেই: একসময় দাবায় বিশ্বচ্যাম্পিয়নকে হারানোকে বুদ্ধির চূড়ান্ত পরীক্ষা ভাবা হতো; ১৯৯৭ সালের পরে অনেকে বললেন, ওটা তো শুধু দ্রুত search. চিঠির ঠিকানা পড়া, ছবিতে মুখ খোঁজা, ভাষা অনুবাদ — প্রতিটি সফল হওয়ার পর “সাধারণ প্রযুক্তি” হয়ে গেছে।

AGI আলোচনায় এর শিক্ষা গুরুত্বপূর্ণ। প্রথমত, “সাধারণ বুদ্ধি”-র কোনো সর্বসম্মত সংজ্ঞা নেই। ১৯৫০ সালে Alan Turing “যন্ত্র কি ভাবতে পারে” প্রশ্নটিকে কথোপকথনের একটি পরীক্ষায় বদলে দেন, কারণ মূল প্রশ্নটি তাঁর কাছে অস্পষ্ট মনে হয়েছিল। আজও কেউ AGI মাপেন কাজের পরিসর দিয়ে, কেউ নতুন পরিস্থিতিতে শেখার দক্ষতা দিয়ে, কেউ অর্থনৈতিক কাজের অংশ দিয়ে। সংজ্ঞা বদলালে “AGI এসেছে কি না” প্রশ্নের উত্তরও বদলায়।

দ্বিতীয়ত, ভবিষ্যদ্বাণীর ইতিহাস সাবধান হতে বলে। AI-এর শুরুর দিকের কয়েকজন পথিকৃৎ কয়েক দশকের মধ্যে মানুষের সমান যন্ত্রের আশা করেছিলেন বলে ইতিহাসে লেখা আছে; পরে এল তহবিল কমে যাওয়ার “AI শীতকাল” (পর্ব ২)। আজকের তারিখ-ভিত্তিক দাবিগুলোকেও তাই মতামত হিসেবে পড়া উচিত, তথ্য হিসেবে নয়। তৃতীয়ত, ব্যবহারিক কাজে এই বিতর্ক কম জরুরি: একটি system নির্দিষ্ট কাজে, নির্দিষ্ট ডেটায়, নির্দিষ্ট মাপকাঠিতে কেমন করে — সেটিই মাপা যায় ও যাচাই করা যায়।

মূল উপলব্ধি: বড় লেবেল (AGI, “মানুষের মতো বুদ্ধি”) নিয়ে তর্কের চেয়ে নির্দিষ্ট প্রশ্ন বেশি কাজের: কোন কাজ, কোন ডেটা, কোন মাপকাঠি, আর কোথায় ভুল করে। Mitchell-এর T, E, P এখানেও আপনার সবচেয়ে ভালো হাতিয়ার।

অনুশীলন

প্রথমে নিজে চেষ্টা করুন, তারপর উত্তর মিলিয়ে নিন।

  1. হাতে হিসাব (numerical): একটি generative model ধরে নিয়েছে: সময়মতো অর্ডারের দূরত্ব normal, গড় ৩ km, σ = ১, হার ০.৬; দেরির অর্ডারের দূরত্ব normal, গড় ৬ km, σ = ১, হার ০.৪. দেওয়া আছে: normal ঘনত্ব গড় থেকে ১ σ দূরে 0.2420, ২ σ দূরে 0.0540. এখন x = 4 km-এর অর্ডারে P(দেরি∣x) কত? উত্তর কি “দেরি”?

    x = 4 সময়মতো শ্রেণির গড় থেকে ১ σ দূরে, তাই p(x∣সময়মতো) = 0.2420; দেরির শ্রেণির গড় থেকে ২ σ দূরে, তাই p(x∣দেরি) = 0.0540.

    Prior দিয়ে গুণ: 0.6 × 0.2420 = 0.1452 আর 0.4 × 0.0540 = 0.0216. যোগফল P(x) = 0.1668.

    P(দেরি∣x) = 0.0216 / 0.1668 ≈ 0.129. ০.৫-এর অনেক কম, তাই উত্তর “সময়মতো”। যাচাই: সমান σ-এর ক্ষেত্রে logistic রূপ z = 3 × 4 − 13.91 = −1.91, আর σ(−1.91) ≈ 0.129 — একই ফল।

  2. সমালোচনা (critique): একটি কাল্পনিক চাকরির বিজ্ঞাপন: “AI/ML Engineer চাই। দায়িত্ব: Excel থেকে মাসিক বিক্রির রিপোর্ট তৈরি, Power BI dashboard, আর ওয়েবসাইটে একটি FAQ chatbot যুক্ত করা যা ১০টি নির্দিষ্ট প্রশ্নের নির্দিষ্ট উত্তর দেয়।” কোন দায়িত্ব কোন বৃত্তে পড়ে? পদের নামটি কি কাজের সঙ্গে মেলে? আবেদন করার আগে কী জিজ্ঞেস করবেন?
    • মাসিক রিপোর্ট আর dashboard: data analysis বা data science-এর কাজ; কোনো model শেখানো নেই, তাই AI বা ML নয়।
    • ১০টি নির্দিষ্ট প্রশ্নের নির্দিষ্ট উত্তরের chatbot: বর্ণনা অনুযায়ী এটি নিয়মভিত্তিক মিল খোঁজা — সাধারণ প্রোগ্রাম, বড়জোর খুব সরল AI. যদি এর জন্য কোনো LLM ব্যবহারের কথা থাকে, তখন এটি generative AI-এর একটি তৈরি model জোড়ার কাজ, model বানানো নয়।

    পদের নাম কাজের চেয়ে বড় শোনায়। জিজ্ঞেস করার মতো প্রশ্ন: কোনো model কি প্রশিক্ষণ দিতে হবে? কোন ডেটা আছে, কতটা? ফল কীভাবে মাপা হবে (Mitchell-এর P)? Chatbot-এ কি LLM লাগবে, লাগলে ব্যক্তিগত ডেটার সুরক্ষা কীভাবে হবে? এতে আপনি বুঝবেন কাজটি আপনার শেখার লক্ষ্যের সঙ্গে মেলে কি না। (বিজ্ঞাপনটি শুধু অনুশীলনের জন্য বানানো।)

  3. আউটপুট অনুমান (predict the output): নিচের কোড কী print করবে? তারপর বলুন, এই জোড়াগুলো থেকে একটি bigram model “b” দিয়ে শুরু করে ৬টি অক্ষর তৈরি করলে কী পাবে, আর কেন সেখানে কোনো এলোমেলোতা নেই।
    from collections import Counter
    text = "banana"
    c = Counter(zip(text, text[1:]))
    print(c)
    print(c.most_common(1))

    আমাদের scratch-এ একটি সাধারণ Python 3.14 run-এ আউটপুট:

    Counter({('a', 'n'): 2, ('n', 'a'): 2, ('b', 'a'): 1})
    [(('a', 'n'), 2)]

    “banana”-র পাশাপাশি জোড়া: ba, an, na, an, na. তাই (a, n) আর (n, a) দুবার, (b, a) একবার। Counter বেশি গোনা আগে দেখায়; সমান হলে যেটি আগে ঢুকেছে সেটি আগে, তাই (a, n) প্রথমে। most_common(1) সবচেয়ে বেশি গোনা একটি জোড়া দেয়।

    Bigram model-এ ‘b’-এর পরে একমাত্র ‘a’, ‘a’-এর পরে একমাত্র ‘n’, ‘n’-এর পরে একমাত্র ‘a’. প্রতিটি ধাপে সম্ভাবনা ১.০, তাই যে seed-ই হোক, “b” থেকে শুরু করে পাবেন "bananan" (শুরুর ‘b’ সহ ৭ অক্ষর)। শেখার ডেটা খুব ছোট হলে generative model শুধু ডেটাটিই ফিরিয়ে দেয় — বৈচিত্র্য আসে ডেটার বৈচিত্র্য থেকে।

  4. নকশা (design): বাজারঘর বাংলা পণ্য-রিভিউকে “ভালো”, “খারাপ” আর “মাঝামাঝি” ভাগ করতে চায়। Mitchell-এর T, E আর P লিখুন। কাজটি supervised না unsupervised? Discriminative না generative model দিয়ে শুরু করা যুক্তিসংগত? কোন একটি ঝুঁকি আগে থেকে ভাববেন?
    • T: একটি বাংলা রিভিউ পড়ে তিন শ্রেণির একটি বলা।
    • E: আগের রিভিউ, প্রতিটির সঙ্গে মানুষের দেওয়া শ্রেণি (বা star rating থেকে বানানো শ্রেণি)।
    • P: আলাদা test সেটে প্রতিটি শ্রেণির precision ও recall, বিশেষ করে “খারাপ” রিভিউ কতটা ধরা গেল (পর্ব ৬০)।

    লেবেল আছে বলে এটি supervised classification. শুধু শ্রেণি দরকার, নতুন রিভিউ লেখা নয় — তাই একটি discriminative model (যেমন TF-IDF + logistic regression, পর্ব ৬৭) দিয়ে শুরু করা যুক্তিসংগত, আর অল্প ডেটায় Naive Bayes একটি ভালো baseline. ঝুঁকি: star rating আর লেখা সবসময় মেলে না, বাংলা-ইংরেজি মেশানো লেখা আর বানানের বৈচিত্র্য আছে, আর “মাঝামাঝি” শ্রেণিতে মানুষের মধ্যেও মতভেদ হয় — তাই কয়েকটি রিভিউ দুজন মানুষকে দিয়ে আলাদা লেবেল করিয়ে দেখা ভালো, তাঁরা কতটা একমত।

নিজেকে যাচাই করুন

ভুল হলে কারণসহ ব্যাখ্যা পাবেন, আবার চেষ্টাও করতে পারবেন।

ক্রমএকটি bigram ভাষা model দিয়ে লেখা তৈরির ধাপগুলো সঠিক ক্রমে সাজান (▲▼ চেপে সরান)

  1. 📚 শেখার জন্য লেখা জোগাড় করা
  2. ✂️ লেখাকে token-এ ভাগ করা
  3. 🔢 প্রতিটি token-এর পরে কোন token কতবার আসে তা গোনা
  4. 🎲 শুরুর token থেকে সম্ভাবনা অনুযায়ী পরের token sample করা
  5. 🔁 নতুন token জুড়ে আবার sample করা, শেষ চিহ্ন না আসা পর্যন্ত

ঢাকার রাস্তার map-এ A* search দিয়ে সবচেয়ে ছোট পথ খোঁজা একটি প্রোগ্রাম কোন শ্রেণিতে পড়ে?

  • Machine learning
  • AI, কিন্তু machine learning নয়
  • Deep learning
  • Generative AI

Tom Mitchell-এর (১৯৯৭) machine learning-এর সংজ্ঞায় E, T আর P কী বোঝায়?

  • Estimator, Transformer, Predictor
  • Error, Time, Parameter
  • Experience, Task, Performance measure
  • Encoder, Token, Prompt

একটি অনলাইন দোকান কোনো label ছাড়াই গ্রাহকদের কেনাকাটার ধরন দেখে কয়েকটি দলে ভাগ করতে চায়। এটি কোন ধরনের শেখা?

  • Unsupervised learning
  • Supervised learning
  • Reinforcement learning
  • Rule-based learning

Discriminative আর generative model-এর মূল পার্থক্য কোনটি?

  • Discriminative-এ neural network থাকে, generative-এ থাকে না
  • Generative model classification করতে পারে না
  • Generative model শুধু ২০২০-এর পরের প্রযুক্তি
  • Discriminative শেখে P(y∣x); generative শেখে P(x∣y) ও P(y), তাই নতুন নমুনা তৈরি করতে পারে

একটি large language model-এর pretraining-এর মূল কাজ কোনটি?

  • প্রতিটি প্রশ্নের উত্তর একটি তথ্যভান্ডার থেকে খুঁজে আনা শেখা
  • আগের token দেখে পরের token-এর সম্ভাবনা অনুমান করা
  • প্রতিটি বাক্য সত্য কি না যাচাই করা শেখা
  • ছবিকে pixel-এ ভেঙে শ্রেণি চেনা

XOR-এর মতো ডেটায় (x1 আর x2-এর চিহ্ন একই হলে 1, ভিন্ন হলে 0) কাঁচা x1, x2 দিয়ে logistic regression প্রায় আন্দাজের সমান ফল দেয়, কিন্তু একটি ছোট hidden layer-এর network ভালো করে। এর সবচেয়ে ভালো ব্যাখ্যা কোনটি?

  • Logistic regression-কে যথেষ্ট ডেটা দেওয়া হয়নি
  • Network ডেটাটি মানুষের মতো বুঝতে পারে
  • Hidden layer নতুন feature শেখে, যেখানে শ্রেণিগুলো সরলরেখায় আলাদা করা যায়
  • Network-এ sigmoid আছে, logistic regression-এ নেই

শব্দকোষ

লেখার মধ্যে ডটেড দাগ দেওয়া শব্দে মাউস রাখুন বা চাপুন — অর্থ দেখাবে। এই পর্বের সব নতুন শব্দ এখানে একসাথে:

মনে রাখুন

  1. AI ⊃ ML ⊃ deep learning, আর আজকের generative AI-এর বড় অংশ deep learning-এ; কিন্তু search ও logic-এর AI ডেটা থেকে শেখে না, আর data science ও statistics আংশিক মেশে।
  2. Mitchell (১৯৯৭): অভিজ্ঞতা E বাড়লে মাপকাঠি P-তে কাজ T-এর ফল ভালো হলে প্রোগ্রামটি শিখছে।
  3. শেখার তিন ধরন: supervised (label আছে), unsupervised (label নেই, গঠন খোঁজা), reinforcement (পুরস্কার থেকে শেখা)।
  4. Discriminative শেখে P(y∣x); generative শেখে P(x∣y) ও P(y), তাই নতুন নমুনা তৈরি করতে পারে।
  5. LLM pretraining = পরের token অনুমান। সাবলীল লেখা মানেই সঠিক লেখা নয় — যাচাই আপনার দায়িত্ব।

পরের পর্বে: AI কোন কোন ধরনের সমস্যা সমাধান করে — classification, regression, clustering থেকে search আর planning পর্যন্ত — আর একটি নতুন সমস্যা দেখে কীভাবে বুঝবেন সেটি কোন ধরনের।

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

এই পর্বটি শেয়ার করুন:
এই পর্বে ভুল পেয়েছেন? জানান