Thumbnail image for course

AI fundamentals for software developers

Artificial Intelligence

মাত্র কয়েক বছর আগেও Artificial Intelligence শুনলেই আমাদের অনেকের মাথায় আসতো Terminator বা এরকম কোনো Sci-fi মুভির দৃশ্য যেখানে AI রোবটগুলো পৃথিবী দখল করে নিতে চাচ্ছে!

তবে আজকের সময়ে Sci-fi দুনিয়ার এসব গল্পের বাইরেও AI সম্পর্কে সাধারণ মানুষের একটা ভিন্ন রকমের আইডিয়া তৈরি হয়েছে। বিশেষ করে ChatGPT এর রিলিজ এক্ষেত্রে বড় একটা ভূমিকা রেখেছে সাধারণ মানুষের কাছে AI কে জনপ্রিয় করে তুলতে। এখন বিভিন্ন সেক্টরের মানুষজন বিভিন্ন রকম AI টুল ব্যবহার করে নিজেদের কাজকে আরও সহজ করার চেস্টা করছেন। এছাড়াও সোশ্যাল মিডিয়ায় ইনফ্লুয়েন্সাররাও AI নিয়ে প্রচুর কথাবার্তা বলছেন যার ফলে AI টার্মটা এখন সবার কাছেই কমবেশী পরিচিত। আর কিছু না বুঝলেও AI দিয়ে যে সহজে 'অনেক কিছু করে ফেলা যায়' সেটা কমবেশী সবাই বোঝে।

কিন্তু AI আসলে কি?

AI বা Artificial Intelligence হচ্ছে Computer Science এর একটা ফিল্ড যেখানে চেষ্টা করা হয় এমন সিস্টেম ডেভেলপ করতে যেটা সাধারণভাবে মানুষের মত করে চিন্তা করা বা কাজ করতে পারবে।

মানুষের ক্ষেত্রে আমরা Intelligence বলতে কি বুঝি?

কোনো কথা শুনে সেটার অর্থ বুঝতে পারা, কোনো কিছু দেখে সেটা কি জিনিস উপলদ্ধি করতে পারা, কোনো একটা সমস্যার সমাধান করতে পারা এবং সর্বোপরি আগের এক্সপেরিয়েন্স এর উপর ভিত্তি করে কোনো একটা পরিস্থিতিতে সিদ্ধান্ত গ্রহণ করতে পারা।

এই কাজগুলো যদি কম্পিউটারও করতে পারে, অর্থাৎ Natural language processing/understanding, Pattern/Image recognition, Problem solving, Learning from experience, Decision making - তখনই সেটাকে বলা যাবে Artificial Intelligence.

অর্থাৎ বোঝাই যাচ্ছে পরিপূর্ণভাবে একজন মানুষের মত স্মার্ট কম্পিউটার বা সিস্টেম ডেভেলপ করতে গেলে অনেকগুলো কাজ করার ক্ষমতা থাকতে হবে।

আমরা যখন সাধারণভাবে একটা সফটওয়্যার ডেভেলপ করি, সেটা মূলত একটা set of instructions। অর্থাৎ কি হলে কি হবে এই রকম ইন্সট্রাকশনের উপর ভিত্তি করেই সফটওয়্যার চলে। যেই ইন্সট্রাকশন নির্দিস্ট করে বলে দেয়া নেই, সেটা কখনো কাজ করবে না। অনেক বড় কমপ্লেক্স সফটওয়্যার বা expert system বানানো হলেও সেখানে আসলে অনেক অনেক কন্ডিশন এবং লজিক নির্দিস্ট করে লিখে দেয়া আছে এবং সেটার উপরই এগুলো কাজ করে। অপরদিকে Automation টুল বলতে আমরা যা বুঝি, সেগুলোও আসলে এই রকম if-else কন্ডিশনের উপর ভিত্তি করে বানানো workflow.

AI এগুলোর কোনোটাই না। কারণ AI জাস্ট অনেকগুলো নির্দিস্ট কন্ডিশন বা লজিকের সমন্বয় না। বরং Data এর উপর ভিত্তি করে AI নিজেই if-else কন্ডিশন বা লজিকগুলো প্রয়োজন অনুযায়ী ঠিক করে। AI এর চমৎকারিতা এখানেই!

যদিও AI নিয়ে এই জোকটা প্রচলিত যেখানে বলা হয় যে AI আসলে ঘুরে ফিরে সেই if-else কন্ডিশনই। কিন্তু এটা জাস্ট মজা করার জন্যই বলা, কারণ এটা সত্য না।

বিভিন্ন কন্ডিশনের উপর ভিত্তি করে কি হবে সেটা যখন আমরা বলে দেই, সেটা হলো Algorithm। এখানে কি হলে কি হবে সেই রেজাল্টটা নির্ধারিত (deterministic)। ট্র্যাডিশনাল সফটওয়্যারে সব কিছুই স্পেসিফিক লজিক হিসেবে বলে দেয়া থাকে। কোন ইনপুটে বা কোন সিনারিওতে কি হবে এটা সবসময়ই নির্দিস্ট। একই ধরনের ইনপুটে সবসময়ই একই রেজাল্ট আসবে।

কিন্তু AI এর ক্ষেত্রে রেজাল্টটা non-deterministic (probabilistic). একই ধরনের প্রশ্ন বা ইন্সট্রাকশনে AI সবসময় সেইম রেজাল্ট নাও দিতে পারে। তাঁকে বিভিন্ন রকম ডাটা দিয়ে যখন ট্রেইন করানো হয়, সে সেখান থেকে নিজেই নিজেই প্যাটার্ন রিকগনাইজ করে, এবং সেই প্যাটার্নের উপর ভিত্তি করে নিজের মত করে একেক সময় একেক রেজাল্ট বানাতে পারে।

এটার একটা বড় অসুবিধা হলো, Algorithm এ কোনো একটা এক্সপেক্টেড রেজাল্ট না আসলে বা Bug ধরা পড়লে সহজেই খুঁজে বের করে ফিক্স করে ফেলা যায়। কিন্তু AI উল্টাপাল্টা রেজাল্ট দিলে সেটা কেন হচ্ছে এটা খুঁজে পাওয়া বা ফিক্স করে ফেলাটা সহজ না।


একটা ছোট বাচ্চাকে আমরা যেভাবে কথা বলা, হাঁটা বা নতুন কিছু শেখাই, AI কেও অনেকেটা সেভাবেই ট্রেইন করানো হয়। বাচ্চাকে আমরা কিন্তু দুনিয়ার তাবৎ সব বাক্য শেখাই না। বরং ছোট ছোট শব্দ শেখাই, সেগুলো দিয়ে বাক্য বানানো শেখাই, সেখান থেকে সে নিজেই নিজেই আবার কখনো কখনো নতুন বাক্য বানাতে পারে। নতুন বাক্যগুলোর অনেকগুলোই হতে পারে এরকম যেগুলোর কোনো আগামাথা নাই, তখন আমরা ওকে ভুল ধরিয়ে দেই, সে শুধরে নেয়। AI কেও ঠিক একইভাবে তাঁর রেজাল্টের উপর ফিডব্যাক দিয়ে ভুল ধরিয়ে দিয়ে লাইনে রাখার চেষ্টা করা হয়। এই প্রসেসগুলো সম্পর্কে আমরা সামনে আরও বিস্তারিত জানবো।

Download Resource File

No files available